lenguajes formales de programacion

Post on 11-Feb-2016

258 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

top related