LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.

Slides:



Advertisements
Presentaciones similares
Filminas Segunda semana
Advertisements

Clasificación de los compiladores
Prof. Ing.Maria Rosa Damaso Rios
Cb00843 Traductores Rogelio Dávila Pérez Profesor Planta
Análisis Lexicográfico
¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a un programa objeto en código máquina.
Teoría de Autómatas y Compiladores
Prototipo de compilador didáctico del lenguaje LC99
¿Cómo hacer para que una máquina comprenda el LN?
Facultad de Ciencias de la Computación
Fundamentos de programación
DESARROLLO DE PROGRAMAS
Lenguajes de programación
INSTITUTO TECNOLOGICO DE MINATITLAN
Lenguajes de programación
Introducción a la Programación
Unidad 1. Introducción al proceso de compilación.
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) INTRODUCCION A LA PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) II.- ANALISIS DE ALGORITMOS
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Traducción dirigida por la Sintaxis
Teoría de lenguajes y compiladores
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Lenguajes de programación
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
ALGORITMOS Y ESTRUCTURAS DE DATOS
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
TRADUCTOR DE UN PROGRAMA
Fundamentos de Programación
CONDICIONES DE LA MATERIA
M.C. Meliza Contreras González
Cobol C Pascal Fortran 1. INTRODUCCIÓN SmallTalk Java C++
FUNDAMENTOS DE PROGRAMACION
TIPOS DE DATOS ABSTRACTOS
Resumen de Compilación Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Traducido por Christian Torres Universidad Ricardo.
Tema 1 Entorno de la programación. Conceptos elementales Algoritmo  Secuencia ordenada de pasos exentos de ambigüedad que conduce a la resolución de.
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
SOFTWARE DE PROGRAMACIÓN
LENGUAJE DE PROGRAMACIÓN
Procesadores de Lenguajes
LENGUAJES DE PROGRAMACIÓN
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Programación de Sistemas
Tema 1. Introducción y Conceptos Básicos
Análisis Léxico Área Software de Base.
COMPILADORES DIANA ROCIO OLAYA MESA.
INFORMATICA VII (Programación e implementación de sistemas)
Programación de Sistemas FEI – 2008
Unidad 1. Introducción a los Compiladores.
Lenguajes de Programación
Teoría de lenguajes y compiladores
UNIVERSIDAD LATINA (UNILA)
Metodología de la programación
Lenguajes de Programación
INTRODUCCIÓN LI & MSC OSCAR RAMÍREZ CORTÉS U NIVERSIDAD DE LA H UASTECA V ERACRUZANA L ENGUAJES DE P ROGRAMACIÓN.
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
III. DESARROLLO DE SISTEMAS.. Podemos definir el desarrollo de sistemas informáticos como el proceso mediante el cual el conocimiento humano y el uso.
El proceso de compilación
Tipos de Lenguajes Ensamblador.
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
FUNDAMENTOS DE PROGRAMACIÓN
PARADIGMA Es un marco de referencia que impone reglas sobre cómo se deben hacer las cosas. CONCEPTO DE PARADIGMA DE PROGRAMACION colección de modelos conceptuales.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
UNIVERSIDAD LATINA (UNILA)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.

¿ Qué es un LP ? Computación – Máquina Turing, tesis de Church Legibilidad por parte de la máquina Legibilidad por parte del ser humano Definición: Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano.

Características Eficiencia Expresividad Capacidad de mantenimiento Legibilidad Confiabilidad Seguridad Simplicidad Productividad

Abstracciones Clases: Datos y control Niveles: básicas, estructuradas y unitarias Abstracciones de datos: ● Básicas: tipos básicos (enteros, reales,...) ● Estructuradas: tipos estructurados (arreglos, registros) ● Unitarias: Tipos abstractos de datos (TDAs), paquetes, módulos, clases, componentes

Abstracciones Abstracciones de control – Básicas: asignación, goto – Estructuradas: condicionales e iteradores – Unitarias: paquetes, módulos, hilos y tareas. Un lenguaje de programación es completo en Turing siempre que tenga variables enteras y aritméticas, y que ejecute enunciados en forma secuencial, incluyendo enunciados de asignación, selección e iteración.

Paradigmas de programación Imperativo – modelo de Von Neuman, cuello de botella de Von Neuman Orientado a Objetos – TDAs, encapsulación, modularidad, reutilización Funcional – noción abstracta de función, cálculo lambda, recursividad, listas Lógico – Lógica simbólica, programación declarativa

Elementos del lenguaje Sintaxis (estructura) – Gramáticas libres de contexto, estructura léxica, tokens Semántica (significado) – Lenguaje natural – Semántica operacional – Semántica denotacional

Traducción del lenguaje Traductor es un programa que acepta otros programas escritos en un lenguaje y: – los ejecuta directamente (interprete) – los transforma en una forma adecuada para su ejecución (compilador). entrada código fuente salidaintérprete

Elementos de Traducción Pseudointérpretes: intermedio entre interprete y compilador: lenguajes intermedios Operaciones de un traductor: analizador léxico (tokens), analizador sintáctico, analizador semántico, preprocesador código fuente traducción adicional compilación código objeto código ejecutable

Traducción Tiempo de compilación y tiempo de ejecución Propiedades estáticas: tiempo de compilación Propiedades dinámicas: tiempo de ejecución Recuperación de errores (compilación y ejecución) Eficiencia y optimización (compilación o ejecución)

Modelos formales de traducción La definición formal de la sintaxis de un lenguaje de programación se conoce como una gramática, en analogía con la terminología común para los lenguajes naturales. Una gramática se compone de un conjunto de reglas (llamadas producciones) que especifican las series de caracteres (o elementos léxicos) que forman programas permisibles en el lenguaje que se está definiendo. Una gramática formal es simplemente una gramática que se especifica usando una notación definida de manera estricta. Las dos clases de gramáticas útiles en tecnología de compiladores incluyen la gramática BNF (o gramática libre del contexto) y la gramática normal. Gramáticas BNF.- Cuando se considera la estructura de una oración en español, se le describe por lo general como una secuencia de categorías. Es decir, una oración sencilla se suele dar como. sujeto / verbo / complemento de lo cual son ejemplos: La niña / corrió / a casa. El muchacho / prepara / la comida.

Fases de Compilación En general podemos mencionar seis fases de la compilación. La primera fase, el análisis lexicográfico, identifica tokens (las “palabras”) en un programa. La segunda fase el análisis sintáctico, obtiene la estructura de un programa por medio de su gramática. La tercera fase, análisis semántico, finaliza el análisis del programa y lo traduce a una forma intermedia para las fases de síntesis. La cuarta fase, optimización, encuentra las maneras de reducir el tiempo o el espacio a utilizar cuando el programa traducido es ejecutado. La quinta fase, preparación para la generación del código, asigna memoria y registros para mantener los valores y direcciones de las variables y expresiones en el tiempo de ejecución. La sexta fase, generación de código, produce código en lenguaje ensamblador a partir de la representación intermedia (optimizada).

Fases de Compilación

Funciones de Analizador léxico

Conceptos de tokens, patrones y lexemas

Complejidad computacional. Se mide por la cantidad de espacio y tiempo que consume. La computación eficiente requiere cadenas de algún lenguaje y puede depender del tamaño o longitud de la cadena de entrada.