Guía docente de la asignatura
(1902) COMPILADORES

Curso académico 2026/2027

  1. Identificación

    1. De la asignatura

      Curso Académico
      2026/2027
      Titulación
      GRADO EN INGENIERÍA INFORMÁTICA
      PROGRAMA ACADÉMICO DE SIMULTANEIDAD DE DOBLE TITULACIÓN CON ITINERARIO ESPECIFICO DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA
      Nombre de la asignatura
      COMPILADORES
      Código
      1902
      Curso
      SEGUNDO
      TERCERO
      Carácter
      OBLIGATORIA
      Número de grupos
      4
      Créditos ECTS
      6.0
      Estimación del volumen de trabajo
      150.0
      150.0
      Organización temporal
      2º Cuatrimestre
      2º Cuatrimestre
      Idiomas en que se imparte
      Español
      Curso Académico 2026/2027
      Titulación

      GRADO EN INGENIERÍA INFORMÁTICA,

      PROGRAMA ACADÉMICO DE SIMULTANEIDAD DE DOBLE TITULACIÓN CON ITINERARIO ESPECIFICO DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA

      Nombre de la asignatura COMPILADORES
      Código 1902
      Curso SEGUNDO TERCERO
      Carácter OBLIGATORIA
      Número de grupos 4
      Créditos ECTS 6.0
      Estimación del volumen de trabajo 150.0 150.0
      Organización temporal 2º Cuatrimestre 2º Cuatrimestre
      Idiomas en que se imparte Español
    2. Del profesorado: Equipo docente

      • CARDENAS VIEDMA, MARIA ANTONIA Docente: GRUPO 2 Coordinación de los grupos: GRUPO 2 Coordinador de la asignatura

        Categoría

        PROFESORES TITULARES DE UNIVERSIDAD

        Área

        CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL

        Departamento

        INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

        Correo electrónico / Página web / Tutoría electrónica

        mariancv@um.es Tutoría electrónica: Sí

        Teléfono, horario y lugar de atención al alumnado

        Duración:
        C2
        Día:
        Miércoles
        Horario:
        10:00-12:00
        Lugar:
        (Sin Extensión), Facultad de Informática B1.1.043
        Observaciones:
        Despacho 1.31
        Duración:
        C1
        Día:
        Miércoles
        Horario:
        11:45-13:45
        Lugar:
        (Sin Extensión), Facultad de Informática B1.1.043
        Observaciones:
        Despacho 1.31
        Duración:
        C1
        Día:
        Jueves
        Horario:
        12:30-13:30
        Lugar:
        (Sin Extensión), Facultad de Informática B1.1.043
        Observaciones:
        Despacho 1.31
        Duración:
        C2
        Día:
        Martes
        Horario:
        11:00-12:00
        Lugar:
        (Sin Extensión), Facultad de Informática B1.1.043
        Observaciones:
        Despacho 1.31
      • GIL PEREZ, MANUEL Docente: GRUPO 1, GRUPO 2, GRUPO 3, GRUPO DTIE Coordinación de los grupos:

        Categoría

        PROFESORES TITULARES DE UNIVERSIDAD

        Área

        CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL

        Departamento

        INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

        Correo electrónico / Página web / Tutoría electrónica

        mgilperez@um.es http://webs.um.es/mgilperez Tutoría electrónica: Sí

        Teléfono, horario y lugar de atención al alumnado

        Duración:
        A
        Día:
        Martes
        Horario:
        17:00-18:30
        Lugar:
        868887645, Facultad de Informática B1.1.025
        Observaciones:
        Despacho 1.14.
        Duración:
        A
        Día:
        Lunes
        Horario:
        11:30-13:00
        Lugar:
        868887645, Facultad de Informática B1.1.025
        Observaciones:
        Despacho 1.14.
      • MARTINEZ GRACIA, EDUARDO Docente: GRUPO 1, GRUPO DTIE Coordinación de los grupos: GRUPO 1, GRUPO DTIE

        Categoría

        PROFESORES TITULARES DE ESCUELAS UNIVERSITARIAS

        Área

        CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL

        Departamento

        INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

        Correo electrónico / Página web / Tutoría electrónica

        edumart@um.es Tutoría electrónica: Sí

        Teléfono, horario y lugar de atención al alumnado

        Duración:
        C1
        Día:
        Jueves
        Horario:
        16:00-19:00
        Lugar:
        868884833, Facultad de Informática B1.1.015 (DESPACHO PROF. EDUARDO MARTÍNEZ GRACIÁ)
        Observaciones:
        No consta
        Duración:
        C2
        Día:
        Martes
        Horario:
        16:00-19:00
        Lugar:
        868884833, Facultad de Informática B1.1.015 (DESPACHO PROF. EDUARDO MARTÍNEZ GRACIÁ)
        Observaciones:
        No consta
      • MARTINEZ SANCHEZ, ANTONIO Docente: GRUPO 3 Coordinación de los grupos: GRUPO 3

        Categoría

        PROFESORES TITULARES DE UNIVERSIDAD

        Área

        CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL

        Departamento

        INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

        Correo electrónico / Página web / Tutoría electrónica

        anmartinezs@um.es https://webs.um.es/anmartinezs Tutoría electrónica: Sí

        Teléfono, horario y lugar de atención al alumnado

        Duración:
        A
        Día:
        Martes
        Horario:
        11:30-13:30
        Lugar:
        868884616, Facultad de Informática B1.1.009A (DESPACHO PROF. ANTONIO MARTÍNEZ SÁNCHEZ)
        Observaciones:
        Se requiere cita previa, que puede ser solicitada a través del Aula Virtual o correo electrónico. Las tutorías pueden ser tanto presenciales, en el despacho, como telemáticas.
  2. Presentación

    La asignatura se centra en las técnicas básicas de análisis y síntesis dentro del proceso general de construcción de compiladores. Se pretende que su estudio dé al alumno la capacidad para diseñar un traductor completo para un lenguaje de programación dado, incidiendo en el aprendizaje y uso de las herramientas adecuadas para cada fase del proceso.

    Para ello, se dará una visión general sobre la organización de los programas traductores, ofreciendo las técnicas necesarias para la resolución de problemas que aparecen a la hora de diseñar un traductor de un lenguaje.

    Aparte de servir como una introducción general sobre compiladores e intérpretes, se intentará estudiar a fondo la fase de análisis del proceso de compilación, es decir, la fase en que se divide al programa fuente en los elementos que lo componen y se crea una representación intermedia, haciendo énfasis especial en las fases de análisis léxico,el estudio de las gramáticas libres de contextoy las diferentes técnicas para realizar el análisis sintáctico.Además, se estudiarán las nociones básicas para realizar una traducción dirigida por la sintaxis,las diferentes opciones de representación intermedia para un programa fuente y la traducción desde un lenguaje fuente a código intermedio o ensamblador. Se introducirán los principales conceptos del análisis semántico, incluyendo las técnicas de comprobación de tiposen un compilador. Finalmente, se abordarán las cuestiones fundamentales que se presentan a la hora de generar código.

  3. Condiciones de acceso a la asignatura

    1. Incompatibilidades

      No constan

    2. Requisitos

      No constan

    3. Recomendaciones

      Se recomienda haber cursado la asignatura de 2º curso Autómatas y Lenguajes Formales.

      Por otro lado, serán necesarios conocimientos en el lenguaje de programación C.

  4. Competencias

    1. Competencias básicas

      • CB2: Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio
      • CB5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

    2. Competencias de la titulación

      • CGII1: Capacidad de análisis y síntesis.
      • CGII2: Capacidad de organización y planificación.
      • CGII3: Comunicación oral y escrita en la lengua nativa.
      • CGII5: Conocimientos de informática relativos al ámbito de estudio.
      • CGII7: Resolución de problemas.
      • CGII8: Toma de decisiones.
      • CGII9: Trabajo en equipo.
      • CGII14: Razonamiento crítico.
      • CGII16: Aprendizaje autónomo.
      • CGII17: Adaptación a nuevas situaciones.
      • CGII22: Motivación por la calidad.
      • CGUM1: Ser capaz de expresarse correctamente en español en su ámbito disciplinar.
      • CGUM3: Ser capaz de gestionar la información y el conocimiento en su ámbito disciplinar, incluyendo saber utilizar como usuario las herramientas básicas en TIC.
      • CGUM6: Capacidad para trabajar en equipo y para relacionarse con otras personas del mismo o distinto ámbito profesional.
      • CEII8: Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
      • CEII9: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
      • CR6: Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
      • CR7: Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.

    3. Competencias transversales y de materia

      No constan

  5. Contenidos

    1. Teoría

      Bloque 1: Teórico

      Tema 1: Traductores e intérpretes

      Tema 2: Análisis de léxico

      Tema 3: Análisis sintáctico

      Conceptos generales; Análisis LL; Análisis LR

      Tema 4: Análisis semántico y traducción dirigida por la sintaxis

      Tema 5: Generación de código

    2. Prácticas

      • Práctica 1: Manejo de la herramienta Flex

        Aprendizaje

        Relacionado con:
        • Tema 2: Análisis de léxico
      • Práctica 2: Diseño de un analizador léxico con Flex

        Desarrollo

        Relacionado con:
        • Tema 2: Análisis de léxico
      • Práctica 3: Manejo de la herramienta Bison

        Aprendizaje

        Relacionado con:
        • Tema 3: Análisis sintáctico
      • Práctica 4: Diseño de un analizador sintáctico con Bison

        Desarrollo

        Relacionado con:
        • Tema 3: Análisis sintáctico
      • Práctica 5: Manejo de atributos y acciones semánticas en Bison

        Aprendizaje

        Relacionado con:
        • Tema 3: Análisis sintáctico
        • Tema 4: Análisis semántico y traducción dirigida por la sintaxis
        • Tema 5: Generación de código
      • Práctica 6: Diseño del módulo de generación de código intermedio y/o ensamblador con Bison

        Desarrollo

        Relacionado con:
        • Tema 3: Análisis sintáctico
        • Tema 4: Análisis semántico y traducción dirigida por la sintaxis
        • Tema 5: Generación de código

  6. Actividades Formativas

    Actividad Formativa Metodología Horas Presencialidad
    A1: Actividades con grupo grande de alumnos entre las que se encuentran la presentación en el aula de los conceptos propios de la materia mediante metodología expositiva con lecciones magistrales participativas y medios audiovisuales. También se contemplan en este grupo las actividades de evaluación teórico prácticas.
    • Explicación en clase de conceptos teóricos incentivando la participación del alumno con ejercicios y cuestiones planteados con ese fin.
    • Evaluación final con un examen teórico/práctico. 
    24.0 40.0
    A2: Actividades con grupo mediano en el aula de resolución de problemas, seminarios, charlas, ejercicios basados en el aprendizaje orientado a proyectos, estudios de casos, exposición y discusión de trabajos relativas al seguimiento individual y/o grupal de adquisición de las competencias.

    Resolución de ejercicios en grupo.

    7.5 12.5
    A3: Actividades con grupo pequeño en el laboratorio relacionadas con la componente práctica de las asignaturas, desarrollo de trabajos con equipo técnico especializado, desarrollo de programas, etc.
    • Explicación de las herramientas necesarias para el desarrollo de las prácticas (Flex y Bison).
    • Desarrollo de la práctica por módulos: análisis de léxico, sintáctico, semántico y generación de código.
    22.5 37.5
    A4: Tutorías individualizadas o en grupo muy pequeño orientadas a la dirección, supervisión y asesoría por parte del un profesor de la asignatura, del tutor en el caso de Trabajo Fin de Grado, supervisión del tutor de empresa en el caso de Prácticas de Empresa que de forma periódica constate y redirija el trabajo del alumno hacia la consecución de los objetivo marcados.

    Resolución de dudas en grupo.

    6.0 10.0
    A5: Estudio y trabajo autónomo orientado a la asimilación de contenidos, realización de problemas, ejercicios o redacción de informes técnicos o memorias descriptivas, desarrollo de proyectos o prácticas individuales o en

    Estudio individual para afianzar los conceptos teóricos y realización de las tareas prácticas comenzadas en los laboratorios y orientadas a la elaboración del compilador.

    90.0 0.0
    Totales 150,00

  7. Horario de la asignatura

    https://www.um.es/web/estudios/grados/informatica/2026-27#horarios

  8. Sistemas de Evaluación

    Identificador Denominación del instrumento de evaluación Criterios de Valoración Ponderación
    IE1 Examen teórico-práctico. En este instrumento incluimos desde el tradicional examen escrito o tipo test hasta los exámenes basados en resolución de problemas, pasando por los de tipo mixto que incluyen cuestiones cortas o de desarrollo teórico junto con pequeños problemas. También se incluye aquí la consideración de la participación activa del alumno en clase, la entrega de ejercicios o realización de pequeños trabajos escritos y presentaciones.

    EXAMEN FINAL

    En el examen se valorarán los conocimientos teóricos del alumno y su capacidad para relacionarlos con las prácticas, a través de ejercicios y cuestiones que pueden incluir preguntas tipo test, preguntas cortas y problemas.

    Es necesario aprobar esta parte para poder superar la asignatura en cada convocatoria.

    Para obtener una calificación diferente a "No Presentado" en la asignatura será necesario presentarse físicamente al examen de teoría en la fecha y hora establecidos en el pertinente llamamiento, rellenar los datos personales, firmar y entregar el examen al profesor.

    50.0
    IE2 Informe técnico. En este instrumento incluimos los resultados de actividades prácticas, o de laboratorio, junto con sus memorias descriptivas. Los resúmenes del estado del arte o memorias de investigación sobre temas concretos. Y la posibilidad de realizar entrevistas personales o presentaciones de los trabajos realizados también entran en esta categoría.

    REALIZACIÓN DE UN PROGRAMA TRADUCTOR

    Se irá desarrollando por partes en las sesiones presenciales de prácticas a lo largo del curso, en grupos de dos alumnos, aunque se evaluarán únicamente los conocimientos adquiridos después de la finalización del proyecto completo.

    Para superar esta parte será imprescindible:

    1. Entregar el programa y que éste pase una batería de test que demuestren que se han implementado correctamente los objetivos mínimos indicados en la documentación de la práctica, que los profesores publicarán a principio de curso. El programa debe funcionar sin errores de compilación ni de ejecución. Esta entrega será requisito imprescindible para la evaluación de la parte práctica, aunque el alumno sólo obtendrá por ella una calificación de apto o no apto.

    2. Superar un examen práctico que demuestre que el alumno ha alcanzado las competencias mínimas para el desarrollo de las prácticas. En caso de superarlo, la nota será la obtenida en dicho examen. En caso de no superarlo, las prácticas se considerarán suspensas.

    Es necesario aprobar esta parte para poder superar la asignatura en cada convocatoria.

    Para obtener una calificación diferente a "No Presentado" en la asignatura será necesario realizar la entrega del programa y presentarse al examen.

    50.0

  9. Fechas de exámenes

    https://www.um.es/web/estudios/grados/informatica/2026-27#examenes

  10. Resultados del Aprendizaje

    Los objetivos formativos son:

    • Conocer la evolución de los lenguajes de programación entendiendo cómo esta historia ha conducido a los paradigmas actuales. Distinguir, al menos, una característica distintiva de cada uno de los paradigmas y compararlos.
    • Conocer la importancia y el poder de abstracción del concepto de máquina virtual, así como los beneficios de los lenguajes intermedios en el proceso de compilación.
    • Ser capaces de evaluar rendimiento vs portabilidad.
    • Ser capaces de comparar y contrastar los modelos de ejecución interpretados y compilados, conociendo ventajas de cada uno.
    • Conocer las fases de traducción de programas desde el código fuente al ejecutable y los ficheros producidos en esas fases, distinguiendo entre traducción dependiente e independiente de la máquina y localizando dónde se hace evidente esta diferencia dentro del proceso de traducción.
    • Reconocer los modelos formales subyacentes tales como autómatas finitos y autómatas de pila y su conexión con la definición de lenguajes a partir de expresiones regulares y gramáticas.
    • Ser capaces de usar las técnicas y herramientas explicadas en otros ámbitos distintos al de los compiladores.
    • Conocer cómo un sistema computacional usa registros de activación para manejar bloques de programas y sus datos.
    • Conocer el valor de los modelos de declaración. Ser capaces de identificar y describir las propiedades de una variable y discutir la incompatibilidad de tipos. Distinguir diferentes formas de ligadura, visibilidad, ámbito y manejo del tiempo de vida. Ser capaces de evaluar opciones en este último.
    • Conocer cómo los mecanismos de abstracción soportan la creación de componentes software reusables y ser conscientes de la importancia de las abstracciones.
    • Ser capaces de razonar acerca de la eficacia de la optimización.
    • Ser capaces de diseñar el back-end de un compilador para un lenguaje de programación, haciendo uso de las distintas técnicas explicadas y también de las herramientas automáticas para generar algunos de los módulos.
  11. Bibliografía

    Bibliografía complementaria

  12. Observaciones

    NECESIDADES EDUCATIVAS ESPECIALES

    Aquellos estudiantes con discapacidad o necesidades educativas especiales podrán dirigirse al Servicio de Atención a la Diversidad y Voluntariado (ADYV - https://www.um.es/adyv) para recibir orientación sobre un mejor aprovechamiento de su proceso formativo y, en su caso, la adopción de medidas de equiparación y de mejora para la inclusión, en virtud de la Resolución Rectoral R-358/2016. El tratamiento de la información sobre este alumnado, en cumplimiento con la LOPD, es de estricta confidencialidad.

    EVALUACIÓN

    En el procedimiento de evaluación resultarán de aplicación el artículo 135.1.v) de los Estatutos de la Universidad de Murcia, el artículo 8.6 del Reglamento de Evaluación de Estudiantes (REVA) y la instrucción SG 18/2026 del secretario general de la Universidad de Murcia que interpreta estas normas, disponible en este enlace: https://sede.um.es/sede/documento/normativa/instruccion-del-secretario-general-sg-18-2026-sobre-la-interpretacion-y-aplicacion-del-art-135-1-v-estatutos-umu/24199.pdf

    Se recuerda asimismo que el artículo 22.1 del Reglamento de Evaluación de Estudiantes (REVA) estipula que "el o la estudiante que se valga de conductas fraudulentas, incluida la indebida atribución de identidad o autoría, o esté en posesión de medios o instrumentos que faciliten dichas conductas, obtendrá la calificación de cero en el procedimiento de evaluación y, en su caso, podrá ser objeto de sanción, previa apertura de expediente disciplinario".

    OBSERVACIONES DEL EQUIPO DOCENTE

    Esta asignatura no se encuentra vinculada de forma directa con los Objetivos de Desarrollo Sostenible

    CONSIDERACIONES ACERCA DE LA EVALUACIÓN

    La nota que aparecerá en el acta de cada convocatoria responderá al siguiente criterio:

    Para poder superar la asignatura en cualquiera de las convocatorias (febrero, junio, julio), el alumno deberá aportar al profesor todas aquellas evidencias necesarias para poder realizar una evaluación global. Para esta asignatura se consideran evidencias las dos siguientes:

    • Presentarse físicamente al examen de teoría en la fecha y hora establecidos en el pertinente llamamiento, rellenar sus datos, firmar y entregar el examen al profesor.
    • Realizar la entrega de la práctica final y presentarse físicamente al examen de prácticas en la fecha y hora establecidos en el pertinente llamamiento, rellenar sus datos, firmar y entregar el examen al profesor.

    En este caso y para cada convocatoria:

    • Si el estudiante ha aportado todas las evidencias de evaluación que permitan una calificación global de la asignatura, se consignará en el acta la calificación global que proceda tras aplicarle los criterios de evaluación: Suspenso, Aprobado, Notable, Sobresaliente, Matricula de Honor. Para obtener una nota distinta de "Suspenso" será necesario aprobar ambas partes (teoría y prácticas).
    • Si el estudiante NO ha aportado TODAS las evidencias de evaluación que permitan una calificación global de la asignatura, se consignará en el acta la calificación de "No Presentado". En caso de entregar el proyecto y no realizar el control o no presentarse a la entrevista (si es convocado), la nota de prácticas será "Suspenso".

    Si el estudiante sólo ha aportado una de las dos evidencias necesarias para aprobar y ha superado la parte correspondiente, la calificación de dicha parte se guardará para las convocatorias extraordinarias siguientes (julio y enero). Una vez que la asignatura empiece a impartirse de nuevo, el alumno perderá la calificación favorable relacionada con esa parte.