Lenguaje maquina Es una colección de instrucciones muy detalladas y cripticas que controlan la circuiteria interna de la maquina. Muy pocos programas se escriben actualmente en lenguaje maquina
por dos razones importantes:
- Primero , por que el lenguaje maquina es muy incomodo para trabajar , y
- Segundo , por que la mayoría de las maquinas tienen sus repertorios de instrucciones propios.
así un programa escrito en lenguaje maquina para una computadora no puede ser ejecutado en otra de distinto tipo sin modificaciones importantes.
Lenguaje ensamblador ( assembly language ) Tipo de lenguaje de programación en que el conjunto de instrucciones del microprocesador se representa por MNEMÓNICOS , en vez de dígitos BINARIOS o HEXADECIMALES.
Con el fin de facilitar la escritura de programas . Un lenguaje ensamblador es un lenguaje de BAJO NIVEL , es decir , esta muy cerca de las operaciones reales del microprocesador .
Pascal , Basic , y otros son lenguajes de ALTO NIVEL por que son muy lejanos del microprocesador. Una línea escrita en Basic ( por ejemplo, la instrucción IF - THEN -
ELSE ) puede equivaler a muchas líneas de instrucciones explícitas en lenguaje ensamblador , aunque esto ultimo tomaría menos tiempo de ejecución que lo primero .
Convertir un programa escrito en lenguaje ensamblador en programa ejecutable requiere un ensamblador que lo ajuste. El lenguaje ensamblador permite a los programadores
controlar directamente la operación de la CPU , Los datos se cargan , almacenan , recuperan , corren o se hacen girar en forma de simples bits , bytes completos o grupos de
16 bits . Pero programar en lenguaje ensamblador puede ser un proceso complicado .
Lenguaje de medio nivel
Lenguajes de programación como C pueden considerarse como lenguajes de medio nivel ya que tiene algunas características adicionales que permiten su uso a un nivel mas bajo ,
cubriendo así el vacío entre el lenguaje maquina y los lenguajes de alto nivel mas convencionales . Esta ventaja permite el uso de C en la programación de sistemas.
Lenguaje de alto nivel ( high level language ) Son lenguajes de programación como Basic , Pascal , Ada , etc . ya que no estan en contacto
directo con la computadora , por lo que el programador no necesita saber nada respecto a las operaciones a nivel de maquina del sistema . Una instrucción sencilla en un lenguaje de
alto nivel podría necesitar una pagina de instrucciones en lenguaje ensamblador para realizarse, pero el programador del lenguaje de alto nivel no requiere conocer esto . Los
lenguajes de alto nivel son mucho mas fáciles de usar que los lenguajes ensamblador y de maquina ; pero en general , tienen una ejecución mas lenta y requieren mas memoria . La
mayoría de los lenguajes de alto nivel son lenguajes de propósito general como Pascal , Cobol , etc . pero hay también lenguajes de propósito especial , sus instrucciones están
diseñadas especialmente para algún tipo particular de aplicación como por ejemplo: GPSS y CSMP, que son lenguajes orientados a la simulación . El uso de un lenguaje de alto nivel
ofrece tres ventajas importantes respecto al lenguaje maquina ; llamadas sencillez , uniformidad y portabilidad ( independencia de la maquina ) .
Los lenguajes compilados y sus descendientes , los lenguajes interpretados , no solo representan al lenguaje ensamblador con una estructura de comandos parecidos al
lenguaje hablado , sino también permiten capturar errores y , en los sistemas de tiempo compartido , economizar a los programadores . ya que compilan el código de alto nivel antes
de correrlo en la maquina.
Compilador o Interprete Un compilador o interprete es en suma un programa que acepta un programa en alto nivel (
por ejemplo un programa en C ) como datos de entrada . y genera el correspondiente programa en lenguaje maquina como salida . El programa original en lenguaje de alto nivel
se llama programa fuente , y el programa resultante en lenguaje maquina se llama programa objeto . Todo lenguaje de alto nivel debe tener su propio compilador o interprete
para al menos una determinada computadora .
Estructura basica de un Compilador
CÓDIGO FUENTE |
-> |
1.- Analizador Lexicográfico |
| |
|
2.- Analizador Sintáctico |
| |
|
3.- Analizador Semántico |
| |
|
4.- Generador de Código Intermedio |
CÓDIGO OBJETO |
<- |
5.- Generador de Código |
- Analizador lexicográfico :
Analiza todo el conjunto de símbolos, tokens , palabras.
- Analizador sintáctico :
Verifica que la expresión este escrita de acuerdo a las reglas que permite el compilador .
Analizador semántico : Define la lógica de acuerdo a la definición del lenguaje .
Generador de código intermedio : Genera con el árbol sintáctico un código que
todavía no esta optimizado , para facilitar la generación del código objeto .
|