LENGUAJES NATURALES Y ARTIFICIALES
Enviado por wella • 23 de Julio de 2013 • 663 Palabras (3 Páginas) • 454 Visitas
LENGUAJES NATURALES Y ARTIFICIALES
La teoría de gramáticas transformacionales de Chomsky se aplica por igual a los lenguajes natu¬rales (los que hablamos los seres humanos) y los lenguajes de programación de computadoras. Con muy pocas excepciones, todos estos lenguajes tienen una sintaxis que se puede expresar con gramáticas del tipo 2 de Chomsky; es decir, se trata de lenguajes independientes del contexto. Las dos excepciones conocidas son el alemán suizo y el bambara.
LENGUAJES DE PROGRAMACIÓN DE COMPUTADORAS
A lo largo de la historia de la Informática, han surgido varias generaciones de lenguajes artifi¬ciales, progresivamente más complejas:
Primera generación: lenguajes de la máquina. Los programas se escriben en código binario. Por ejemplo:
000001011010000000000000
Segunda generación: lenguajes simbólicos, cada instrucción de la máquina se representa mediante símbolos. Por ejemplo:
ADD AX, P1
Tercera generación: lenguajes de alto nivel, con una sola instrucción este tipo representa usualmente varias instrucciones de la máquina. Por ejemplo:
P1 = P2 + P3;
Son lenguajes de alto nivel, FORTRAN, COBOL, LISP, BASIC, C, C++, APL, PASCAL, SMALLTALK, JAVA, ADA, PROLOG, y otros muchos. Entre los lenguajes que usualmente se interpretan citaremos LISP, APL, SMALLTALK, JAVA y PROLOG. De algún lenguaje, como BASIC, existen a la vez compiladores e intérpretes.
Los lenguajes simbólicos se traducen mediante programas llamados ensambladores, que convierten cada instrucción simbólica en la instrucción máquina equivalente. Estos progra¬mas suelen ser relativamente sencillos y no se van a considerar aquí.
Los programas escritos en lenguajes de alto nivel se traducen mediante programas llama¬dos, en general, traductores o procesadores de lenguaje. Existen tres tipos de estos traduc¬tores:
Compilador: analiza un programa escrito en un lenguaje de alto nivel (programa fuen¬te) y, si es correcto, genera un código equivalente (programa objeto) escrito en otro len¬guaje, que puede ser de primera generación (de la máquina), de segunda generación (simbólico) o de tercera generación. El programa objeto puede guardarse y ejecutarse tantas veces como se quiera, sin necesidad traducirlo de nuevo.
Compilador-intérprete: traduce el programa fuente a un formato o lenguaje interme¬dió, que después se interpreta.
JAVA es un ejemplo típico de lenguaje traducido mediante un compilador-intérprete, pues primero se compila a BYTECODE, y posteriormente éste se interpreta mediante una máquina virtual de JAVA, que no es otra cosa que un intérprete de BYTECODE. En este caso, A es JAVA, B es BYTECODE, C es el lenguaje en que esté escrito el com¬pilador de JAVA a BYTECODE, y D es el lenguaje en que esté escrita la máquina vir¬tual de JAVA.
Los compiladores generan código más rápido
...