Teoria de sistemas

6
OBJETIVOS DE LA ASIGNATURA (Curso 2012/2013) 1. Estudiar el proceso de traducción y las técnicas para su implantación, dependiendo del tipo de lenguaje. 2. Implementar un compilador para un lenguaje de programación orientado al problema, utilizando herramientas de generación automática (LEX y YACC). PROGRAMA DE TEORÍA Tema 1 Procesadores de Lenguajes Tema 2 Análisis de Léxico Tema 3 Análisis Sintáctico Tema 4 Métodos de Análisis Sintáctico Descendentes Tema 5 Análisis Sintáctico Ascendente Tema 6 Análisis Sintáctico Ascendente LR Tema 7 Análisis Semántico Tema 8 Lenguajes Intermedios Tema 9 Organización de la Memoria Tema 10 Intérpretes Tema 11 Generación de Código Objeto Tema 12 Optimización de Código BIBLIOGRAFÍA BÁSICA. TEORÍA Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman Compiladores. Principios, Técnicas y Herramientas Segunda edición. Addison Wesley 2008 Kenneth C. Louden Construcción de Compiladores Thomson 2004 Jean-Paul Tremblay Paul G. Sorenson The Theory and Practice of Compiler Writing McGraw-Hill 1985 A. Garrido J.M. Iñesta F. Moreno J.A. Pérez Diseño de Compiladores Publicaciones Universidad de Alicante 2002 M. Alfonseca M. de la Cruz A. Ortega E. Pulido Compiladores e Intérpretes: Teoría y Práctica Pearson Prentice Hall 2006

description

curso de teoría de sistemas compiladores

Transcript of Teoria de sistemas

Page 1: Teoria de sistemas

OBJETIVOS DE LA ASIGNATURA (Curso 2012/2013)

1. Estudiar el proceso de traducción y las técnicas para su implantación, dependiendo del tipo de lenguaje. 2. Implementar un compilador para un lenguaje de programación orientado al problema, utilizando herramientas de

generación automática (LEX y YACC).

PROGRAMA DE TEORÍA

Tema 1 Procesadores de Lenguajes

Tema 2 Análisis de Léxico

Tema 3 Análisis Sintáctico

Tema 4 Métodos de Análisis Sintáctico Descendentes

Tema 5 Análisis Sintáctico Ascendente

Tema 6 Análisis Sintáctico Ascendente LR

Tema 7 Análisis Semántico

Tema 8 Lenguajes Intermedios

Tema 9 Organización de la Memoria

Tema 10 Intérpretes

Tema 11 Generación de Código Objeto

Tema 12 Optimización de Código

BIBLIOGRAFÍA BÁSICA. TEORÍA

Alfred V. Aho – Monica S. Lam – Ravi Sethi – Jeffrey D. Ullman

Compiladores. Principios, Técnicas y Herramientas Segunda edición. Addison Wesley 2008

Kenneth C. Louden

Construcción de Compiladores Thomson 2004

Jean-Paul Tremblay – Paul G. Sorenson

The Theory and Practice of Compiler Writing McGraw-Hill 1985

A. Garrido – J.M. Iñesta – F. Moreno – J.A. Pérez

Diseño de Compiladores Publicaciones Universidad de Alicante 2002

M. Alfonseca – M. de la Cruz – A. Ortega – E. Pulido

Compiladores e Intérpretes: Teoría y Práctica Pearson Prentice Hall 2006

Page 2: Teoria de sistemas

PROGRAMA DE PRÁCTICAS

Práctica 1 Diseño de un lenguaje tipo procedural estructurado y orientado al problema.

Práctica 2 Diseño e implantación del análisis de léxico, utilizando LEX.

Práctica 3 Obtención de la gramática abstracta, especificación YACC de la misma e

implantación del analizador sintáctico.

Práctica 4 Análisis semántico: tabla de símbolos y comprobaciones semánticas.

Práctica 5 Generación de código. (Dispone de una parte obligatoria y dos partes optativas).

BIBLIOGRAFÍA BÁSICA. PRÁCTICAS

J.P. Bennett

