Lenguajes de programacion
Tema 1
Introducción
Ciencias de la Computación e Inteligencia Artificial
Tema 1. Introducción
Índice
1.1 Conceptos
1.2 Un poco de historia
1.3 Estructura de un compilador
1.4 Teoría de lenguajes formales
2
Procesadores de lenguaje
1
1.1 Conceptos
Tema 1. Introducción
Procesador
de lenguaje
Lenguaje fuente
• Procesador delenguaje: aplicación que toma como entrada un
conjunto de archivos descritos en un cierto lenguaje formal
(lenguaje fuente)
• Traductor: procesador de lenguaje cuya función consiste en reescribir los archivos de entrada en otro lenguaje formal
(lenguaje objeto)
3
Procesadores de lenguaje
1.1 Conceptos
Tema 1. Introducción
Lenguaje fuente
Traductor
Lenguaje objeto
• Ensamblador:traductor de lenguaje ensamblador a código
máquina
• Compilador: traductor de lenguaje de alto nivel a ensamblador
o a código máquina
4
Procesadores de lenguaje
2
Tema 1. Introducción
1.1 Conceptos
• Intérprete: Analiza el código fuente y lo ejecuta sin generar un
código objeto.
• Emulador: Intérprete en el que el código fuente es el código
máquina de una plataformadiferente.
• Compiladores vs intérpretes:
– Los programas compilados son mucho más rápidos
– Los compiladores consumen muchos recursos
– Los intérpretes utilizan código independiente de la plataforma
– Los intérpretes pueden ejecutar código generado en tiempo de
ejecución.
5
Procesadores de lenguaje
Tema 1. Introducción
1.1 Conceptos
• Preprocesador: pequeño compilador dedicado aexpandir las
macros e incluir ficheros.
• Enlazador (linker): programa que enlaza los diferentes módulos
compilados para generar el ejecutable.
• Compilador cruzado: compilador que genera código para una
máquina diferente a la utilizada para compilar.
• Autocompilador: compilador escrito en el mismo lenguaje que
va a compilar.
• Metacompilador: herramienta de ayuda al diseño decompiladores.
• Descompilador: programa que produce una representación de
alto nivel a partir del código máquina.
6
Procesadores de lenguaje
3
Tema 1. Introducción
1.2 Un poco de historia
• 1940’s:
– Primeros ordenadores.
– Programación directa en código máquina.
– Nace el ensamblador (traducido manualmente)
– Se automatiza la etapa de ensamblado
• 1950’s
– (1950) John Backusdirige en IBM un proyecto de lenguaje
algebraico
– (1954-1958) Nace el FORTRAN (FORmulae TRANslator)
– Primer compilador de FORTRAN para IBM modelo 704
7
Procesadores de lenguaje
Tema 1. Introducción
1.2 Un poco de historia
• 1950’s (mediados):
– Noam Chomsky publica sus estudios sobre la estructura de los
lenguajes y las gramáticas formales
• 1950’s (finales):
– F.L. Bauer(Univ. Munich) dirige un proyecto de lenguaje formal
– Se crea un comité conjunto con la Association for Computing
Machinery en el que participa Backus
– Se define IAL (International Algebraic Language)
– Posteriormente se denomina ALGOL 58 (ALGOrithmic
Language)
8
Procesadores de lenguaje
4
Tema 1. Introducción
1.2 Un poco de historia
• Características de ALGOL 58
–Definición de la notación BNF (Backus-Naur Form)
– Declaración de tipos de variables
– Estructura modular
– Funciones recursivas
– Paso de parámetros por valor o por nombre
– Precursor de Pascal, Ada o Modula
9
Procesadores de lenguaje
Tema 1. Introducción
1.2 Un poco de historia
• 1960’s: Primeras técnicas de desarrollo de compiladores
– 1958: Strong y otros proponen dividir elcompilador en dos fases:
front-end y back-end y promueven la creación de un lenguaje
intermedio universal (UNCOL – UNiversal Computer Oriented
Language).
– 1959: Rabin y Scott proponen utilizar autómatas deterministas
para el análisis léxico
– 1961: Primer analizador sintáctico descendente recursivo
– Durante toda la década se estudian intensamente las gramáticas
LL.
10
Procesadores de...
Regístrate para leer el documento completo.