Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin.
Los lenguajes de programacin son las herramientas principals con las que los
programadores trabajan con el sistema, es decir, un lenguaje de programacin es la
comunicacin entre el usuario y la mquina.
Inicialmente en la programacin de sistemas se utilizaban los llamados lenguajes de
primera generacin, estos lenguajes operan a nivel de codigo binario o mquina, de
modo que la programacin era difcil probarla por lo que se decide dar un pequeo
pasoen la programacin con la creacin de cdigo octal y hexadecimal.
El cdigo mquina fu reemplazado por lenguajes de segunda generacin o
ensambladores; stos permiten utilizer abreviaturas mnemnicas, como nombres
simblicos, y la abstraccin cambi de nivel flipflopa nivel registro.
Para substitur a los lenguajes ensambladores se crearon los lenguajes de tercera
generacin o lenguajes de alto nivel; con los cuales se pueden utilizer estructuras de
control basadas en objetos de datos lgicos, variables de tipo especfico y ofrecen un
nivel de abstraccin que permite la especificacin de datos, funciones o procesos, y
su control en forma independiente de la mquina.
Entre los lenguajes de tercera generacin tenemos: C, Java, C#, VB, COBOL, Pascal.
Para que una mquina pueda ejecutar un lenguaje de alto nivel debe ser trducido al
lenguaje mquina. A ste proceso se le denomina compilacin y la herramienta
correspondiente se denomina compilador.
La entrada del compilador es el cdigo fuente, es decir, el programa escrito en
lenguaje de alto nivel. El compilador lleva acabo la revision, anlisis y sntesis de la
entrada para que sea presentado en la salida el cdigo objeto, es decir, las
instrucciones en cdigo mquina.
1 Gen. -> 1010001110
2 Gen. -> Ax, B, C, ADD, SUB
3 Gen. -> Java, C#, COBOL
Tipos de Sistemas de Compilacin.
Por lo general los sistemas de compilacin traducen algn tipo de cdigo fuente o
cdigo objeto, de acuerdo a los diferentes tipos de cdigo y diversas formas de
funcionamiento; podemos distinguir diversos sistemas de compilacin.
-Ensamblador: Traducen programas escritos en lenguaje
ensamblador. Caracterizado por el uso de mnemnicos a cdigo
mquina.
-Compilador: Traducen programas escritos en lenguaje de alto nivel a
cdigo intermedio o a cdigo de mquina, el cual puede ser un
lenguaje ensamblador o alguna otra forma de representacin
intermedia. En terminus generals, un compilador est diseado para
generar cdigo de mquina eficiente pero no necesariamente ptimo.
Compilador
Analizador Lxico
Analizador Semntico
A.S. Cdigo Intermedio
Generador de Cdigo
Cdigo Objeto
<- Librera
Anlisis de Sntesis.
La compilacin de un programa consiste en analizar y sistetizar dicho programa, es
decir, determiner la estructura y el signififcado del cdigo fuente y traducer ese
cdigo fuente a un cdigo objeto equivalente.
Las tareas o fases principals de un compilador son:
-Anlisis Lxico.
-Anlisis Sintctico.
-Anlisis Semntico.
-Generacin de Cdigo.
Anlisis Lxico.
Podemos considerer a un programa como un flujo de carcteres que sirve como
entrada para el analizador lxico. La tarea del analizador lxico consiste en
reconocer los componenetes lxicos dentro de ese flujo de carcteres, es decir,
transformer un grupo de carcteres en un flujo de componenetes lxicos y con ello
poder distinguir entre palabrar reservadas y las variables.
El nmero de palabras determina el tamao del vocabulario mientras que el nmero
de components lxicos determina la longitd del programa.
Los identificadores, nombres o variables reconocidos se orgsanizan en una tabla de
smbolos, que es una estructura de datos que contiene un registro con campos de
nombre y atributos. El contenido de la tabla de smbolos, se complete con la tabla de
anlisis lxico y sintctico, y se utilizar para el anlisis semntico y la generacin de
cdigo.
Anlisis Sintctico.
Otro termino utilizado para el A.Sin. es el Anlisis Jerrquico. La palabra sintaxis
significa la estructura del orden de las palabras en una frase, la tarea del A.Sin. es
revisar si los smbolos aparecen en el orden correcto, es decir, revisar si el programa
fuente fu diseado con la sintaxis del lenguaje de programacin y combiner los
smbolos del cdigo fuente para formar unidades gramaticales.
h+x=x+y-x*y
En la instruccin anterios se detectan errors de sintaxis, dado que una de las reglas
de produccin dice: No se permiten operadores en el lado izquierdo de la
asignacin.
Asignacin
Id
Expresin
Expresin
Id
H
Id
Expresin
Id
Anlisis Semntico.
El anlisis semntico necesariamente debe considerer el significado grammatical, es
decir, se debe interpretar. sto se puede lograr traduciendo la entrada a una forma
de representacin intermedia.
En el ejemplo anterior, si nunca hubieramos definido a la variable H del rbol
sintctico, la preposicin no tendrila sentido, En forma semejante la asignacin de
una variable real a una variable booleana tampoco tendrila sentido, ste tipo de
inconsistencias seran reconocidas por el analizador semntico.
Generacin de Cdigo.
El cdigo objeto se genera en la ltima fase de la compilacin. En sta fase, el cdigo
intermedio se transforma en cdigo de mquina y la memoria necesaria quedar
determinada. Esto es la ltima fase que depende del hardware, ya que por los
general los conjuntos de instrucciones varan de una mquina a otra.
II
Anlisis Lxico.
A continuacin se muestra la interrelacin entre el analizador lxico y el analizador
sintctico. En ste caso suponemos que el analizador lxico acta como servidor del
analizador sintctico. El analizador lxico lee carcteres de entrada (el cdigo
fuente) y produce secuencias de smbolos y valores de smbolos que sern
analizados por el analizador sintctico. Por lo tanto el porceso de anlisis lxico o de
reconocimiento puede entenderse como la transformacin de un flujo de carcteres
en un flujo de smbolos reconocidos y reducido. En ste caso el trmino reducido
significa que la entrada es filtrada para eliminar aquellos elementos del texto del
programa que solo servirn para hacer legible el programa.