Planificación de Laboratorio de Ingeniería de Software (2019)

 IMPRIMIR PLANIFICACIÓN

Información básica

Carrera
Ingeniería en Informática
Departamento
Informática
Sitio Web
http://infofich.unl.edu.ar/admin/ensenanza/planificaciones/planificaciones-editar-planificacion.php?id=1440
Plan de Estudios
Plan 2006
Carácter Período
Cuatrimestral No especificado
Docente Responsable
Gabriela Mannarino

Equipo docente

Nombre y Apellido
Mannarino, Gabriela

Carga horaria

Carga horaria total 60 hs
Teoría 16 hs
Resolución de ejercicios 20 hs
Proyecto y diseño 0 hs
Evaluaciones 6 hs
Formación experimental 0 hs
Resolución de problemas de ingeniería 18 hs
Otras actividades 0 hs

Contenidos mínimos

Sistemas computacionales. Compilación y enlazado. Representación de la información y del código en la computadora.

Objetivos

Esta asignatura se focaliza en el front-end de los compiladores; es decir, en el análisis léxico y sintáctico. Se espera que el alumno:

1. Conozca las etapas fundamentales de un compilador

2. Comprenda el proceso que permite generar una representación de los programas que puede ser procesada por las computadoras

3. Conozca los diferentes lenguajes y gramáticas formales

4. Logre un conocimiento básico de los modelos computacionales formales subyacentes (autómatas), sus capacidades y limitaciones. En particular, los autómatas de estado finito y push-down. 

5. Conozca el modelo de Turing y los conceptos básicos de la teoría de la computabilidad: problemas decidibles, no decidibles y tratables e intratables 

6. aprenda a desarrollar analizadores léxicos y sintácticos

7. Enriquezca su capacidad de análisis y de resolución de problemas

8. Aprenda a i. presentar y exponer públicamente sus propuestas, ii. desarrollar un espíritu crítico, iii. analizar bibliografía por sí solo

9. Estimule su curiosidad, ganas de aprender y crecimiento personal continuo

Conocimientos específicos previos para cursar la asignatura

Los alumnos deberán ser capaces de comprender bibliografía en inglés y tener 4 año aprobado.

Metodología de enseñanza

La asignatura se dictará a través de clases teórico-prácticas. Se discutirán grupalmente los conceptos teóricos que permitan plantear soluciones a problemas concretos.

Programa Analítico

1. Introducción

Introducción a los compiladores, máquinas abstractas, gramáticas y lenguajes formales. Jerarquía de Chomsky

 

2. Análisis léxico

Autómatas de estado finito. Autómatas determinísticos y no determinísticos. Expresiones regulares. Analizadores léxicos. Herramienta lex/flex. Conversión de autómatas a expresiones regulares y de expresiones regulares a autómatas

3. Análisis sintáctico

Gramáticas libres de contexto. Representación gramatical BNF y EBNF.  Analizadores sintácticos. Derivaciones. Análisis top-down y bottom-up. Ambigüedad. Introducción a los autómatas push-down. Lenguaje aceptado por un autómata push-down. Herramienta yacc.

Introducción a la teoría de la computabilidad (opcional)

4. Modelo de Turing.

Máquina de Turing. Problemas decidibles, no decidibles, trabables e intratables

Bibliografía

Bibliografía básica

Aho, A., Lam M., Sehi R, and Ullman J.
Compilers. Principles, Techniques, & Tools (2nd. edition)
Addison Wesley

Hopcroft J.E., Motwani R., Ullman, J.
Introduction to Automata Theory, Languages, and Computation. 3rd. edition
Pearson, Addison Wesley

Kernighan B., Ritchie D.
The C programming language, 2nd. edition
Prentice Hall

Cronograma de actividades

Unidad 1 Semana 1 Tipo: TP Duración: 2 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:
Observaciones:
Ejercicios prácticos y exposiciones Semana 2 Tipo: EP Duración: 20 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:

Los alumnos deberán realizar las prácticas propuestas así como preparar sus exposiciones sobre conceptos teóricos específicos durante todo el curso. Ambas actividades serán apoyadas por el docente

Observaciones:
Unidad 2 Semana 2 Tipo: T Duración: 4 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:
Observaciones:

La unidad 2 se desarrollará durante 4 semanas

TP1 Semana 4 Tipo: PI Duración: 7 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:

Práctico integrador sobre análisis léxico

Observaciones:
Evaluación TP1 Semana 6 Tipo: E Duración: 3 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:
Observaciones:

Coloquio de presentación del primer trabajo práctico. Éste se acompañará por una evaluación teórica sobre los temas conceptuales subyacentes.

Unidad 3 Semana 9 Tipo: TP Duración: 8 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:
Observaciones:

La unidad 3 se desarrollará durante 7 semanas

TP2 Semana 13 Tipo: PI Duración: 11 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:

Práctico integrador sobre análisis sintáctico

Observaciones:
Unidad 4 Semana 14 Tipo: T Duración: 2 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:
Observaciones:
Evaluación TP2 Semana 15 Tipo: E Duración: 3 hs
Docente/s responsable/s: Gabriela Mannarino
Descripción:

La exposición del segundo trabajo práctico estará acompañado por un conjunto de preguntas teóricas conceptuales. 

Observaciones:

Requerimientos para regularizar

Haber logrado un 40% en las evaluaciones 1 y 2. Asistencia a un 80% de la materia

Requerimientos para promover

Haber aprobado en un 70% respectivamente, de las evaluaciones  1 y 2. Asistencia de un 80%. 

Examen final

Alumnos regulares

Examen teórico

Alumnos libres

No corresponde

Evaluaciones

Fecha Tipo Modalidad Descripción
24-11-2017 Trabajo Práctico Oral/Escrita Evaluación integradora 2.

Coloquio integrador

27-09-2019 Trabajo Práctico Oral/Escrita Evaluación integradora 1.

Coloquio integrador

Información complementaria

En la presentación de los prácticos se establece que no se reutilizará código de internet. En cuanto a la bibliografía adicional a consultar por el alumno, la misma deberá ser aprobada por el docente.