You are on page 1of 4

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

FACULTAD DE INGENIERIA
ESCUELA DE CIENCIAS Y SISTEMAS

NOMBRE DEL CURSO: Lenguajes Formales y de Programacin


CDIGO:

796

CRDITOS:

ESCUELA:

Ciencias y Sistemas

REA A LA QUE PERTENECE:

Ciencias de la
computacin

PRE REQUISITOS:

770 Introduccin a la
computacin y programacin 1
795 Lgica de sistemas
960 Matemtica para la
computacin 1

POST REQUISITOS:

777 Organizacin de
lenguajes y
compiladores 1
964 Organizacin
computacional

CATEGORA:

Obligatorio

CATEDRTICO (A):

Inga. Damaris Campos


de Lpez

AUXILIAR:

HORARIO DEL CURSO:

Martes 07:00 AM 08:40 AM

HORARIO DEL LABORATORIO:

SEMESTRE:

2do semestre 2014


Erick Carlos Roberto
Navarro Delgado
Viernes de 13:10 a
14:50

Descripcin del curso:


Este laboratorio tiene como propsito poner en prctica los conocimientos
tericos adquiridos en el curso de Lenguajes Formales.
Durante el laboratorio, el estudiante aprender a implementar correctamente
los elementos bsicos de un compilador que estn involucrados en las fases
de anlisis lxico, sintctico y semntico.
El estudiante deber disear gramticas que reconozcan los lenguajes que se
proponen en las prcticas y proyectos del laboratorio, y utilizar diversas
tcnicas y mtodos de programacin, para implementarlas.

Objetivo General:
Que el estudiante obtenga los conocimientos tericos y prcticos que
fundamentan el diseo de lenguajes de programacin y compiladores.
Objetivos Especficos:
Que el estudiante sea capaz de utilizar los conceptos tericos para
implementar un lenguaje formal.

Que el estudiante sea capaz de desarrollar analizadores lxicos en base a


autmatas finitos deterministas.

Que el estudiante sea capaz obtener autmatas finitos deterministas a


partir de expresiones regulares mediante el mtodo de Thompson y la
construccin de subconjuntos.

Que el estudiante pueda obtener autmatas finitos deterministas a partir de


expresiones regulares mediante el mtodo del rbol.

Que el estudiante sea capaz de desarrollar analizadores sintcticos en


base a gramticas independientes del contexto.
Que el estudiante pueda implementar un analizador sintctico predictivo
recursivo, en base a una gramtica independiente del contexto que cumpla
con las restricciones correspondientes.

Metodologa:
Se impartirn clases presenciales en las cuales se complementar el
contenido terico del curso, poniendo en prctica los conocimientos adquiridos
mediante ejercicios y otras actividades prcticas.
Adicionalmente se realizarn proyectos, prcticas, tareas, exmenes cortos y
hojas de trabajo con el objetivo de mejorar las habilidades de los estudiantes
en el diseo y construccin de compiladores y evaluar los conocimientos
adquiridos.
Dentro del desarrollo del laboratorio el alumno deber tomar en cuenta lo
siguiente:
Copias parciales o totales en las tareas, investigaciones, etc. sern
sancionadas.

Copias en los proyectos y prcticas sern sancionadas y reportadas a la


escuela de sistemas.

Las tareas, investigaciones, prcticas, proyectos, etc., deben ser


entregadas en la fecha indicada y con el formato establecido.

Evaluacin:
La nota final del laboratorio, se distribuye en actividades de evaluacin de la
siguiente manera:
Tareas, exmenes cortos y hojas de trabajo. 5 puntos
Prctica 1 (5 ago-23 ago) 10 puntos
Primer proyecto (26 ago-20 sep)... 30 puntos
Prctica 2 (23 sep-7 oct)..... 10 puntos
Segundo proyecto (7 oct-4 nov). 35 puntos
Examen Final. 10 puntos
Total 100 puntos
Observaciones:
El laboratorio se debe de aprobar con una nota mnima de 61 puntos.
Solo se calificaran exmenes, proyectos y dems actividades, a
estudiantes asignados.
Las prcticas y proyectos deben desarrollarse utilizando Visual Basic
versin 2013.

Contenido:
1. Conceptos generales
a. Definicin de lenguaje formal
b. Definicin de compilador
c. Fases del compilador
d. Definicin de intrprete
e. Diferencias entre compiladores e intrpretes
2. Anlisis Lxico
a. Token, lexema, patrn y ejemplos
b. Implementacin de un analizador lxico
c. Tabla de smbolos
3. Jerarqua de Chomsky
a. Niveles
b. Restricciones
c. Ejemplos
4. Lenguajes regulares y gramticas regulares
a. Definicin
b. Diseo y construccin
c. Arboles de derivacin
d. Ejemplos y aplicaciones
5. Expresiones Regulares
a. Definicin y Propiedades
b. Diseo y construccin
c. Relacin Gramticas Regulares Expresiones Regulares
6. Autmatas Finitos
a. Definicin
b. Tabla de transicin
c. Autmatas Finitos No Deterministas
d. Autmatas Finitos Deterministas
e. Implementacin de Autmatas Finitos Deterministas
7. Mtodo del rbol
a. Construccin del rbol
b. Calculo de primeros, ltimos y siguientes.
c. Construccin del autmata finito determinista
d. Implementacin del mtodo del rbol
e. Resolucin de ejercicios aplicando el mtodo
8. Mtodo de Thompson y subconjuntos
a. Nomenclatura
b. Resolucin de ejercicios aplicando el mtodo
9. Anlisis Sintctico
a. Funcionamiento de un analizador sintctico
b. Implementacin de analizadores sintcticos
c. Anlisis sintctico ascendente
d. Anlisis sintctico descendente

10. Gramticas independientes del contexto


a. rboles de derivacin
b. Ambigedad y recursividad
c. Factorizacin por la izquierda
d. Eliminacin de la recursividad por la izquierda
e. Implementacin de autmatas de pila
f. Analizador sintctico descendente
11. Analizador sintctico descendente LL(1)
a. Primeros y siguientes
b. Construccin de tabla de anlisis sintctico

Bibliografa:
Aho, Alfred V., Sethi y Ullman. Compiladores: principios, tcnicas y
herramientas. Addison-Wesley.

Brookshear, J. Glenn. Teora de la Computacin - Lenguajes formales,


autmatas y complejidad. Addison-Wesley Iberoamericana.

Andrew W. Appel. Modern Compiler Implementation in Java. Second Edition.


Cambridge University Press.

Hopcroft, John y Ullman, Jeffrey. Introduccin a la Teora de Autmatas,


Lenguajes y Computacin.
Kenneth Louden. Construccin de compiladores

You might also like