Procesadores de Lenguajes
(Curso Académico 2018 - 2019)
Imprimir Mostrar Todo

1. Datos descriptivos de la asignatura
  • Código: 139263121
  • Centro: Escuela Superior de Ingeniería y Tecnología
  • Lugar de impartición: Escuela Superior de Ingeniería y Tecnología
  • Titulación: Grado en Ingeniería Informática
  • Plan de Estudios: 2010 (publicado en 21-03-2011)
  • Rama de conocimiento: Ingeniería y Arquitectura
  • Itinerario/Intensificación: Computación
  • Departamento/s:
  • Área/s de conocimiento:
    • Lenguajes y Sistemas Informáticos
  • Curso: 3
  • Carácter: Obligatoria
  • Duración: Segundo cuatrimestre
  • Créditos ECTS: 6,0
  • Modalidad de impartición: Presencial
  • Horario: Ver horario
  • Dirección web de la asignatura: Ver web de la asignatura
  • Idioma: Español e Inglés
2. Requisitos para cursar la asignatura
No existen requisitos para cursar la asignatura
3. Profesorado que imparte la asignatura

Profesor/a Coordinador/a: CASIANO RODRIGUEZ LEON

Grupo: Todos
Área de conocimiento: Lenguajes y Sistemas Informáticos
Tutorías Primer cuatrimestre:
HorarioLugar
1ºC: Lunes y Martes de 9 a 12. Para evitar aglomeraciones y esperas innecesarias en las tutorias presenciales se recomienda solicitar cita previa. El horario de tutorías es orientativo y puede sufrir variaciones: Consulte el Aula Virtual para confirmar y encontrar los enlaces a las Tutorias virtuales on-line Despacho 96. 4ª Planta del Edificio de Física/Matemáticas. Campus Universitario Anchieta. C/Astrofísico Francisco Sánchez s/n 38271
Tutorías Segundo cuatrimestre:
HorarioLugar
2ºC: Lunes, Miércoles de 11:30 a 14. Martes de 10:30 a 11:30. Para evitar aglomeraciones y esperas innecesarias en las tutorias presenciales se recomienda solicitar cita previa. El horario de tutorías es orientativo y puede sufrir variaciones: Consulte el Aula Virtual para confirmar y encontrar los enlaces a las Tutorias virtuales on-line Despacho 96. 4ª Planta del Edificio de Física/Matemáticas. Campus Universitario Anchieta. C/Astrofísico Francisco Sánchez s/n 38271
Teléfono (despacho/tutoría): 922 31 81 87
Correo electrónico: crguezl@ull.es
Web docente: Ver web del docente
4. Contextualización de la asignatura en el plan de estudio
  • Bloque formativo al que pertenece la asignatura: Itinerario 1: Computación
  • Perfil profesional: Ingeniero Técnico en Informática
5. Competencias

Tecnología Específica / Itinerario: Computación

  • C39 - 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.
  • C40 - 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.

Competencias Generales

  • CG6 - Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes de acuerdo con los conocimientos adquiridos según lo establecido en el apartado 5 de este anexo.
  • CG9 - Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.

Transversales

  • T1 - Capacidad de actuar autónomamente.
  • T2 - Tener iniciativa y ser resolutivo.
  • T6 - Capacidad de comunicación efectiva en inglés.
  • T7 - Capacidad de comunicación efectiva (en expresión y comprensión) oral y escrita, con especial énfasis en la redacción de documentación técnica.
  • T8 - Capacidad de comunicación efectiva con el usuario en un lenguaje no técnico y de comprender sus necesidades.
  • T9 - Capacidad para argumentar y justificar lógicamente las decisiones tomadas y las opiniones.
  • T10 - Capacidad de integrarse rápidamente y trabajar eficientemente en equipos unidisciplinares y de colaborar en un entorno multidisciplinar.
  • T12 - Capacidad de relación interpersonal.
  • T14 - Poseer las habilidades de aprendizaje necesarias para emprender estudios posteriores o mejorar su formación con un cierto grado de autonomía.
  • T16 - Capacidad de planificación y organización del trabajo personal.
  • T20 - Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
  • T21 - Capacidad para el razonamiento crítico, lógico y matemático.
  • T22 - Capacidad para resolver problemas dentro de su área de estudio.
  • T23 - Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales.
6. Contenidos de la asignatura

Contenidos teóricos y prácticos de la asignatura

- Profesor/a: Casiano Rodríguez León
- Temas (epígrafes):