Introduction to Compiling Techniques: A First Course Using ANSI C, LEX & YACC McGraw-Hill 1990

J.R. Levine – T. Manson – D. Brown

Lex & Yacc O’Reilly & Associates Inc. 1992

Cuatrimestre (por semanas)

Lun Mar Mié Jue Vie Prácticas

Semana 1 18 19 20 21 22 Febrero Apuntarse a

prácticas

Semana 2 25 26 27 28 1

Marzo

Preparación

Práctica 1

Semana 3 4 5 6 7 8 S.1 Práctica 1

Semana 4 11 12 13 14 15 S.2 Práctica 1

Semana 5 18 19 20 21 22 S.1 Práctica 2

Semana 6 25 26 27 28 29

1 2 3 4 5

Abril

S.2 Práctica 2

Semana 7 8 9 10 11 12 S.1 Práctica 3

Semana 8 15 16 17 18 19 S.2 Práctica 3

Semana 9 22 23 24 25 26 S.3 Práctica 3

Semana 10 29 30 1 2 3

Mayo

S.1 Práctica 4

Semana 11 6 7 8 9 10 S.2 Práctica 4

Semana 12 13 14 15 16 17 S.3 Práctica 4

Semana 13 20 21 22 23 24 S.1 Práctica 5

Semana 14 27 28 29 30 31 S.2 Práctica 5

Semana 15 3 4 5 6 7 Junio

S.3 Práctica 5

Semana 16 10 11 12 Extra

Dado que el cuatrimestre finaliza el miércoles 12 de junio, hemos considerado oportuno no contabilizar le última

semana del 10 al 12.

Page 3: Teoria de sistemas

Práctica TEMPORIZACIÓN

Periodo docente: del 18 de febrero al 12 de junio

1

Diseño del Lenguaje (2 sesiones)

Del 4 al 8 de marzo Inicio de la especificación del lenguaje

Del 11 al 15 de marzo Presentación del BNF y tabla de componentes léxicos

(tokens)

Fecha límite Del 29 de abril al 3 de mayo

2

Analizador de Léxico (2 sesiones)

Del 18 al 22 de marzo Inicio de implantación del léxico

Del 2 al 5 de abril Presentación del léxico

Fecha límite Del 6 al 10 de mayo

3

Analizador Sintáctico (3 sesiones)

Del 8 al 12 de abril Implantación YACC de la gramática abstracta

Del 15 al 19 de abril Detección y recuperación de errores sintácticos

Del 22 al 26 de abril Presentación del sintáctico

Fecha límite Del 13 al 17 de mayo

4

Analizador Semántico (3 sesiones)

Del 29 de abril al 3 de mayo Implantación del semántico (1ª Parte)

Del 6 al 10 de mayo Implantación del semántico (2ª Parte)

Del 13 al 17 de mayo Presentación del semántico

Fecha límite Del 20 al 24 de mayo

5

Generación de Código Intermedio (3 sesiones)

Del 20 al 24 de mayo Inicio de generación de código

Del 27 al 31 de mayo Presentación de generación de código (parte obligatoria)

Del 3 al 7 de junio Presentación de generación de código (parte optativa)

Fecha límite (parte obligatoria) Del 27 al 31 de mayo

Fecha límite (parte optativa) Del 3 al 7 de junio

Se muestra en la anterior tabla una fecha en la que se recomienda la presentación de cada práctica con objeto de seguir una buena planificación y evitar agobios al final y sobre todo mantener la sincronización de las prácticas con las clases de teoría. No obstante, también se muestra la fecha límite de presentación de la práctica en la misma tabla.

Page 4: Teoria de sistemas

NORMAS GENERALES (Curso 2012/2013)

1. Teoría y Problemas. A) Estructura.

A.I) El horario de cada grupo de teoría, profesor y aula es el siguiente:

Grupo Profesor Horario Aula

A Salvador Villena L, X, 10h-11h y M, J, 11h-12h 1.2

B Buenaventura Clares L. M, X, J 9h-10h 1.4

C Jorge Revelles M 9h-11h, J 10h-12h 1.6

B) Evaluación y calificación.

