lenguajes formales de programacion
DESCRIPTION
Los lenguajes formales de programadorvistos desde una perspectiva del lenguaje y gramaticaTRANSCRIPT
![Page 1: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/1.jpg)
Clase 1
Aux. Fabelio Ajtun
![Page 2: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/2.jpg)
1er. Proyecto 30 pts.
2do. Proyecto 40 pts.
2 practicas 20 pts.
Tareas 5 pts.
Final 5 pts.
Total 100 pts.
![Page 3: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/3.jpg)
Es un lenguaje cuyos símbolos primitivos y reglas para unir estos símbolos están formalmente especificados.
Un Lenguaje formal esta compuesto por: ◦ 1. alfabeto (vocabulario)
◦ 2. gramática formal (conjunto de reglas)
Ejemplo: ◦ Un conjunto de todas las palabras sobre {a,b}.
Alfabeto: a, b
Regla: SOLO palabras formadas
con las letras a y b
Aux. Fabelio Ajtun
![Page 4: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/4.jpg)
Es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas.
Se utilizan para la creación de programas que controlan el comportamiento físico y lógica de una maquina.
Esta formado por un conjunto de símbolos, reglas sintácticas y semánticas que definen el significado de su estructura.
Ejemplo: If ( temperatura > 40){ status = “calido”; ventilador = true; }
![Page 5: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/5.jpg)
Reglas
La sintaxis es el conjunto de reglas que definen las secuencias correctas de los elementos de un lenguaje de programación.
Ejemplo: ◦ Sintaxis de un ciclo for en
el lenguaje java.
◦ Sintaxis: 1. palabra “for” seguido de
paréntesis.
2. Dentro de los paréntesis TIENE que venir una declaración seguido de una condición y finalizar con un incremento/decremento
3. Se abren llaves y dentro se colocan las instrucciones a ejecutar
Aux. Fabelio Ajtun
for(int i=0; i<10;i++) { INSTRUCCIONES }
![Page 6: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/6.jpg)
Es un programa que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar
Un compilador traduce todo el programa, antes de ejecutarlo
En los programas compilados, los errores sintácticos se detectan antes de ejecutar el programa
Aux. Fabelio Ajtun
![Page 7: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/7.jpg)
Un interprete es un procesador de lenguajes, que se encarga de analizar y ejecutar programas.
Los interpretes realizan la traducción a medida que se necesita, instrucción por instrucción, y regularmente no guardan el resultado de la traducción.
A diferencia de un compilador, el interprete realiza la traducción paso a paso conforme se va ejecutando el programa, instrucción a instrucción
Aux. Fabelio Ajtun
![Page 8: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/8.jpg)
Aux. Fabelio Ajtun
Compilador Programa fuente Programa objeto
Interprete Entradas
Resultado
Código fuente
![Page 9: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/9.jpg)
Fases de un compilador
Análisis léxico
Análisis sintáctico
Análisis
semántico
Generación de
código intermedio
Optimización de
código
Generación de
código
Aux. Fabelio Ajtun
Tabla de símbolos
Manejador de errores
Programa fuente
Programa objeto
![Page 10: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/10.jpg)
Esta fase del compilador es la encargada de leer el flujo de caracteres que componen el programa fuente y los agrupa en secuencias significativas, conocidas como lexemas.
El analizador léxico produce como salida tokens (componente léxico), los cuales se utilizar como entrada para el analizador sintáctico.
Aux. Fabelio Ajtun
![Page 11: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/11.jpg)
Es la categoría léxica asociada a un patrón. Cada token se convierte en un número o código identificador único.
Ejemplos: ◦ If
◦ Else
◦ While
◦ Identificador
◦ Numero
Aux. Fabelio Ajtun
![Page 12: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/12.jpg)
Es una expresión que describe un conjunto de cadenas sin enumerar sus elementos.
Para expresar patrones se utilizan: ◦ Alternación |
◦ Cuantificación (+,*,?)
◦ Agrupación ()
Ejemplos: ◦ (m|p)adre
◦ (+|-)?(0..9)+
◦ ho+la
Aux. Fabelio Ajtun
![Page 13: lenguajes Formales de Programacion](https://reader036.vdocuments.co/reader036/viewer/2022082211/563dba82550346aa9aa63f10/html5/thumbnails/13.jpg)
Es una secuencia de caracteres en el programa fuente, que coinciden con el patrón para un token y que el analizador léxico identifica como una instancia de ese token.
Ejemplos: ◦ Lexema de id: velocidad
◦ Lexema de numero: 23.123
◦ Lexema de if: if
Aux. Fabelio Ajtun