Tema 1: Introducción.
Tema 2: Análisis Sintáctico.
Tema 3: Análisis Semántico y Generación de Código.
 

Actividades a desarrollar en otro idioma

- Profesor: Casiano Rodríguez León
- Temas (epígrafes): En todos los temas la bibliografía, documentación de las herramientas y textos de ayuda están en Inglés.
- La mayoría de los vídeos que se usan como recurso están en inglés.
- Un porcentaje de los apuntes proveídos por el profesor están también en dicho idioma.
- Algunos ejercicios se hacen en inglés. La evaluación de estas actividades constituyen el 0,5% de la calificación final
7. Metodología y volumen de trabajo del estudiante

Descripción

La mayor parte del trabajo se va en la adquisición de los fundamentos de los procesadores de lenguajes, las prácticas de desarrollo y la resolución de ejercicios.

Para cada tema se hace una exposición teórica que hace hincapié en los contenidos mas relevantes. Nos apoyamos en material multimedia y en demostraciones in situ. Tras cada clase el alumnado complementa la información aportada mediante la elaboración de su manual de estudio y ejercicios prácticos que el estudiante tendrá que resolver de forma autónoma. Los ejercicios que presentan mayor dificultad son resueltos en las clases de problemas y prácticas.

Se realizarán micro-exámenes a lo largo del curso que incluyen cuestiones de desarrollo de conceptos y ejercicios prácticos. Antes de las pruebas de evaluación continua se invierte cierto tiempo en la preparación mediante cuestionarios similares a los del micro-examen.

Se llevarán a cabo micro-proyectos/prácticas de laboratorio en grupo cuya evaluación se hace mediante un taller y una presentación oral.

Se desarrolla un trabajo fin de asignatura (TFA)  consistente en el diseño e implementación de un lenguaje (en la mayor parte de los casos, un lenguaje de dominio específico) que se presenta en un taller/workshop al final del curso.

La mayoría de los micro-proyectos así como el proyecto suponen el desarrollo en equipo de una aplicación usando diferentes metodologías, técnicas y herramientas como control de versiones, gestión de incidencias, pruebas unitarias, desarrollo dirigido por pruebas, integración contínua, herramientas y servicios de despliegue, etc.

El seguimiento continuo del alumnado se realiza mediante el Aula Virtual de la asignatura y las herramientas de GitHub, las herramientas de Google así como otras herramientas en la nube (Véase la sección recursos).

Las actividades en inglés cubren los 0,5 créditos que debe tener como asignatura de itinerario.
 

Actividades formativas en créditos ECTS, su metodología de enseñanza-aprendizaje y su relación con las competencias que debe adquirir el estudiante

