Grado en Ingeniería de Sistemas de Telecomunicación

Fórmate para trabajar como Ingeniero de Telecomunicación y desarrollarás tu carrera en un sector estratégico y en constante crecimiento

Lenguajes de programación

Descripción

Las clases de la asignatura de lenguajes de programación quieren mostrar los conocimientos básicos de los lenguajes de programación en su concepción y diseño. De igual forma, des de la asignatura se busca reforzar el pensamiento crítico del alumno introduciéndolo al entorno de investigación en lenguajes de programación.

Es una asignatura donde se combinan las clases magistrales y las discusiones/debates en clase sobre los distintos temas propuestos en el temario, con prácticas grupales para asentar los conocimientos teóricos adquiridos así como la autonomía del alumno y sus capacidades de trabajo en grupo. El profesor propondrá temas (o artículos a leer) para que el alumno pueda prepararlos y debatirlos en clase con exposiciones orales.

Tipo asignatura
Optativa
Semestre
Segundo
Créditos
6.00

Profesores Titulares

Profesores Docentes

Conocimientos previos
Objetivos

Se conocen los fundamentos básicos para la definición formal de lenguajes de programación.
Se conocen las técnicas para la implementación de lenguajes de programación.

Contenidos

Módulo: Lenguajes de programación
Historia. Estadísticas
Clasificación.
Paradigmas. Esencia. Ejemplos.
Niveles. Definición. Ejemplos
Compilados/Interpretados. Definición. Ejemplos
Características/Atributos de un buen lenguaje
Componentes de un LP
Puntos de vista/Roles. Programador, Diseñador, Implementador
Casos de estudio

Módulo: Lenguajes formales
Lenguajes. Gramáticas. Maquinas.
Clasificación de Chomsky. Lenguajes regulares, libres de contexto, sensitivos al contexto y sin restricciones.
Gramáticas. Derivación. Árbol sintáctico. Lenguaje generado
Lenguajes regulares. Expresiones regulares. Gramáticas regulares
Autómatas de estados finitos. Deterministas y no deterministas. Implementación. Aplicaciones
Lenguajes libres de contexto. Gramáticas libres de contexto.
Autómatas de pila. Deterministas i no deterministas. Implementación. Aplicaciones
Semántica. Gramática de atributos. Implementación. Aplicaciones

Módulo: Compiladores e intérpretes
Compiladores e intérpretes. Estructura de un compilador. Estructura de un intérprete
Un compilador en el proceso de ejecución. Un intérprete en el proceso de ejecución
Análisis lexicográfico
Análisis sintáctico
Análisis semántico. Traducción dirigida por sintaxis
Generación de código

Metodología

Las clases de la asignatura de lenguajes de programación quieren mostrar los conocimientos básicos de los lenguajes de programación en su concepción y diseño. De igual forma, des de la asignatura se busca reforzar el pensamiento crítico del alumno introduciéndolo al entorno de investigación en lenguajes de programación.

Es una asignatura donde se combinan las clases magistrales y las discusiones/debates en clase sobre los distintos temas propuestos en el temario, con prácticas grupales para asentar los conocimientos teóricos adquiridos así como la autonomía del alumno y sus capacidades de trabajo en grupo. El profesor propondrá temas (o artículos a leer) para que el alumno pueda prepararlos y debatirlos en clase con exposiciones orales.

Evaluación

- La asignatura tiene la duración de un semestre y consta de dos partes diferenciadas: la parte de conocimientos y la práctica de la asignatura. La evaluación de los conocimientos y de la práctica será independiente. Para aprobar la asignatura será necesario aprobar independientemente los conocimientos y la práctica. La nota final de la asignatura está representada en la siguiente fórmula:

Nota_Final = 30% · Conocimientos + 70% · Práctica

- La nota de conocimientos se evaluará a partir de las notas (ponderadas) relacionadas con las actividades propuestas en clase y su participación. Todas las actividades propuestas deben entregarse obligatoriamente.

- Si la nota de conocimientos (Conocimientos) no es >=5 entonces el estudiante tendrá la oportunidad de presentarse a un Examen Final que valdrá el 30% de la nota.

- Habrá la posibilidad de realizar un examen final de recuperación (convocatoria extraordinaria) para aquellos alumnos que no hayan aprobado la asignatura en la convocatoria ordinaria (debido a la nota de conocimientos y/o de práctica). En todo caso, la práctica se debe haber presentado y aprobado.

La práctica de la asignatura es muy importante dentro de los contenidos de la asignatura. Los motivos son diversos: la aplicación práctica de los conceptos teóricos explicados en las clases magistrales, la capacidad que debe demostrar el alumno en el diseño e implementación de programas de cierto volumen en cuanto a líneas de código y funcionalidades, la complementación aplicada de ciertos contenidos conceptuales, etc. Es por ello que la práctica de la asignatura demanda un esfuerzo importante en cuanto a dedicación del alumno.

1. La práctica se realizará en grupos de 4 o 5 personas.
2. El grupo deberá autogestionarse para la realización de la tarea solicitada.
3. El lenguaje de programación utilizado en la práctica será el lenguaje Java.
4. Cada grupo tendrá cada semana una reunión (máximo 15 minutos) con el profesor donde se demostrará el progreso de la práctica y se explicarán los planes para la semana siguiente.
5. Para la práctica habrá 3 puntos de evaluación del progreso (milestones).
6. Para que una práctica sea aceptada y opte a ser calificada, deben cumplirse 6 requisitos:
a. Debe haber sido presentada el día correspondiente del milestone.
b. Debe estar debidamente estructurada y tener la correspondiente documentación interna.
c. Debe tener una memoria correcta.
d. Debe funcionar correctamente.
e. El grupo debe hacer una presentación colectiva de su práctica ante un tribunal.
f. El grupo que presenta la práctica debe superar la entrevista individual con el profesor donde deben demostrar un conocimiento profundo de la práctica en su totalidad.
7. En caso de copia, implica suspender la práctica y la pérdida de convocatoria en el siguiente examen final para los dos grupos implicados (tanto la fuente como la copia), teniendo una calificación de 0 en el acta de la asignatura.
8. Si se suspende la parte práctica en convocatoria ordinaria (o no se presenta la práctica), se deberá entregar en convocatoria extraordinaria.

Criterios evaluación
Bibliografía básica

Aho, Alfred. Compilers: Principles, Techniques, and Tools (2006)
Mozota, M., Teoria de la compilació: Anàlisi lèxic i sintàctic, LaSalleOnline Enginyers, 2009
Mozota, M., Teoria de la compilació: Anàlisi semàntica i generació de codi, LaSalleOnline Enginyers, 2009
Larus, James R.. Assemblers, Linkers, and the SPIM Simulator. Appendix A
Pratt, Terrence W. and Zelkowitz, Marvin V. Programming Languages: Design and Implementation (Fourth edition). Prentice-Hall. 2001.

Material complementario