B.I) La calificación máxima que se puede obtener entre teoría y problemas es de 7 puntos.

B.II) Se realizará un examen parcial eliminatorio de teoría y problemas. Para eliminar la parte examinada será necesario aprobar tanto la parte de teoría como la de problemas.

B.III) El examen final constará de dos partes: una referente a los temas evaluados en el examen parcial y otro con el resto. Cada parte constará de preguntas de teoría y problemas. Los alumnos que hayan eliminado materia en el examen parcial no estarán obligados a realizar la primera parte, en cuyo caso la puntuación obtenida en ese examen se sumará a la obtenida en la segunda parte del examen final. No obstante, podrán realizar voluntariamente la primera parte si desean subir nota sin perjuicio alguno ya que se mantendrá la mejor calificación obtenida.

B.IV) El apartado de teoría y problemas se elimina obteniendo una calificación igual o superior a 3.5 puntos. En cualquier caso, la calificación obtenida en este apartado no se guardará para otras convocatorias.

2. Prácticas. A) Estructura.

A.I) La enseñanza de las prácticas de la asignatura se organiza en “grupos de prácticas” y éstos, a su vez, en “grupos de alumnos”. Cada “grupo de prácticas” estará formado por un máximo de 8 “grupos de alumnos”, y cada “grupo de alumnos” estará formado por un mínimo de 1 alumno y un máximo de 4 alumnos.

A.II) El horario de los grupos de prácticas es el siguiente:

Grupo Día y Hora Profesor Aula

P1 Martes 12h-14h Salvador Villena 3.5

P2 Jueves 12h-14h Salvador Villena 3.5

P3 Viernes 8h-10h Ramón López-Cózar 3.5

P4 Viernes 10h-12h Salvador Villena 3.5

P5 Viernes 12h-14h Salvador Villena 3.5

A.I) Durante la semana del 18 al 22 de febrero (ambos inclusive), se abre la posibilidad de formar un grupo de alumnos y seleccionar hasta un máximo de tres alternativas de entre todos los grupos de prácticas usando la web de la asignatura http://lsi.ugr.es/pl (APARTADO: “Apuntarse a prácticas”) por el cual el propio sistema, una vez registradas las solicitudes, realiza la asignación automática de grupos de alumnos a los diferentes grupos de prácticas.

Page 5: Teoria de sistemas

OPCIONES PARA APUNTARSE A PRÁCTICAS Plazo abierto a través de la página web Constituir previamente un grupo de un mínimo de 1 alumno hasta un máximo de 3.

Uno de los integrantes del grupo se registra en la Web de la asignatura.

Seleccionar el apartado de apuntarse a prácticas e identificarse con el DNI (sin la letra). Se recuerda que es necesario que todos los integrantes del grupo estén matriculados en la asignatura.

Determinar el número de personas que van a constituir el grupo e insertar, en su caso, el DNI (sin la letra) de cada uno.

Elegir hasta tres preferencias de horario de prácticas teniendo en cuenta que el sistema podría penalizar aquellos grupos que no hubieran seleccionado las tres que se proponen.

Enviar la propuesta de elección a la Web mediante el botón de aceptar.

A partir de ese momento, siempre que el plazo para apuntarse a prácticas permanezca abierto, se podrán cambiar las preferencias de selección de grupos de prácticas o, a nivel individual, darse de baja de dicho grupo. No será posible cambiar los integrantes del grupo una vez creado. En ese caso, habrá que darse de baja de forma individual y constituir posteriormente un nuevo grupo. Una vez cerrado el plazo para poder elegir grupos de prácticas, el sistema realiza la asignación de manera automática de los grupos de alumnos a los grupos de prácticas seleccionados de una forma totalmente aleatoria pero considerando las preferencias indicadas. El lunes 25 de febrero se publicará en la web la distribución definitiva de grupos de alumnos en los diferentes grupos de prácticas, así como la descripción de las características del lenguaje asignado. Las prácticas comienzan el lunes 4 de marzo. A partir de ese momento, el que no se haya apuntado a prácticas usando la página web deberán seguir el mecanismo que se describirá a continuación. Fuera de plazo Aquellos que no usen la web tendrán que notificarlo por medio de su profesor de teoría. Todas las solicitudes se irán acumulando y a finales de cada semana se realizará la asignación tanto del grupo de prácticas como del lenguaje asignado. El criterio de asignación del grupo de prácticas es el de equilibrio de los grupos de prácticas, por lo tanto, no habrá ninguna posibilidad de elección, si bien, también podrán unirse a otros grupos ya asignados siempre y cuando no se supere el número máximo de integrantes. En la web de la asignatura se publicarán las asignaciones realizadas en cada semana. A.II) Las prácticas de la asignatura están estructuradas en 5 prácticas obligatorias y una parte optativa. Su objetivo global es la implantación de un traductor para un lenguaje de programación orientado al problema. A cada “grupo de alumnos” se asignará las características del lenguaje que debe diseñar para la realización de las prácticas.

