lenguajes formales de programacion

13
Clase 1 Aux. Fabelio Ajtun

Upload: fastbyron

Post on 11-Feb-2016

256 views

Category:

Documents


0 download

DESCRIPTION

Los lenguajes formales de programadorvistos desde una perspectiva del lenguaje y gramatica

TRANSCRIPT

Page 1: lenguajes  Formales de Programacion

Clase 1

Aux. Fabelio Ajtun

Page 2: lenguajes  Formales de Programacion

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

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

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

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

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

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

Aux. Fabelio Ajtun

Compilador Programa fuente Programa objeto

Interprete Entradas

Resultado

Código fuente

Page 9: lenguajes  Formales de Programacion

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

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

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

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

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