La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: compilación e interpretación.
- Compilación: es el proceso que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz interpretar. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.
- Interpretación: es una asignación de significados a las fórmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en términos puramente sintácticos, sus fórmulas bien formadas pueden no ser más que cadenas de símbolos sin ningún significado. Una interpretación otorga significado a esas fórmulas.
Se puede también utilizar una alternativa para traducir lenguajes de
alto nivel. En lugar de traducir el programa fuente y grabar en forma
permanente el código objeto que se produce durante la compilación para
utilizarlo en una ejecución futura, el programador sólo carga el
programa fuente en la computadora junto con los datos que se van a
procesar. A continuación, un programa intérprete,
almacenado en el sistema operativo del disco, o incluido de manera
permanente dentro de la máquina, convierte cada proposición del programa
fuente en lenguaje de máquina conforme vaya siendo necesario durante el
procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.
La siguiente vez que se utilice una instrucción, se la deberá
interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante
el procesamiento repetitivo de los pasos de un ciclo o bucle, cada
instrucción del bucle tendrá que volver a ser interpretada en cada
ejecución repetida del ciclo, lo cual hace que el programa sea más lento
en tiempo de ejecución (porque se va revisando el código en tiempo de
ejecución) pero más rápido en tiempo de diseño (porque no se tiene que
estar compilando a cada momento el código completo). El intérprete
elimina la necesidad de realizar una compilación después de cada
modificación del programa cuando se quiere agregar funciones o corregir
errores; pero es obvio que un programa objeto compilado con antelación
deberá ejecutarse con mucha mayor rapidez que uno que se debe
interpretar a cada paso durante una ejecución del código.
La mayoría de lenguajes de alto nivel permiten la programación
multipropósito, aunque muchos de ellos fueron diseñados para permitir
programación dedicada, como lo fue el Pascal con las matemáticas en su comienzo. También se han implementado lenguajes educativos infantiles como Logo mediante una serie de simples instrucciones. En la actualidad son muy populares algunos lenguajes especialmente indicados para aplicaciones web, como Perl, PHP, Ruby, Python o JavaScript.
No hay comentarios:
Publicar un comentario