UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENERIA INDUSTRIAL Y DE SISTEMAS
ESCUELA PROFESIONAL DE INGENERIA DE SISTEMAS
SÍLABO
I. INFORMACION GENERAL:
1.1 Nombre de la asignatura : Teoría de Lenguajes y compiladores.
1.2 Código de la asignatura : SEI0802
1.3. Condición : Electivo.
1.4. Número de Créditos :3
1.5. Horas semanales : 4 (Teoría 2 Horas de Laboratorio 2)
1.6. Ciclo académico : Octavo ciclo
1.7. Semestre académico : 2020-A1
1.8. Catedrática : Msc. Mg. Sally Torres Alvarado
II. SUMILLA
El propósito es analizar lenguajes formales y de programación. Incluye:
Definición de lenguaje. Análisis léxico. Gramáticas. Teoría de autómatas. Análisis
sintáctico: precedencia simple, precedencia de operadores. Análisis predictivo. Análisis
semántico. Código intermedio.
III. COMPETENCIAS
General
Lograr, en el estudiante, las competencias y habilidades para lograr conocer la
organización y estructura de los compiladores e intérpretes de lenguajes de programación.
Conocer el tratamiento computacional del lenguaje humano, realizar el procesamiento del
lenguaje natural.
Especificas
Analiza, identifica y aplica los fundamentos científicos y tecnológicos de los compiladores a
organización, arquitectura y diseño de cómputo para satisfacer los diversos requerimientos
científicos y tecnológicos de la organización. Diseña e implementa etapas de los
compiladores como son analizadores, léxicos, analizadores sintácticos y semánticos como
base para el diseño de nuevos compiladores computacionales. Diseña y programa códigos
para la generación de código intermedio, y optimización de código dispositivo de control de
periféricos por computadora. Define y simula una maquina abstracta. Estudia y aplica
técnicas algorítmicas de análisis sintáctico, semántico para el lenguaje natural. Define
áreas de utilización del lenguaje natural y valora sus posibilidades frente a las nuevas
tecnologías en hardware y comunicaciones.
1
Teoría de Lenguajes y Compiladores Msc. Ing. Sally Torres Alvarado
IV. METODOLOGIA DE ENSEÑANZA – APRENDIZAJE
Por parte del Docente, el método tendrá un carácter inductivo, deductivo, intuitivo –
visual y flexible; usando las técnicas de exposición participativa, trabajo individual y de
grupo, siguiendo el plan de la hoja de ruta educativa.
Por parte de los estudiantes, participarán activamente en clase, a nivel individual y
grupal; desarrollarán laboratorios y trabajos de investigación, en un contexto de
aprendizaje significativo y experiencial, según la hoja de ruta educativa.
PROGRAMACION DE CONTENIDOS
5.1. UNIDAD I. Introducción a los compiladores. Evolución. 2
Sem Contenidos Competencia Criterio a
evaluar
1 Conceptuales
Historia de la evolución de los Reconoce compiladores y su evolución
compiladores. Definición de Procedimentales
compiladores, intérpretes y Conceptualiza apropiadamente la
lenguajes de programación. evolución de los compiladores.
Perspectivas de la investigación en Actitudinal
relaciona los compiladores. Reconoce la importancia de los
compiladores
2 Estructura de un compilador. Conceptuales
Análisis léxico, Evolución del Reconoce la estructura de los
Análisis léxico Descripción Base de compiladores. Analizador léxico.
las construcción de analizadores Procedimentales
léxicos Conceptualiza apropiadamente la
evolución del analizador léxico.
Actitudinal
Reconoce la importancia del analizador
léxico
3 Operaciones sobre las cadenas: Conceptuales EL1
longitud, subcadena, cadena prefijo Reconoce las cadenas como elemento
y sufijo, producto, potencia. para realizar análisis léxico
Procedimentales
Conceptualiza apropiadamente el uso
de las cadenas en el desarrollo del
análisis léxico.
Actitudinal
Reconoce la importancia de las cadenas
como elemento principal para realizar
análisis léxico
5.2. UNIDAD II. Autómatas y Diagrama de transiciones
Sem. Contenidos Competencia Criterio a
Evaluar
4 Expresiones regulares. Algoritmo Conceptuales
de construcción de Thompson. Reconoce las expresiones regulares
Procedimentales
Conceptualiza apropiadamente las
expresiones regulares.
Actitudinal
Reconoce la importancia de las
expresiones regulares en el diseño de
2
Teoría de Lenguajes y Compiladores Msc. Ing. Sally Torres Alvarado
un analizador léxico
5 Autómatas. Autómatas Finitos no Conceptuales EL2
Deterministas AFN. Reconoce los autómatas y sus
Autómatas Finitos Deterministas diferencias.
(AFD) Procedimentales
Conceptualiza apropiadamente los
autómatas
Actitudinal
Reconoce la importancia de los
autómatas para los analizadores léxicos
6 Conversión de AFN a AFD. Conceptuales
Diagrama de Transiciones. Reconoce los diagramas de
transiciones.
Procedimentales
Conceptualiza apropiadamente los
diagramas de transiciones.
Actitudinal
Reconoce la importancia de los
diagramas de transiciones.
7 Evaluación de trabajo de Evaluación intermedia entrega de TIT 1
investigación trabajos
8 Examen Parcial
5.3. UNIDAD III. Análisis sintáctico. 3
Sem. Contenidos Competencia Criterio a
Evaluar
9 Análisis sintáctico, gramáticas Conceptuales
independientes del contexto, Reconoce los analizadores sintácticos.
derivaciones: izquierda, derecha. Procedimentales
Árboles de análisis sintáctico, Conceptualiza apropiadamente los
gramáticas ambiguas. analizadores sintácticos
Actitudinal
Valora la importancia de los
analizadores sintácticos para realizar su
diseño.
10 Escritura de la gramática, Conceptuales EL3
eliminación de recursidad a la Reconoce el diseño de gramáticas y
izquierda. Propiedades. propiedades.
Procedimentales
Conceptualiza las gramáticas
Actitudinal
Valora la importancia del diseño de
gramáticas.
11 Propiedades de ambigüedad, Conceptuales
asociatividad y recursividad. Reconoce las propiedades de las
gramáticas
Procedimentales
Conceptualiza dichas propiedades.
Actitudinal
Valora la importancia de las
propiedades
12 Obtención de las relaciones de Conceptuales EL4
precedencia, precedencia de Reconoce la precedencia
operadores, obtención de las Procedimentales
relaciones de precedencia del Conceptualiza apropiadamente la
operador. precedencia.
Actitudinal
3
Teoría de Lenguajes y Compiladores Msc. Ing. Sally Torres Alvarado
Reconoce la importancia de la
precedencia
5.4. UNIDAD IV. Generación de código Intermedio y código de maquina
Sem. Contenidos Competencia Criterio a
Evaluar
13 Generación de código Intermedio. Conceptuales EL3
Optimización de código. Algoritmo Reconoce las reglas para realizar el
de Cálculo de primero y siguiente. código intermedios
Procedimentales
Conceptualiza apropiadamente la
generación de códigos intermedios.
Actitudinal
Valora la importancia de la generación
de código intermedio y su optimización
14 Generación de código de máquina. Conceptuales
Reconoce las reglas para transformar a
código de maquina
Procedimentales
Conceptualiza apropiadamente la
transformación a código de máquina.
Actitudinal
Valora la importancia de la generación
de código de maquina
15 Informe y sustentación trabajo de Evaluación intermedia entrega de TIT2
investigación teórico 2 trabajos
16 Examen Final EF
17 Examen Sustitutorio ES
V. EVALUACION
La evaluación es permanente, formativa y sistemática teniendo en cuenta el
desempeño del estudiante en las actividades programadas. se aplicarán pruebas para
medir el rendimiento del estudiante, en conocimientos, procedimientos y en actitudes, las
mismas que serán pruebas estandarizadas y estructuradas por los docentes de cada
asignatura, para ello se usara como instrumentos de evaluación (Cuestionarios, Lista de
cotejo, Ficha de observación, Batería de preguntas, Cuestionarios, Lista de cotejo y otros)
4
La asistencia a clases es obligatoria. El 30% de inasistencias inhabilita al estudiante en
la asignatura.
Sem Descripción Abreviación porcentaje
3 Evaluación laboratorio 1 EL1 5
5 Evaluación laboratorio 2 EL2 5
7 Informe y sustentación trabajo de investigación teórico 1 TIT1 10
8 Examen Parcial EP 30
10 Evaluación laboratorio 3 EL3 5
12 Evaluación laboratorio 4 EL4 5
15 Informe y sustentación trabajo de investigación teórico 2 TIT2 10
16 Examen Final EF 30
17 Examen sustitutorio5 ES
4
Teoría de Lenguajes y Compiladores Msc. Ing. Sally Torres Alvarado
Los pesos serán tratados tal cual se indica en la formula señalada en el siguiente recuadro
P.F = (EL*0.2+TIT*0.2+ EP*0.3 + EF*0.30)
VI. FUENTES DE INFORMACIÓN
1.- AHO-ULLMAN, (2000). Compiladores, Principios, técnicas y herramientas. Addison Wesley
Iberoamericana, S.A. de E.U.A.
2.-SALAS PARRILLA, Jesús (2008). Sistemas operativos y Compiladores. Mc. Graw-Hill /
Interamericana de España S.A.
3.-TEUFEL. SCHMIDT. TEUFEL (2005). Compiladores, Conceptos Fundamentales, Addison
Wesley Iberoamericana, S.A. de E.U.A
4.- http://homepage.mac.com/eravila/compilerI.html
5.-www.itlp.edu.mx/publica/tutoriales/progsis1/tema311.htm 5
6.- www.suigeneris.org/ucab/ti/notas/fases_compilador.html
VII. PROYECTO DEL CURSO
Los Proyectos están propuestos para ser realizados en grupos de un tamaño máximo de 2
personas. En la valoración de estos Proyectos no se tendrá en cuenta el número de alumnos
que componen el grupo, las dificultades de coordinación surgidas dentro del grupo, etc.
El Proyecto consiste en el diseño e implementación de un analizador léxico y luego un
analizador sintáctico (fases de un compilador) para un determinado lenguaje de programación.
El trabajo se abordará de una manera incremental.
PRESENTACIÓN
La presentación del Proyecto constará de:
Una memoria (máximo 40 páginas) que incluya:
o Una descripción de la parte realizada, así como cualquier otro aspecto o
característica que se desee hacer notar por su interés, sin incluir los listados
fuente.
o 12 casos de prueba y sus correspondientes listados de compilación. La mitad
de ellos serán correctos y la otra mitad erróneos, de tal manera que permitan
observar el comportamiento del analizador léxico y sintáctico.
Se deberá preparar ppt para la presentación y sustentación del proyecto Fecha semana siete
y semana 15
Nota: El compilador deberá leer (a través de la línea de comandos) el programa fuente de un
archivo de texto y entregar el código objeto generado en otro archivo de texto.
5
Teoría de Lenguajes y Compiladores Msc. Ing. Sally Torres Alvarado