Lenguajes de alto nivel
Por lo general se piensa que los ordenadores son máquinas que realizan tareas de cálculos o procesamiento de textos. La descripción anterior es sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre lo que se pide a la computadora y lo que realmente comprende. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina.
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.
Intérpretes y compiladores La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y se realiza normalmente por un programa especial llamado compilador. La traducción de un código fuente de alto nivel a un código máquina también se realiza con un compilador, en este caso más complejo, o mediante un intérprete. Un compilador crea una lista de instrucciones de
código máquina, el código objeto, basándose en un código fuente. El código objeto resultante es un programa rápido y listo para funcionar, pero que puede hacer que falle el ordenador si no está bien diseñado. Los intérpretes, por otro lado, son más lentos que los compiladores ya que no producen un código objeto, sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta. Cuando la línea se lee por segunda vez,
como en el caso de los programas en que se reutilizan partes del código, debe compilarse de nuevo. Aunque este proceso es más lento, es menos susceptible de provocar fallos en la computadora.
1. Intérpretes
• Lenguajes para aplicaciones específicas susceptibles o idóneos para interpretación
Interpretación directa o mediante pseudo código
Traductores que realizan lo que podemos llamar traducción directa, es decir, traducir y ejecutar simultáneamente. La ventaja frente a un compilador es la ocupación en memoria es menor ya que suelen ser programas mas reducidos en
tamaño que un compilador. La desventaja es el tiempo de ejecución que tarda un programa sujeto a este tipo de traducción. En la actualidad existen interpretes que incorporan una pequeña fase de análisis antes de la interpretación para evitar los problemas originados por la suspensión del programa en ejecución al aparecer el primero de los errores, con lo cual todo proceso transcurrido se pierde. Una buena aplicación de los interpretes es la de depurar programas que una vez en funcionamiento correcto se compilan ejecutándose el producto de dicha compilación en el uso normal del programa.
2. Compiladores
• Tipos de gramáticas formales Una gramática se define como un conjunto finito de reglas sintácticas. La gramática esta formada de 4 elementos los cuales se identifican como (V, T, P, Z) donde:
V es el alfabeto.
T es el conjunto de símbolos terminales, de donde T esta en V.
P es el conjunto de reglas sintácticas.
Z es un símbolo de V - T, al cual se le llama el símbolo inicial.
El lenguaje de una gramática, es el conjunto de cadenas de símbolos terminales, los cuales pueden ser generados desde Z. Para resolver el problema del análisis de enunciados en un lenguaje de programación se desarrollo la teoría de los lenguajes formales, que enumera diferentes clases de lenguajes con ciertas propiedades, y que pueden ser definidos en términos de sus gramáticas, las cuales generan solamente lenguajes de esa clase, Se definen 4 tipos básicos de gramáticas, los cuales son:
• De tipo 0 ò sin restricciones
• De tipo 1 ó dependientes del contexto
• De tipo 2 ó libres del contexto
• De tipo 3 o regulares
El tipo de gramática que usa un compilador es de tipo 2 ó libre de contexto. Este tipo de gramáticas tienen 4
componentes:
1.- Un conjunto de componentes léxicos, denominados símbolos terminales.
2.- Un conjunto de no terminales
3.- Un conjunto de producciones, en el cada producción consta de un no terminal, llamado lado izquierdo de la producción, una flecha y una secuencia de componentes léxicos y no terminales, o ambos llamado lado derecho de la producción.
4.- La denominación de uno de los no terminales como símbolo inicial.
No hay comentarios:
Publicar un comentario