22 nov 2009

Lenguaje y traductores

Lenguaje Natural: es el lenguaje que utilizamos, de manera hablada o escrita, de manera cotidiana, en nuestro grupo social. Los lenguajes naturales tienen reglas de gramática

Lenguaje Artificial: lenguaje creado para cierto propósito. Es más pequeño que el lenguaje natural. Es definido con un lenguaje formal.

Lenguaje Formal: definición de un lenguaje artificial de manera formal a través de un alfabeto y una gramatica formal. Las reglas de la gramática formal determinan con exactitud y sin ambigüedades si la sintáxis de una frase es la correcta.

Lenguaje de programación: lenguaje artificial elaborado para elaborar programas que controlan el comportamiento de la computadora. Expresa algoritmos y estructuras de datos. Esta definido por reglas de gramática (sintáxis) y reglas semánticas (interpretación). Se les conoce como lenguajes de alto nivel.

Gramática formal
ºDescripción precisa de un lenguaje formal.

Análisis léxico: proceso correspondiente a determinar si los tokens de una frase son válidos.
Se analiza la "ortografía".

Análisis sintáctico: proceso conocido como Parsing. Analiza una secuencia de tokens para determinar si cumple con las reglas de una gramática formal. Se genera un árbol de parser.

Análisis semántico: incluye información semántica al árbol de parser, correspondiente a la asignación de variables y funciones (atributos y métodos).

Generación de código: se genera el código de máquina. Se obtiene un programa en lenguaje de máquina, listo para ser procesado por el CPU.
Compilador: programa que lleva a cabo el análisis léxico, sintáctico y semántico, y la generación de código.Genera como resultado un archivo en código de máquina, ejecutable por el procesador.
Intérprete: programa que lleva a cabo el análisis léxico, sintáctico y semántico, y la generación de código instrucción por instrucción. Va elaborando código ejecutable por el procesador.

Traductor: compilador o intérprete que traduce un programa fuente, en lenguaje de alto nivel, a un programa objetivo, en lenguaje de máquina.

No hay comentarios: