lenguajes formales de programacion
DESCRIPTION
Los lenguajes formales de programadorvistos desde una perspectiva del lenguaje y gramaticaTRANSCRIPT
Clase 1
Aux. Fabelio Ajtun
1er. Proyecto 30 pts.
2do. Proyecto 40 pts.
2 practicas 20 pts.
Tareas 5 pts.
Final 5 pts.
Total 100 pts.
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
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; }
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 }
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
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
Aux. Fabelio Ajtun
Compilador Programa fuente Programa objeto
Interprete Entradas
Resultado
Código fuente
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
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
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
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
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