Sie sind auf Seite 1von 24

MISIN DE LA CARRERA PROFESIONAL

Somos la escuela acreditada lder a nivel nacional en la


formacin de profesionales y en la generacin de
conocimiento cientfico orientado al desarrollo econmico,
social y cultural basada en valores, reconocida
internacionalmente e identificada con su entorno y
consciente de la preservacin del medio ambiente.

VISIN DE LA CARRERA PROFESIONAL


Ser, una escuela profesional de calidad, que forma
profesionales competentes y de alto nivel acadmico y
humanstico, que promueve la investigacin cientfica,
ejerce la proyeccin social y participa activamente en el
desarrollo local, regional y nacional.
Qu temas
estudiamos en la
clase anterior?
Qu han investigado
acerca del tema a
estudiar hoy?
Teora de lenguajes y compiladores

Unidad I

Lenguajes, Gramticas y Autmatas

Semana 3

Arquitectura bsica de un compilador


Competencia Genrica

Aplica de forma efectiva los conceptos


bsicos, tcnicas y complementos de la
teora de compiladores, formulando y
representando la taxonoma de los
lenguajes formales, as como el desarrollo
de aplicaciones para su reconocimiento.
Competencias especificas
Identifica y diferencia los tipos de lenguajes y
gramticas

Utiliza expresiones gramaticales para


representar lenguajes computacionales
formales.

Construye aplicaciones para el


reconocimiento y validacin de lenguajes
computacionales formales.
Capacidades de la unidad
Formula gramticas regulares y/o expresiones
regulares para obtener lenguajes regulares.

Construye autmatas finitos para reconocer


lenguajes regulares

Disea un analizador lexicogrfico utilizando


lenguajes de alto nivel.
Contenidos
Lenguajes de programacin

Compiladores

Diseo del compilador


Generaciones de los lenguajes
de programacin
Lenguajes de programacin

Generacin Nombre Particularidad


Primera De maquina Especifico para cada microprocesador,
uso de cdigo binario

Segunda Ensamblador Uso de nemotcnicas que abstraen al


lenguaje de maquina

Tercera De alto nivel Lenguajes estructurados con comandos


cercanos al lenguaje natural

Cuarta Propsito Programas orientados a programas


especial especficos

Quinta Naturales Incluye inteligencia artificial y sistemas


expertos
Clasificacin de los lenguajes
de programacin
Lenguajes de programacin

Lenguaje Orientado al
de microprocesador
(Sistema binario)
mquina
Ensamblador (Usa
Lenguaje cdigo nemnico y
de bajo tambin esta orientado
a un microprocesador)
nivel
Orientado
a que las
Lenguajes personas
de alto entiendan
y escriban
nivel los
programas
Lenguajes de programacin
Formas de organizacin

Existe ms de una forma para solucionar un


problema, as que hay mas de una forma
para estructurar un programa. La estructura
tiene que establecerse para cada
programa.

Formas: Descendente

Modular

Objetos
Historia de los compiladores
1946, se desarrolla el primer ordenador digital (lenguaje de mquina)
1950, John Backus dirige una investigacin en IBM en un lenguaje algebraico
1954, se comienza a desarrollar FORTRAN
Compiladores

1957, FORTRAN se utiliza en la IBM modelo 704


Surge el concepto traductor
El primer compilador de FORTRAN tard 18 aos-persona en realizarse
FORTRAN era dependiente de la mquina
Paralelamente al desarrollo de FORTRAN en Amrica, en Europa surge una
corriente que pretende que los lenguajes fuesen independientes de la
mquina, esta corriente estaba influida por los trabajos sobre GLC de Chomsky
Surge un grupo Europeo encabezado por F.L. Bauer, en la que particip ACM y
John Backus. De este grupo surge un informe que define un Lenguaje
Algebraico Internacional, publicado en Zurich en 1958
1969, aparece Algol 60
Junto con los lenguajes tambin la tcnica de los compiladores avanza
Historia de los compiladores
1958, Strong y otros proponen una solucin al problema de que un
compilador fuera portable, y esta era dividir al compilador en dos fases front
end (analiza el programa fuente) y back end (genera cdigo objeto para
la mquina objeto).
Compiladores