Actividades formativas Horas presenciales Horas de trabajo autónomo Total horas Relación con competencias
Clases teóricas 22,00 0,00 22,0 [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
Clases prácticas (aula / sala de demostraciones / prácticas laboratorio) 22,00 0,00 22,0 [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
Realización de seminarios u otras actividades complementarias 3,00 6,00 9,0 [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Realización de trabajos (individual/grupal) 0,00 15,00 15,0 [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
Estudio/preparación de clases teóricas 0,00 10,00 10,0 [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Preparación de exámenes 0,00 20,00 20,0 [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
Realización de exámenes 6,00 0,00 6,0 [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
Asistencia a tutorías 7,00 0,00 7,0 [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
Estudio autónomo individual o en grupo 0,00 39,00 39,0 [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Total horas 60.0 90.0 150.0
Total ECTS 6,00
8. Bibliografía / Recursos

Bibliografía básica

- Rodríguez León, Casiano. Apuntes de la Asignatura Procesadores de Lenguajes. http://crguezl.github.io/pl-html/javascriptexamples.html
- Aho, A. V.; Lam, M.; Sethi, R.; Ullman, J. D. Compiladores: Principios, Técnicas y Herramientas. Addison-Wesley. 
- Rodríguez León, Casiano. Apuntes en GitBook. https://casianorodriguezleon.gitbooks.io
- Rodríguez León, Casiano. Análisis Léxico y Sintáctico. http://nereida.deioc.ull.es/~pl/perlexamples/ y https://campusvirtual.ull.es/ocw/course/view.php?id=45.
- Marijn Haverbeke. Eloquent JavaScript. A Modern Introduction to Programming. http://eloquentjavascript.net/

Bibliografía complementaria

- Pointer, R Packrattle: parser-combinator library (using GLL) for javascript. GitHub
- David Majda. PegJS. Parser Generator for JavaScript. http://pegjs.majda.cz/
- Zach Carter. Jison. http://zaach.github.io/jison/ .
- Ecma 6: Libros y Recursos: https://github.com/ericdouglas/ES6-Learning
- Nathan Whitehead. NathansUniversity. PL101. Create your own language. http://nathansuniversity.com/

Otros recursos

* Campus Virtual: www.campusvirtual.ull.es
* GitHub: https://github.com
* GitHub classroom: https://classroom.github.com
* GitBook: https://casianorodriguezleon.gitbooks.io
* Servicio iaas de la ULL: https://iaas.ull.es
* Servicio ULL CloudIDE: http://cloudide.iaas.ull.es/
* Travis: travis.ci.org
* Heroku: https://www.heroku.com/
* Cloud 9 IDE: https://c9.io/
* Trello: https://trello.com/
* Pivotal Tracker: https://www.pivotaltracker.com/
 
9. Sistema de evaluación y calificación

Descripción

La Evaluación de la asignatura se rige por el Reglamento de Evaluación y Calificación de la Universidad de La Laguna (BOC de 19 de enero de 2016), o el que la Universidad tenga vigente, además de por lo establecido en la Memoria de Verificación inicial o posteriores modificaciones.

* Para participar en la evaluación continua, es obligatorio hacer uso de los recursos proveídos (apuntes, vídeos, repositorios, foros, wikis, etc.) y realizar los ejercicios y actividades señaladas como obligatorios. Se realizará control de asistencia a las clases.

* Se realizarán micro-exámenes a lo largo del curso que incluyen cuestiones de desarrollo de conceptos y ejercicios prácticos. Una parte de estos ejercicios está destinada a autentificar los conocimientos que se han adquirido durante la elaboración de los proyectos mencionados en los otros apartados. Antes de las pruebas de evaluación continua se invierte cierto tiempo en la preparación mediante cuestionarios. Los estudiantes deberán superar los micro-exámenes para aprobar la asignatura con una nota mínima de 5 (sobre 10) en cada uno de ellos.

* Estos exámenes se realizan en inglés y en ellos se valora la capacidad lingüística en este idioma.

* Se llevarán a cabo micro-proyectos/prácticas  cuya evaluación se hará mediante un taller/workshop. Los estudiantes deberán superar los micro-proyectos para aprobar la asignatura con una nota mínima de 5.

* Se desarrolla un Trabajo Fin de Asignatura (TFA) consistente en el diseño e implementación de un lenguaje (en algunos casos, un lenguaje de dominio específico, Domain Specific Language o DSL) que se presenta al final del curso. El proyecto se comienza tan pronto como el estudiante tiene los conocimientos mínimos para diseñarlo e implantarlo. Es necesario superar el proyecto para aprobar la asignatura con una nota mínima de 5.

* Superadas las partes (micro-exámenes, prácticas individuales y en pareja y proyecto colaborativo), la nota es la media ponderada de las partes (micro-exámenes, micro-proyectos, proyecto) de acuerdo a las ponderaciones establecidas en la tabla Estrategia Evaluativa.

* Si un estudiante no supera una de las partes deberá ir al examen de la primera convocatoria en el que se examinará de las partes no superadas. Puede también presentarse a las partes superadas si desea subir nota.

* Los estudiantes que no participen en la evaluación continua se evalúan a través de los exámenes oficiales y convocatorias fijados por la Universidad de La Laguna.
Estos exámenes constan de una parte teórica y una parte práctica. Es necesario aprobar las dos partes para superar la asignatura. La nota final es la media ponderada de ambas.



 

Estrategia Evaluativa

Tipo de prueba Competencias Criterios Ponderación
Pruebas objetivas [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
  • Adecuación a lo solicitado
  • Concreción en la redacción
  •  Nivel de conocimientos adquiridos
  •  Nivel de aplicabilidad
  •  Nivel de inglés
50 %
Trabajos y proyectos [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
  • Adecuación a lo solicitado
  • Concreción en la redacción
  • Nivel de conocimientos adquiridos
  • Nivel de aplicabilidad
  • Nivel de Inglés
25 %
Informes memorias de prácticas [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
  • Adecuación a lo solicitado
  • Concreción en la redacción
  • Nivel de conocimientos adquiridos
  • Nivel de aplicabilidad
  • Nivel de Inglés
10 %
Valoración de las actividades prácticas en el laboratorio [T23], [T22], [T21], [T20], [T16], [T14], [T12], [T10], [T9], [T8], [T7], [T6], [T2], [T1], [CG9], [CG6], [C40], [C39]
  • Adecuación a lo solicitado
  • Concreción en la redacción
  • Nivel de conocimientos adquiridos
  • Nivel de aplicabilidad
  • Nivel de Inglés
15 %
10. Resultados de Aprendizaje
* Diseñar y procesar lenguajes de Dominio Específico y de Propósito General utilizando las tecnologías de procesamiento de lenguajes: análisis léxico, análisis sintáctico, análisis semántico y generación e interpretación de código.
* Utilizar metodologías ágiles para los proyectos y hacer uso de las herramientas adecuadas: gestión del proyecto, control de versiones, pruebas, integración y despliegue en sistemas locales o en la nube.
* Recopilar y generar información técnica sobre los aspectos clave del desarrollo de un traductor para realizar una síntesis por escrito y una presentación oral del proyecto.
 
11. Cronograma / calendario de la asignatura

Descripción

La estructura del curso es uniforme: En la mayoría de las semanas se dispone en 4 horas de trabajo presencial que se corresponden con 6 horas de trabajo autónomo del estudiante. Aproximadamente cada dos semanas se entrega un trabajo/práctica de programación que se evalúa mediante un taller Moodle. Se realiza una presentación/defensa del mismo. En ocasiones los estudiantes participan en el proceso de evaluación, haciendo en una fase previa de revisores de los trabajos de sus compañeros. Parte del material de trabajo para la virtualización se puede encontrar en la red (véanse las referencias).

La distribución de los temas por semana es orientativo, puede sufrir cambios según las necesidades de organización docente.

 

Segundo cuatrimestre

Semana Temas Actividades de enseñanza aprendizaje Horas de trabajo presencial Horas de trabajo autónomo Total
Semana 1: 1 Estudio y explicación de clases teóricas. Problemas. Uso de herramientas colaborativas.
Consultas. Foros. Cuestionario on-line.
Diseño y definición de proyectos.
4.00 4.00 8.0
Semana 2: 1 Estudio y explicación de clases teóricas. Problemas. Uso de herramientas colaborativas.
Consultas. Foros. Cuestionario on-line.
Diseño y definición de proyectos.
3.00 5.00 8.0
Semana 3: 1 Estudio y explicación de clases teóricas. Práctica entregable. Taller. Uso de herramientas colaborativas 4.00 6.00 10.0
Semana 4: 1 Estudio y explicación de clases teóricas. Wiki. Foros. Uso de herramientas colaborativas 4.00 6.00 10.0
Semana 5: 1 Estudio y explicación de clases teóricas. Práctica. Taller. Uso de herramientas colaborativas 4.00 8.00 12.0
Semana 6: 1 Estudio y explicación de clases teóricas. Repasar. Micro-exámen. Uso de herramientas colaborativas 4.00 7.50 11.5
Semana 7: 2 Estudio y explicación de clases teóricas. Uso de herramientas colaborativas 4.00 6.50 10.5
Semana 8: 2 Estudio y explicación de clases teóricas. Uso de herramientas colaborativas. Cuestionarios. 3.00 3.00 6.0
Semana 9: 2, 3 Estudio y explicación de clases teóricas. Proyecto. Uso de herramientas colaborativas 4.00 8.00 12.0
Semana 10: 2, 3 Estudio y explicación de clases teóricas. Uso de herramientas colaborativas 4.00 8.00 12.0
Semana 11: 2,3 Estudio y explicación de clases teóricas. Repasar. Micro-examen sobre lo visto 4.00 6.00 10.0
Semana 12: 2,3 Estudio y explicación de clases teóricas. Uso de herramientas colaborativas. Cuestionarios. Foros. 4.00 4.00 8.0
Semana 13: 2,3 Estudio y explicación de clases teóricas. Uso de herramientas colaborativas. Foros. 4.00 6.00 10.0
Semana 14: 2,3 Estudio y explicación de clases teóricas. Taller. Uso de herramientas colaborativas 4.00 8.00 12.0
Semana 15: Repaso Estudio y explicación de clases teóricas. Repasar. Microexamen. Entrega y presentación del proyecto. Taller. 3.00 1.00 4.0
Semana 16 a 18: Evaluación Evaluación y trabajo autónomo del estudiante para la preparación de la evaluación. 3.00 3.00 6.0
Total 60.00 90.00 150.0
Fecha de última modificación: 04-07-2018
Fecha de aprobación: 06-07-2018