DATOS IDENTIFICATIVOS 2023_24
Asignatura (*) LENGUAJES FORMALES Código 17234110
Titulación
Grado en Ingeniería Informática (2010)
Ciclo
Descriptores Cr.totales Tipo Curso Periodo
6 Obligatoria Tercer 2Q
Lengua de impartición
Castellà
Departamento Ingeniería Informática y Matemáticas
Coordinador/a
TRUJILLO RASUA, ROLANDO
Correo-e rolando.trujillo@urv.cat
silvia.buira@urv.cat
Profesores/as
TRUJILLO RASUA, ROLANDO
BUIRA CLUA, SÍLVIA
Web http://moodle.urv.cat/
Descripción general e información relevante <p>DESCRIPCIÓN GENERAL DE LA ASIGNATURA: Los lenguajes formales son un componente fundamental del campo de la informática. En este curso introduciremos los tipos de lenguajes formales y practicaremos técnicas y herramientas para procesarlos. Esto servirá de base para introducirnos en los fundamentos de la calculabilidad y de la complejidad, así como de los procesadores de lenguajes formales.</p>

Competencias
Tipo A Código Competencias Específicas
 CM6 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.
 CP1 Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática.
 CP2 Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes.
 CP3 Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir su a la resolución y recomendar, desarrollar e implementar la que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
Tipo B Código Competencias Transversales
 CT5 Comunicar información de forma clara y precisa a audiencias diversas
Tipo C Código Competencias Nucleares

Resultados de aprendizaje
Tipo A Código Resultados de aprendizaje
 CM6 Comprende los conceptos básicos de calculabildad y complejidad.
 CP1 Conoce los principales tipos de lenguajes formales.
Sabe construir expresiones regulares, gramáticas y automatas para la descripción, generación y reconocimiento de lenguajes formales.
Comprende los conceptos básicos de calculabilidad i complejidad.
Conoce la estructura básica de los procesadores de lenguajes.
Sabe utilizar herramintas para generar analizadores léxicos y sintácticos.
 CP2 Conoce los principales tipos de lenguajes formales.
Sabe construir expresiones regulares, gramáticas y automatas para la descripción, generación y reconocimiento de lenguajes formales.
Conoce la estructura básica de los processadores de lenguajes.
Sabe utilizar herramientas para generar analizadores léxicos y sintácticos.
 CP3 Comprende los conceptos básicos de calculabilidad y complejidad.
Tipo B Código Resultados de aprendizaje
 CT5 Produce un texto de calidad, sin errores gramaticales y ortográficos, con una presentación formal cuidadosa y un uso adecuado y coherente de las convenciones formales y bibliográficas
Construye un texto estructurado, claro, cohesionado, rico y de extensión adecuada.
Elabora un texto adecuado a la situación comunicativa, consistente y persuasivo.
Tipo C Código Resultados de aprendizaje

Contenidos
tema Subtema
1. Introducción 1.1. Los lenguajes de programación como lenguajes formales.
1.2. Nociones básicas de lenguajes formales: definición, descripción, y reconocimiento de lenguajes formales.
1.3. Estructura básica de un compilador.
2. Lenguajes regulares 2.1. Expresiones regulares.
2.2. Autómatas finitos: deterministas, no deterministas y con lambda-movimientos.
2.3. Equivalencia entre expresiones regulares y autómatas finitos.
2.4. Generadores de analizadores léxicos: flex.
3. Lenguajes independientes del contexto 3.1. Gramáticas independientes del contexto.
3.2. Autómatas de pila.
3.3. Equivalencia entre gramáticas independientes del contexto y autómatas de pila.
3.4. Generadores de analizadores sintácticos: bison.
4. Otros lenguajes formales 4.1. Clasificación de los lenguajes formales: jerarquía de Chomsky.
4.2. Máquinas de Turing.
4.3. Lenguajes recursivos y lenguajes recursivamente innumerables.
5. Calculabilidad y complejidad 5.1. Tesis de Church-Turing.
5.2. Máquina de Turing universal.
5.3. Problemas indecidibles: problema de parada
5.4. Introducción a la teoría de la complejidad.
5.5. Los problemas P, NP y NP-completos.
6. Procesadores de lenguajes formales 6.1. Tabla de símbolos.
6.2. Análisis léxico.
6.3. Análisis sintáctico.
6.4. Análisis semántico.
6.5. Generación de código intermedio.
6.6. Generación de código objeto.

Planificación
Metodologías  ::  Pruebas
  Competencias (*) Horas en clase
Horas fuera de clase
(**) Horas totales
Actividades introductorias
1 0 1
Sesión magistral
CP1
CP2
11 24 35
Resolución de problemas/ejercicios en el aula ordinaria
CP1
CP2
13 22.5 35.5
Practicas a través de TIC en aulas informáticas
CT5
30 22.5 52.5
Atención personalizada
CP1
CP2
CT5
1 0 1
 
Pruebas mixtas
CM6
CP1
CP2
CP3
3 6 9
Pruebas prácticas
CT5
1 15 16
 
(*) En el caso de docencia no presencial, serán las horas de trabajo con soporte virtual del profesor.
(**) Los datos que aparecen en la tabla de planificación son de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías
  descripción
Actividades introductorias Presentación de la asignatura durante la primera hora del curso.
Sesión magistral Clases teóricas introductorias de la materia del curso.
Resolución de problemas/ejercicios en el aula ordinaria Para ejercitar las diferentes metodologías introducidas en las sesiones magistrales.
Practicas a través de TIC en aulas informáticas Aplicar, a nivel práctico, la teoría. Ejercicios prácticos a través de las TIC.
Atención personalizada Seis horas de consulta semanales a disposición del alumno.

Atención personalizada
descripción

Durante las 6 horas semanales de atención personalizada, el alumno podrá ir al despacho del profesor con el fin de aclarar dudas, reforzar conceptos y técnicas, y pedir supervisión en la resolución de ejercicios.


Evaluación
Metodologías Competencias descripción Peso        
Pruebas mixtas
CM6
CP1
CP2
CP3
Tres pruebas individuales parciales mediante preguntas cortas con solución tipo test y/o problemas de desarrollo sobre los contenidos proporcionados hasta el momento. 70%
Pruebas prácticas
CT5
Los trabajos realizados en el laboratorio y completados en casa son presentados en forma documental 30%
Otros   Entrega de ejercicios realizados individualmente o en grupo y solicitados periódicamente 10%
 
Otros comentarios y segunda convocatoria

La segunda convocatoria consistirá en un examen escrito evaluando el total de los contenidos de la asignatura.


Fuentes de información

Básica J. Ullman, J. John and R. Motwani, Introduccion a la teoria de Automatas, lenguajes y computación, Addison Wesley, 2002
D. Riaño, Models abstractes de càlcul, Tarragona : Universitat Rovira i Virgili, Servei Lingüístic, 1998

Complementaria J. Levine, Flex & Bison: Text Processing Tools, O'Reilly Media, 2009

Recomendaciones

Asignaturas que continúan el temario
COMPILADORES/17234127
COMPILADORES/17234214


Asignaturas que se recomienda haber cursado previamente
PROGRAMACIÓN/17234114
(*)La Guía docente es el documento donde se visualiza la propuesta académica de la URV. Este documento es público y no es modificable, excepto en casos excepcionales revisados por el órgano competente o debidamente revisado de acuerdo la normativa vigente.