El puente de unin era un lenguaje intermedio denominado UNCOL (no


funcion)
1959, Rabin y Scott proponen el empleo de AFD y AFN para el reconocimiento
lexicogrfico de los lenguajes
Aparece BNF (Backus-1960, Naur-1963, Knuth-1964) como una gua para el
desarrollo del anlisis sintctico
1959, Sheridan describe un mtodo de parsing de FORTRAN para introducir
parntesis en una expresin
En los 60s se desarrollan diversos mtodos de parsers ascendentes y
descendentes
Historia de los compiladores
Floyd ms adelante introduce la tcnica de precedencia de operadores y
uso de funciones de precedencia
1961, se usa por primera vez un parsing descendente recursivo
Compiladores

En los 60s se estudia el paso de parmetros por nombre, valor y referencia


y se incluyen los procedimientos recursivos para Algol 60
Se desarrolla la localizacin dinmica de datos
1968, se estudia y definen las GLC, los parsers predictivos y la eliminacin
de recursividad izquierda
1975, aparece LEX generador automtico de analizadores lxicos a partir
de expresiones regulares bajo UNIX
A mitad de los 70s Johnson crea YACC para UNIX (generador de
analizadores sintcticos)
Ahora un compilador se divide en varias etapas
El ltimo lenguaje de programacin de amplia aceptacin es JAVA (es
interpretado)
Conceptos bsicos
Ventajas de compilar vs a interpretar
Se compila una vez, se ejecuta n veces
En ciclos, la compilacin genera cdigo equivalente,
Compiladores

interpretndolo se traduce tantas veces una lnea


como veces se repite el ciclo
El compilador tiene un visin global del programa

Ventajas del intrprete vs el compilador


Un intrprete necesita menos memoria que un
compilador
Permiten una mayor interactividad con el cdigo en
tiempo de desarrollo
PARTES DE LA COMPILACIN

Anlisis (Etapa Inicial):


Diseo del compilador

Divide al Programa Fuente en sus elementos


componentes y crea una representacin
intermedia. Se determinan las operaciones y
se registran en una estructura de rbol (ej.
rbol sintctico)

Sntesis (Etapa Final):


Construye el Programa Objeto deseado a
partir de la representacin Intermedia
(requiere tcnicas ms especializadas)
UN AMBIENTE GENERAL DE COMPILACIN
Fuente
Diseo del compilador

Anlisis lxico
Anlisis sintctico
Anlisis semntico Ms:
Sistemas de
Intermedio edicin y
depuracin
Generador de cdigo

Cdigo relocalizable

Enlazador

Objeto
FASES DE UN COMPILADOR
Diseo del compilador

PROGRAMA FUENTE

analizador lxico

analizador sintctico
administrador analizador semntico manejador

de la tabla generador de cdigo intermedio de errores

de smbolos optimizador de cdigo


generador de cdigo

PROGRAMA OBJETO

Cada fase transforma al PF de una representacin


a otra
ESQUEMA DE BLOQUES DE UN
COMPILADOR
Diseo del compilador

FUENTE Compilador

ANALISIS
Scanner
Tabla
Parser de
smbolos

SINTESIS

Prep. para la Gen.


del cdigo

OBJETO Gener. del cdigo


ESTRUCTURA FUNCIONAL DE UN
COMPILADOR
(de una pasada)
Diseo del compilador

SENTENCIA

Fuente Explorador Reconocedor Generador Objeto


de cdigo

Tabla de
smbolos
Trabajo de investigacin

Buscar informacin sobre alguna de las


etapas del proceso de compilacin.

El tema investigado se presentar la prxima clase.


Cules son Por qu me
los temas interesara en mi
estudiados vida profesional?
el da de
hoy?
Para que me
sirve y como lo
aplicara en mi
vida personal?
Teora de lenguajes y compiladores

Unidad I

Lenguajes, Gramticas y Autmatas

Semana 3

Arquitectura bsica de un compilador

Das könnte Ihnen auch gefallen