Sesión nº 10 del 29 de abril de 2018 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
Hemos estado viendo el paradigma de programación concurrente usando para ello Pascal FC. Es este un lenguaje basado en Pascal por lo que comparte su sintaxis y reglas pero donde se introduce el concepto de proceso donde más de un proceso pueden estar en ejecución simultáneamente. Eso puede tener efectos no deseados de que se mezclen la salida de varios procesos por lo que se hace necesaria la sincronización. El mecanismo para conseguir la sincronización se lleva a cabo mediante semáforos, tipo de datos al que el acceso está restringido a un solo proceso y con operaciones sencillas como wait y signal permite la ejecución concurrente pero controlando el orden de la ejecución. Sobre este paradigma de programación, los ejercicios de examen planteados en años anteriores han sido siempre de corte teórico a excepción del ejercicio de septiembre del curso pasado.
Hemos visto el paradigma de programación basada en objetos usando Java. Hemos analizado conceptos que seguro que todo alumno debe conocer de otras asignaturas de programación vistas en el grado tales como clases, objetos, atributos, métodos, estado, métodos de tipo get y set, encapsulación, polimorfismo, clases y métodos abstractos entre otros. Estos conceptos han sido ampliamente aclarados usando los ejemplos del libro usando para su ejecución el entorno de desarrollo Eclipse. En exámenes de años anteriores han aparecido preguntas de corte teórico y algún ejercicio práctico por lo que es importante practicar lo más posible.
Sesión nº9 del 22 de abril de 2019 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
Se veía el paradigma de programación funcional mediante el lenguaje de programación Haskell. Es un lenguaje que simplemente permite la definición de funciones para el cálculo de tareas más o menos sencillas. Para ejecutar los programas he usado Hugs que es un intérprete bytecode para el lenguaje funcional Haskell. Ofrece compilación rápida y una velocidad de ejecución aceptable por si queréis usarlo para practica con Haskell. A la programación lógica junto a la programación funcional se le denomina conjuntamente programación declarativa. Hemos visto ejemplos suficientes de trabajo con este tipo de programación en el que conceptos como la recursividad final y no final así como el paso de una función a otra función son elementos clave.
Finalmente hemos visto el paradigma de programación lógico mediante el lenguaje de programación Prolog. Es un lenguaje basado en una base de conocimiento (definida a través de hechos) que simplemente hacen una serie de afirmaciones, por defecto verdaderas. A partir de esta base se pueden definir reglas que tendrá un resultado lógico en función de las expresiones que dentro de ella se evalúen. A destacar que este lenguaje usa la coma para el “y lógico”, el punto y coma para el “o lógico”, not para la negación y el final de las sentencias de hace con un punto. A la programación lógica junto a la programación funcional se le denomina conjuntamente programación declarativa. Hemos visto ejemplos suficientes de trabajo con este tipo de programación en el que conceptos como la recursividad se introduce también. En años anteriores se han pedido ejercicios hechos con prolog por lo que interesa que hagáis y ejecutéis el mayor número de programas posibles.
Sesión nº8 del 8 de abril de 2019 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
En dicha tutoría hemos hecho una introducción a los lenguajes script como lenguajes de programación que permiten interactuar de manera muy simple con otras aplicaciones y programas. Vimos que los dominios de aplicación de los lenguajes script son muchos y que debéis de conocerlos como mínimo a nivel teórico pues es algo que han solido preguntar en exámenes de años anteriores.
Hemos visto los scripts de Linux que permiten automatizar tareas dentro del sistema operativo (algo parecido a los ficheros por lotes de ms-dos, es decir, los famosos archivos .bat) Para poder ejercitarse con estos scripts es muy recomendable tener un sistema operativo linux y como ya aconsejara no es necesario instalarlo pues podemos
Usar un dvd-live/ usb-live para arrancar nuestro ordenador con él y tener el sistema operativo en modo live en nuestro ordenador.
Crear una máquina virtual con herramientas de virtualización como VirtualBox o VMWare e instalar una distribución linux. Para ambas situaciones recomiendo la distribución Ubuntu.
Aunque no lo he utilizado, me consta que existe una aplicación para windows llamada Cygwin, que al parecer permite también la ejecución de scripts de linux en windows.
Hemos estado viendo el lenguaje script Perl, que siendo este un lenguaje de script multidisciplinar tiene un uso muy interesante para procesar textos. Dentro de los ejemplos del material proporcionado en clase, un uso muy habitual es el uso de las expresiones regulares que permiten la búsqueda/sustitución de texto dentro de archivos o simplemente dentro de la información pasada a través del terminal.
Otro uso de interés de Perl es usar perl como lenguaje script dentro de las páginas web utilizando los cgi. Los cgi son un mecanismo que surgió para intentar dotar de un mecanismo para incorporar en las páginas web el resultado de la ejecución de algún programa de tipo script (perl, scripts de Linux) o no (C, Pascal, Java…)
También mencionamos como dentro del tema 3, Paradigma de los lenguajes de programación se estudia otro lenguaje script como Ruby, lenguaje dinámico.
Sesión nº7 del 1 de abril de 2019 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
Hemos realizado ejercicios de examen del curso pasado relativos al análisis sintáctico descendente para trabajar sobre la ambigüedad en las gramáticas, las gramáticas LL(1) como ejemplo de gramáticas no ambiguas, el cálculo de los conjuntos de PRIMEROS, SIGUIENTES así como los CONJUNTOS DE PREDICCIÓN que permite garantizar si una gramática es LL(1). Insisto en que debéis controlar lo más posible este tema pues es muy habitual que pongan ejercicios en todas las convocatorias de examen sobre este apartado.