|
|||||||||||||||||||||
Consulta de los datos generales Descripción La asignatura en el conjunto del plan de estudios Campos profesionales en el que se proyecta Conocimientos previos Información previa a la matrícula Objetivos y competencias Contenidos Consulta de los recursos de aprendizaje de la UOC para la asignatura Información adicional sobre los recursos de aprendizaje y herramientas de apoyo Informaciones sobre la evaluación en la UOC Consulta del modelo de evaluación | |||||||||||||||||||||
Este es el plan docente de la asignatura para el segundo semestre del curso 2023-2024. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios. | |||||||||||||||||||||
Los compiladores son herramientas indispensables para cualquier informático, encargadas de traducir información textual de un formato o lenguaje a otro. Por ejemplo, actúan como piezas clave en el proceso la ejecución de un programa: traducen el programa desde el lenguaje de alto nivel utilizado por los humanos hasta un lenguaje de bajo nivel que se puede ejecutar en un ordenador (como el ensamblador o el código máquina). Esta asignatura presenta la estructura básica de un compilador: los módulos que lo componen y cómo se comunican entre sí. Nos centraremos en el caso de los lenguajes de programación de propósito general y en el proceso de generación de un ejecutable a partir de un programa en alto nivel. Concretamente, se verá cómo se analiza un programa fuente para obtener sus componentes y se detectan los posibles errores introducidos por el programador. Se introducirá también el concepto de intérprete y su relación con los compiladores. Después se estudiará cómo a partir de los datos obtenidos en la parte de análisis, se genera el código objeto y es optimizado para mejorar el rendimiento. Todo eso se pondrá en práctica mediante el uso de herramientas para la construcción de compiladores. |
|||||||||||||||||||||
La asignatura Compiladores se puede cursar como asignatura optativa o bien como parte del itinerario de Computación. Dentro de este itinerario, esta asignatura permite aplicar los conocimientos obtenidos en Autómatas y Gramáticas al estudio de los lenguajes de programación. Además, junto con Inteligencia Artificial y Aprendizaje computacional, la asignatura proporciona las bases utilizadas en las técnicas del procesamiento de lenguaje natural. |
|||||||||||||||||||||
Además del área de compiladores, todas las técnicas que se estudian en esta asignatura, se pueden aplicar, en general, a cualquier sistema de procesamiento de lenguajes y de traducción. La construcción de compiladores e intérpretes también es relevante en el intercambio de información textual entre diferentes sistemas software: construcción de librerías de importación/exportación, definición de lenguajes de intercambio de datos, etc. Así pues, esta asignatura ocupa una posición muy relevante en las salidas profesionales en áreas donde la definición formal de un lenguaje se hace necesaria como la definición de lenguajes de programación, el procesamiento de lenguaje natural o la traducción automática, entre otros. Por último, las competencias adquiridas en esta asignatura pueden ser útiles para cualquier desarrollador, dado que permiten entender mejor los lenguajes de programación, el funcionamiento de los intérpretes y los compiladores y el proceso de ejecución de un programa. |
|||||||||||||||||||||
La asignatura presupone un buenos conocimientos de programación, específicamente en lenguaje Java, por lo que resulta muy recomendable haber cursado las asignaturas de programación y de estructuras de datos correspondientes con anterioridad. Además, para el buen seguimiento de la asignatura se tiene que partir de unos conocimientos básicos en lenguajes, expresiones regulares, autómatas finitos y gramáticas. Y, finalmente, hay que tener conocimientos básicos sobre lenguaje ensamblador y estructura de computadores. |
|||||||||||||||||||||
Antes de cursar esta asignatura, es muy recomendable haber cursado previamente las asignaturas siguientes:
Además, es recomendable a pesar de que no imprescindible haber cursado la asignatura de Diseño de estructuras de datos. |
|||||||||||||||||||||
Las competencias generales del Grado que se ponen de manifiesto en esta asignatura son:
Las competencias específicas de esta asignatura son:
|
|||||||||||||||||||||
La asignatura se estructura en seis módulos:
|
|||||||||||||||||||||
|
|||||||||||||||||||||
Los módulos didácticos constituyen la parte más importante de los materiales de la asignatura. Los podéis descargar en formato PDF desde el apartado Recursos del aula. La asignatura dispone de un manual de referencia para las herramientas de construcción de compiladores utilizadas en la asignatura, el Manual de JLex y CUP, que podéis encontrar en el aula virtual dentro del apartado de Recursos. Disponéis de un aula de Laboratorio de Java de Compiladores donde recibiréis más información sobre el software de la asignatura (entorno JDK para la ejecución de programas Java, JLex y CUP). |
|||||||||||||||||||||
El proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados. La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; el intento fraudulento de obtener un resultado académico mejor; la colaboración, el encubrimiento o el favorecimiento de la copia, o la utilización de material, software o dispositivos no autorizados durante la evaluación, entre otras, son conductas irregulares en la evaluación que pueden tener consecuencias académicas y disciplinarias graves. Estas conductas irregulares pueden comportar el suspenso (D/0) en las actividades evaluables que se definan en el plan docente -incluidas las pruebas finales- o en la calificación final de la asignatura, sea porque se han utilizado materiales, software o dispositivos no autorizados durante las pruebas, como por ejemplo redes sociales o buscadores de información en internet, porque se han copiado fragmentos de texto de una fuente externa (internet, apuntes, libros, artículos, trabajos o pruebas de otros estudiantes, etc.) sin la citación correspondiente, o porque se ha llevado a cabo cualquier otra conducta irregular. Así mismo, y de acuerdo con la normativa académica, las conductas irregulares en la evaluación también pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda, de conformidad con lo establecido en la normativa de convivencia de la UOC. En el marco del proceso de evaluación, la UOC se reserva la potestad de:
|
|||||||||||||||||||||
|