abril 19, lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para...
TRANSCRIPT
![Page 1: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/1.jpg)
Abril 19, Lunes
Esp. Ing. José María Sola, Profesor 60V1.0.0-beta.1, 2021-04-20
![Page 2: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/2.jpg)
Agenda para esta clase� Sobre la Cátedra y la Asignatura� Plataforma del Curso� Intervalo� Otras versiones de hello.c� Introducción a Léxico, Sintaxis, Semántica, y Pragmática
Esp. Ing. José María Sola, Profesor 61
![Page 3: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/3.jpg)
Esp. Ing. José María Sola, Profesor 62
![Page 4: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/4.jpg)
Análisis del Nombre de la Asignatura –Sintaxis y Semántica de los Lenguajes (de Programación)� Lenguaje: medio de comunicación
� Lenguajes Naturales versus Lenguajes Formales� Lenguaje de programación: medio de comunicación para definir
comportamiento de un Sistema Software� Sintaxis: Forma, Estructura
� Reglas de forma� ¿Cómo se escribe?
� Semántica: Significado, Sentido� Reglas de significado� ¿Qué significa?� Comportamiento del sistema en función de lo escrito
� ¿Léxico?� Componentes de las estructuras sintácticas
� ¿Pragmática?� “Bugs”, “Gaps”, Verificación, Validación, Comportamiento esperado.
Esp. Ing. José María Sola, Profesor 63
![Page 5: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/5.jpg)
Generalidades de SSLOrdenanza 1150/2007� Departamento Ingeniería en Sistemas de Información� Bloque Tecnologías Básicas� Área Programación� Nivel 2� Horas/semana 4� Horas/Año 128� Correlatividades
� Anteriores� Algoritmos y Estructuras de Datos (1ro)� Matemática Discreta (1ro)
� Siguientes� Debe estar regularizada para cursar
� Gestión de Datos (3ro)� Debe estar aprobada para cursar
� Ingeniería en Software (4to)
Esp. Ing. José María Sola, Profesor 64
![Page 6: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/6.jpg)
Objetivos Contenidos Mínimos
� Conocer los elementos propios de la sintaxis y semántica de los lenguajes de programación
� Conocer los lenguajes formales y autómatas
� Comprender conceptos y procedimientos de las gramáticas libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación
� Utilizar distintos tipos de autómatas y distintos tipos de notaciones gramaticales
� Comprender el procesamiento de lenguajes y en particular, el proceso de compilación
� Gramática y Lenguajes Formales
� Jerarquía de Chomsky� Autómatas Finitos� Expresiones Regulares y su
aplicación al Análisis Léxico� Gramáticas Independientes del
Contexto� Autómatas PushDown y su
Aplicación al Análisis Sintáctico� Otros Tipos de Analizadores
Sintácticos� Máquinas Turing� Introducción a las Semánticas.
Programa Sintético de SSLOrdenanza 1150/2007
Esp. Ing. José María Sola, Profesor 65
![Page 7: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/7.jpg)
Los Temas de SSLLéxico, Sintaxis,Semántica yPragmática• Definición• Conceptos• Ejemplos
Compilador• Proceso• Construcción
Lenguajes Formales• Modelos• Lenguajes de Programación
C• Definición• Aplicación
Esp. Ing. José María Sola, Profesor 66
SSL
![Page 8: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/8.jpg)
La Cátedra� Profesores Adjuntos
� Dr. Mgs. Oscar Ricardo Bruno (co-coordinador)� Esp. Ing. José María Sola (co-coordinador)� Ing. Santiago Ferreiros� Ing. Pablo Méndez� Ing. Silvina Ortega
Profesora Adjunta (Carrera Académica) � Mgs. Ing. Gabriela Sanromán� Lic. Eduardo Zúñiga� Ing. Roxana Leituz
� Anteriores Profesores� C.C. Jorge Muchnik
Profesor Titular (Ordinario) � C.C. Marta Ferrari
Profesora Asociada (Carrera Académica) � C.C. Ana María Díaz Bott
Profesora Adjunta (Carrera Académica) � C.C. Adriana Adamoli
Profesora Adjunta Interina (Interino)
Esp. Ing. José María Sola, Profesor 67
![Page 9: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/9.jpg)
Herramientas para facilitar la cursada
Esp. Ing. José María Sola, Profesor 68
![Page 10: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/10.jpg)
Plataforma del Curso� Tipo de Clases
� Sincrónica, por videoconferencias, con participación y conversaciones sobre los temas
� Herramientas� Aulas Virtuales:
Centralizador de actividades, anuncios, y consultas� josemariasola.wordpress.com:
Homepage de la asignatura y del curso, material y actividades asincrónicas
� Google Calendar: Caledario de clases, actividades y deadlines� Google Meet: Clases sincrónicas a distancia� YouTube: Quizás algún video� GitHub: Resoluciones Individuales y del cada equipo
Esp. Ing. José María Sola, Profesor 69
![Page 11: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/11.jpg)
Bibliografía� Bibliografía obligatoria
� [K&R1988]� Biblioteca, Fotocopiadora, y Librerías
� [MUCH2010], tres volúmenes� Homepage.
� [MUCH2012], tres volúmenes� Biblioteca, y Librería del Centro de Estudiantes
� Otros artículos a lo largo del curso, publicados en http://josemariasola.wordpress.com
� Prioritarios para primera parte del curso� Capítulo #1 de[K&R1988]� Volumen #1 de [MUCH201x].
Esp. Ing. José María Sola, Profesor 70
![Page 12: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/12.jpg)
josemariasola.wordpress.com� Homepage del Curso� Papers� Referencia� Enuciadados de Trabajos� Equipos y Notas� Calendario de clases, exámenes, deadlines, actividades� Algunas Slides de Clases� Algunos Videos de Clases.
Esp. Ing. José María Sola, Profesor 72
![Page 13: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/13.jpg)
� Sistema de Control de Versiones (VCS)� Gestión de cgos sobre
producto o su configuración
� Ejemplos: Git, Mercurial, y Subversion
� Git� VCS distribuido, 2005
por Linus Torvalds para el kernel de Linux
� GitHub� Servicio que
implementa Git� Otros similares:
Bitbucket, GitLab, Gitorious, CloudForge
� ¿Por qué GitHub en el Curso?� Tiene pepositorios
públicos, y privados para universidades
� Es, para muchos, el primer contacto con un VCS distribuido, y con lenguajes de marca livianos, como markdown
� Es más eficiente que trabajos impresos
� Posee interfaces web, de escritorio, y móvil
� ¿Para qué?� Avance de cada estudiante y
de cada equipo.� Interacción entre alumnos
y con la cátedra similar a red social
� Seguimiento de correcciones y mejoras
� Repositorios durante el curso� Primeras clases
� Repositorio individual� Luego, uso de la
Organizaciónutn-frba-ssl� Para los miembros del
curso asignamos una repositorio privado, dentro utn-frba-ssl, a cada equipo
� https://github.com/orgs/utn-frba-ssl/
� Primeros Pasos en GitHub
1. Leer guía "Git 101”2. Crear Usuario3. Crear Repositorio.
Git y GitHubhttps://github.com/orgs/utn-frba-ssl
Esp. Ing. José María Sola, Profesor 75
https://josemariasola.wordpress.com/ssl/git/
![Page 14: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/14.jpg)
Esp. Ing. José María Sola, Profesor 76
![Page 15: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/15.jpg)
Esp. Ing. José María Sola, Profesor 77
![Page 16: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/16.jpg)
Diferencias con Estándar C (y con C++)main( ){
puts("Pre Ansi");}
#include <stdio.h>
int main(void){puts("Post Ansi");return 0;
}
#include <stdio.h>#include <stdlib.h>
int main(void){puts("Post Ansi");return EXIT_SUCCESS;
}
#include <iostream>
int main() {std::cout << "ANSI C++\n";
}
#include <stdio.h>
int main(void){puts("Post Ansi");
}
Esp. Ing. José María Sola, Profesor 78
![Page 17: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/17.jpg)
Esp. Ing. José María Sola, Profesor 79
![Page 18: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/18.jpg)
#include <stdio.h>main( ) {printf( "Hello, World!\n" );
}
Otras versiones – ¿Mismos Léxico, Sintaxis, Semántica, y Pragmática?
#include <stdio.h>
main( ){
printf( "Hello," );
printf( " World!" );
printf( "\n" );
}
#include <stdio.h>
main( ){
printf( "Hello,"
"World!"
"\n" );
}
#include <stdio.h>
main( ){
puts( "Hello, World!" );
}
Esp. Ing. José María Sola, Profesor 80
#include <iostream>
int main() {std::cout << ”Hello, World\n";
}
![Page 19: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/19.jpg)
Términos de la clase #Definir cada término con la bibliografía� SSL
� Lenguaje de Programación� Comportamiento� Lenguaje� Lenguaje Natural� Lenguaje Formal� Sintaxis� Semántica� Léxico� Pragmática� Bugs� Gaps� Verificación� Validación
� Plataforma del Curso� VCS (Sistema de Control de Versiones)� Git� GitHub� Repositorio
� Otras versiones de Hello.c� Tipo int implícito� Valor retornado por main� Concatenación de cadenas� Múltiples invocaciones� Operación corrimiento en C y en C++: <<� Operación inserción en C++ <<� cout� stdout� printf versus puts� printf versus fprintf� puts� EXIT_FAILURE� stdlib.h
� Introducción a:� Léxico� Sintaxis� Semántica� Pragmática
03
Esp. Ing. José María Sola, Profesor 81
![Page 20: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/20.jpg)
Tareas para la próxima clase1. Leer Interfaces y Make.
Esp. Ing. José María Sola, Profesor 82
![Page 21: Abril 19, Lunes 2021... · 2021. 7. 7. · libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajes de programación Utilizar distintos tipos de autómatas](https://reader036.vdocuments.co/reader036/viewer/2022071516/6139cf970051793c8c00b0ca/html5/thumbnails/21.jpg)
Esp. Ing. José María Sola, Profesor 83