B) Evaluación y calificación.

B.I) La calificación máxima que se puede obtener en prácticas es de 5 puntos.

B.II) Requisitos para superar la evaluación de las prácticas:

B.II.a) Para poder someter a evaluación una práctica es necesario que todas las anteriores estén totalmente correctas, es decir, que se hayan superado con éxito todas las pruebas propuestas en el guión de prácticas). B.II.b) La evaluación de cada práctica se hará a solicitud del "grupo de alumnos" correspondiente antes de la fecha límite de evaluación de cada práctica. Dentro del periodo establecido para cada práctica, el profesor evaluará aquellos grupos de alumnos que no hayan sido aún evaluados y a aquellos que, habiendo sido ya evaluados, no la superaron en su momento. El número máximo de evaluaciones para cada práctica es de dos, una a petición de los grupos de alumnos y otra hasta la fecha límite de evaluación de la misma.

B.III) En una sesión de prácticas sólo se podrá evaluar una práctica por grupo de alumnos salvo situaciones puntuales que se puedan derivar de las fechas disponibles.

B.IV) Con independencia de la calificación obtenida, toda práctica deberá satisfacer el apartado B.II.a antes de pasar a realizar la siguiente.

B.V) La calificación de las prácticas consta de dos componentes:

Page 6: Teoria de sistemas

B.V.a) Primera componente: igual para todos los alumnos de un “grupo de alumnos”. Resultará de la evaluación de las prácticas realizadas en el laboratorio por cada “grupo de alumnos”. La puntuación obtenida será la misma para todos los alumnos integrantes de un mismo “grupo de alumnos”. A su vez, puede dividirse en dos partes:

Parte Obligatoria: Defensa de las prácticas obligatorias hasta un máximo de 3.5 puntos.

Parte Optativa: Defensa de la práctica optativa hasta un máximo de 1.5 puntos.

B.V.b) Segunda componente: individual. Resultará de la evaluación de una Prueba Escrita en la que se ponga de manifiesto la comprensión y el trabajo realizado en las prácticas de laboratorio. La prueba se calificará entre 0 y 1.

B.VI) La nota final de prácticas se obtiene de acuerdo a lo siguiente:

B.VI.a) La puntuación obtenida en la primera componente será la suma de la puntuación obtenida en la parte obligatoria y optativa.

Primera Componente = Parte Obligatoria + Parte Optativa

B.VI.b) La puntuación obtenida en la segunda componente actuará como multiplicador sobre la puntuación obtenida en la primera componente.

Nota Final Practicas = Primera Componente * Segunda Componente

B.VI.c) Si la nota de la primera componente es igual o mayor que 1.5 puntos se guarda su calificación hasta Septiembre.

B.VI.d) Si la nota final de prácticas es igual o mayor que 1.5 puntos se guarda la calificación de prácticas de forma indefinida.

3. Calificación final de la asignatura. A) La calificación final de la asignatura se obtiene sumando la calificación de teoría-problemas y nota final de prácticas.

B) La calificación final debe ser igual o superior a 5 puntos para superar la asignatura.

4. Material de la asignatura. El material empleado en las clases de teoría, la normativa de la asignatura, guión de prácticas y software de apoyo podrá encontrarse en la siguiente dirección:

http://lsi.ugr.es/pl