Lenguajes de Programación
Los lenguajes de programación sirven para escribir programas que
permitan la comunicación usuario/maquina. Unos programas especiales
llamados traductores (compiladores o interpretes) convierten las
instrucciones escritas en lenguajes de programación en instrucciones
escritas en lenguajes maquina (0 y 1, bits) que la computadora pueda entender.
Los programas de utilidad facilitan el uso de la computadora. Un
ejemplo es un editor de textos que permite la escritura y edición de
documentos. Los programas que realizan tareas concretas, nominas,
contabilidad etc.., se denominan programas de aplicación.
Se debe diferenciar entre el acto de crear un programa y la acción
de la computadora cuando ejecuta las instrucciones del programa. La
creación de un programa se hace inicialmente en papel y a
continuación se introduce en la computadora y se convierte en
lenguaje entendible por la computadora.
El propósito de un lenguaje informático (lenguaje de computadora)
es permitir a las personas comunicarse con una computadora. Los
lenguajes de los humanos y los lenguajes de la maquina son muy
diferentes, ya que las características y posibilidades de las
personas y de las maquinas son muy diferentes. Los lenguajes de
computadoras permiten a las personas escribir en un lenguaje que sea
mas apropiado a las características humanas y se puedan traducir al
lenguaje maquina de diferentes tipos de maquinas.
Los principales tipos de lenguajes utilizados en la actualidad son
tres:
- Lenguaje maquina
- Lenguaje de bajo nivel (ensamblador)
- Lenguajes de alto nivel
Lenguajes maquinas
Los lenguajes maquina son aquellos que están escritos en lenguajes
directamente inteligibles por la maquina (computadora), ya que sus
instrucciones son cadenas binarias (cadenas o series de
caracteres—dígitos—0 y 1)que especifican una operación, y las
posiciones (dirección) de memoria implicadas en la operación se
denominan instrucciones de maquina o código maquina. El código
maquina es el conocido código binario.
Las instrucciones en lenguaje maquina dependen del hardware de la
computadora y, por tanto diferirán de una computadora a otra. El
lenguaje maquina de un PC sera diferente de un sistema HP, Dell, Compaq
etc…
Las ventajas de programar en lenguaje maquina se refieren,
fundamentalmente, a la posibilidad de cargar (transferir un programa
a la memoria) sin necesidad de traducción posterior, lo que supone
una velocidad de ejecución superior a cualquier otro lenguaje de
programación.
Los inconvenientes superan a las ventajas, lo que hace prácticamente
no recomendables los lenguajes maquina al programador de
aplicaciones. Estos inconvenientes son:
- Dificultad y lentitud en la codificación.
- Poca fiabilidad,
- Dificultad grande de verificar y poner a punto los programas,
- Los programas solo son ejecutables en el mismo procesador (UCP),
Para evitar los lenguajes maquina, desde el punto de vista del
usuario, se han creado otros lenguajes que permiten escribir
programas con instrucciones similares al lenguaje humano. Esto
lenguajes se denominan de alto y bajo nivel.
Lenguajes de bajo nivel
Los lenguajes de bajo nivel son mas fáciles de utilizar que los
lenguajes maquina, pero al igual que ellos, dependen de la maquina en
particular. El lenguaje de bajo nivel por excelencia es el
ensamblador. Las instrucciones en lenguaje ensamblador son
instrucciones conocidas como nemotécnicos . Por ejemplo,
nemotécnicos típicos de operaciones aritméticas son: en ingles
ADD, SUB, DIV, etc., en español, SUM, RES, DIV, etc.
Una instrucción típica de suma seria:
ADD, M, N, P
Esta instrucción podía significar “sumar el numero contenido en
la posición de memoria M al numero almacenado en la posición de
memoria N y situar el resultado en la posición de memoria P”.
Evidentemente , es mucho mas sencillo recordar la instrucción
anterior con un nemotécnico que su equivalente en código maquina:
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador no puede ser ejecutado
directamente por la computadora – en esto se diferencia
esencialmente del lenguaje maquina- , sino que requiere una fase de
traducción al lenguaje maquina.
El programa original escrito en lenguaje ensamblador se denomina
programa fuente y el programa traducido en lenguaje maquina se conoce
como programa objeto, ya directamente inteligible por la computadora.
El traductor de programas fuente a objeto es un programa llamado
ensamblador, existente en casi todas las computadoras.
No se debe confundir el programa ensamblador, encargado de efectuar
la traducción del programa fuente escrito a lenguaje maquina, que
el lenguaje ensamblador, lenguaje de programación con una estructura
y gramática definidas.
Los lenguajes ensambladores presentan la ventaja frente a los
lenguajes maquina de su mayor facilidad de codificación y , en
general, su velocidad de calculo.
Los inconvenientes mas notables de los lenguajes ensambladores son:
- Dependencia total de la maquina, lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes maquinas).
- La formación de los programadores es mas compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la maquina.
Lenguajes de alto nivel
Los lenguajes de alto nivel son los mas utilizados por los
programadores. Están diseñados para que las personas escriban y
entiendan los programas de un modo mucho mas fácil que los lenguajes
maquina y ensambladores. Otra razón es que un programa escrito en
lenguaje de alto nivel es independiente de la maquina; esto es, las
instrucciones del programa de la computadora no dependen del diseño
del hardware o de una computadora en particular. En consecuencia, los
programas escritos en lenguaje de alto nivel son portables o
transportables, lo que significa la posibilidad de poder ser
ejecutados con poca o ninguna modificación en diferentes tipos de
computadoras; al contrario que los programas en lenguaje maquina o
ensamblador, que solo se pueden ejecutar en un determinado tipo de
computadora. Los lenguajes de alto nivel presentan las siguientes
ventajas:
- El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.
- La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones, pueden ser READ, WRITE, PRINT, OPEN, etc.
- Las modificaciones puestas a punto de los programas son mas fáciles.
- Reducción del conste de los programas.
- Transportabilidad.
Los inconvenientes se concretan en:
- Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo.
- No se aprovechan los recursos internos de la maquina, que se explotan mucho mejor en lenguajes máquina y ensambladores.
- Aumento de la ocupación de memoria.
- El tiempo de ejecución de los programas es mucho mayor.
Al igual que sucede con los lenguajes ensambladores, los programas
fuente tienen que ser traducidos por los programas traductores,
llamados en este caso compiladores e interpretes.
Traductores de lenguaje
Los traductores de lenguaje son programas que traducen a su vez los
programas fuente escritos en lenguajes de alto nivel a código
maquina. Los traductores se dividen en:
- Compiladores
- Interpretes
Interpretes
Un interprete es un traductor que toma un programa fuente, lo traduce
y a continuación lo ejecuta. Los programas interpretes clásicos,
como BASIC, prácticamente ya no se utilizan, aunque puede
encontrarse una vieja computadora que funcione con la versión QBASIC
bajo el sistema operativo DOS que corre en las computadoras
personales.
Compiladores
Después que se ha diseñado el algoritmo y escrito el programa en un
papel, se debe comenzar el proceso de introducir el programa en un
archivo (fichero) en el disco duro de la computadora. La introducción
y modificación de su programa en un archivo se hace utilizando un
editor de texto o simplemente un editor, un programa que viene con su
computadora, normalmente, y que le permite el almacenamiento y
recuperaron de lo que se ha escrito en el disco. El aprendizaje de
cómo utilizar un editor hace la tarea de introducir un programa una
tarea muy fácil.
El programa que se ha introducido esta escrito en C o en Java, pero
ni C ni java son lenguajes maquina de su computadora, muy al
contrario son lenguajes de alto nivel diseñados para hacer mas fácil
la programación que utilizando el lenguaje maquina. Una computadora
no entiende los lenguajes de alto nivel. En consecuencia, un programa
escrito en un lenguaje de alto nivel debe ser traducido a un lenguaje
que la maquina pueda comprender. Los lenguajes que la computadora
puede comprender mas o menos directamente se llaman lenguajes de bajo
nivel. La traducción de un programa escrito en en lenguaje de
alto nivel, como C++ o Java, a un lenguaje que pueda entender la
computadora se hace mediante otro programa conocido como compilador.
Los lenguajes de bajo nivel que la computadora puede entender
directamente se conocen como lenguajes ensamblador o lenguajes
maquina. En realidad, aunque son muy similares y en ocasiones se les
considera sinónimos, tienen algunas pequeñas diferencias. El
lenguaje que la computadora puede comprender directamente se denomina
lenguaje maquina. El lenguaje ensamblador es casi la misma cosa, pero
necesita un paso adicional para que la traducción pueda ser
entendida por la maquina. Si un compilador traduce su programa de
alto nivel a algún lenguaje de bajo nivel, no es exactamente lenguaje
de maquina, se necesitara, por tanto una pequeña traducción
adicional antes de ser ejecutado en la computadora, pero normalmente
este proceso suele ser automático y no es problemático.
Cuando se ejecuta un programa en lenguaje de alto nivel, tal como C,
C++ o Java, se esta ejecutando realmente una traducción de ese
programa a un lenguaje de bajo nivel. Por consiguiente, antes de que
se ejecute un programa escrito en un lenguaje de alto nivel, se debe
ejecutar en primer lugar el compilador en el programa. Cuando se
ejecuta un compilador sobre sus programa se dice que se compila el
programa.
Una desventaja del proceso de traducción que se acaba de describir
es que se necesita un compilador diferente para cada tipo de
computadora y cada sistema operativo. Si se desea ejecutar su
programa en lenguaje de alto nivel en tres maquinas diferentes, se
necesitaran utilizar tres diferentes compiladores y se debe compilar
su programa tres veces.
En resumen , para crear y ejecutar un programa en un lenguaje tal
como C, C++ o Java, se necesita introducir el programa utilizando un
editor de texto; ejecutar un programa especial denominado compilador,
traducir el lenguaje de alto nivel a lenguaje maquina y a
continuación cargar el lenguaje maquina en memoria principal y
ejecutarlo.
La compilación y sus fases
La compilación es el proceso de traducción de programas fuente a
programas objeto. El programa objeto obtenido de la compilación ha
sido traducido normalmente a código maquina.
Para conseguir el programa maquina real se debe utilizar un programa
llamado montador o enlazador. El proceso de montaje conduce a un
programa en lenguaje maquina directamente ejecutable.
El proceso de ejecución de un programa escrito en un lenguaje de
programación y mediante un compilador suele tener los siguientes
pasos:
- Escritura del programa fuente con un editor y guardarlo en un dispositivo de almacenamiento.
- Introducir el programa fuente en memoria.
- Compilar el programa con el compilador
- Verificar y corregir errores de compilación (listado de errores),
- Obtención del programa objeto.
- El enlazador obtiene el programa ejecutable
- Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.
No hay comentarios.:
Publicar un comentario