Beruflich Dokumente
Kultur Dokumente
LENGUAJE MQUINA:
El lenguaje mquina es el nico que entiende directamente la computadora, ya que esta escrito en
lenguajes directamente inteligibles por la mquina (computadora), utiliza el alfabeto binario, que
consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios).
Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1) que
especifican una operacin y, las posiciones (direccin) de memoria implicadas en la operacin se
denominan instrucciones de mquina o cdigo maquina. Fue el primer lenguaje utilizado en la
programacin de computadoras, pero dejo de utilizarse por su dificultad y complicacin, siendo
sustituido por otros lenguajes ms fciles de aprender y utilizar, que adems reducen la
posibilidad de cometer errores. El lenguaje mquina es el conocido cdigo binario.
Ventajas del lenguaje mquina: posibilidad de cargar (transferir un programa a la memoria) sin
necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier
otro lenguaje de programacin.
Desventajas del lenguaje mquina: dificultad y lentitud en la codificacin. Poca fiabilidad. Gran
dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el
mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace
prcticamente no recomendables a los lenguajes mquina.
Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la
mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje
ensamblador es el primer intento de sustituir el lenguaje maquina por otro ms similar a los
utilizados por las personas. Este intenta desflexibilizar la representacin de los diferentes campos.
Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al
lenguaje. A principios de la dcada de los 50 y con el fin de facilitar la labor de los programadores,
se desarrollaron cdigos mnemotcnicos para las operaciones y direcciones simblicas. Los
cdigos mnemotcnicas son los smbolos alfabticos del lenguaje maquina. La computadora sigue
utilizando el lenguaje maquina para procesar los datos, pero los programas ensambladores
traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en el
lenguaje maquina.
En la actualidad los programadores no asignan nmeros de direccin reales a los datos simblicos,
simplemente especifican donde quieren que se coloque la primera localidad del programa y el
programa ensamblador se encarga de lo dems, asigna localidades tanto para las instrucciones
como los datos. Estos programas de ensamble o ensambladores tambin permiten a la
computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio
cdigo maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un
programador se llama programa fuente. Despus de que el ensamblador convierte el programa
fuente en cdigo maquina a este se le denomina programa objeto. Para los programadores es ms
fcil escribir instrucciones en un lenguaje ensamblador que en cdigo de lenguaje maquina pero
es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las
instrucciones del programa fuente para producir las salidas deseadas.
Visto a muy bajo nivel, los microprocesadores procesan exclusivamente seales electrnicas
binarias. Dar una instruccin a un microprocesador supone en realidad enviar series de unos y
ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de seales se denomina
cdigo mquina. El cdigo representa normalmente datos y nmeros e instrucciones para
manipularlos. Un modo ms fcil de comprender el cdigo mquina es dando a cada instruccin
un mnemnico, como por ejemplo STORE, ADD o JUMP. Esta abstraccin da como resultado el
ensamblador, un lenguaje de muy bajo nivel que es especfico de cada microprocesador.
Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son, a menudo,
difciles de aprender. Ms importante es el hecho de que los programas escritos en un bajo nivel
sean altamente especficos de cada procesador. Si se lleva el programa a otra maquina se debe
reescribir el programa desde el principio.
Ventajas del lenguaje ensamblador frente al lenguaje mquina: mayor facilidad de codificacin y,
en general, su velocidad de calculo, ahorran tiempo y requieren menos atencin a detalles. Se
incurren en menos errores y los que se cometen son ms fciles de localizar. Tanto el lenguaje
maquina como el ensamblador gozan de la ventaja de mnima ocupacin de memoria y mnimo
tiempo de ejecucin en comparacin con el resultado de la compilacin del programa equivalente
escrito en otros lenguajes. Los programas en lenguaje ensamblador son ms fciles de modificar
que los programas en lenguaje mquina.
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran bsicamente en
aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos.
Estos lenguajes son los mas utilizado por los programadores. Estn diseados para que las
personas escriban y entiendan los programas de un modo mucho mas fcil que los lenguajes
mquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la
mquina (las instrucciones no dependen del diseo del hardware o de una computadora en
particular), por lo que estos programas son portables o transportables. Los programas escritos en
lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos
de computadoras. Son lenguajes de programacin en los que las instrucciones enviadas para que
el ordenador ejecute ciertas rdenes son similares al lenguaje humano. Dado que el ordenador no
es capaz de reconocer estas ordenes, es necesario el uso de un intrprete que traduzca el lenguaje
de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender.
Por lo general se piensa que los ordenadores son mquinas que realizan tareas de clculos o
procesamiento de texto. La descripcin anterior es slo una forma muy esquemtica de ver una
computadora. Hay un alto nivel de abstraccin entre lo que se pide a la computadora y lo que
realmente comprende. Existe tambin una relacin compleja entre los lenguajes de alto nivel y el
cdigo mquina.
Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por
elementos de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms
conocido, los comandos como IF CONTADOR=10 THEN STOP pueden utilizarse para pedir a la
computadora que pare si CONTADOR es igual a diez. 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 rgida y sistemtica.
Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con
posterioridad a los anteriores (lenguaje mquina, lenguajes de bajo nivel o ensamblador) con los
siguientes objetivos, entre otros:
Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemticas, manejo de
tablas, etc., que figuran en una especie de librera del lenguaje, de manera que se puedan utilizar
siempre que se quiera sin necesidad de programarlas cada vez.
Ventajas de los lenguajes de alto nivel: el tiempo de formacin de los programadores es
relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas
sintcticas similares a los lenguajes humanos, nombres de las instrucciones tales como READ,
WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son ms fciles.
Reduccin del costo de los programas.
Desventajas de los lenguajes de alto nivel: 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
mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los
programas es mucho mayor.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran
cantidad de ellos que existen actualmente en uso, adems de las diferentes versiones o dialectos
que se han desarrollado de algunos de ellos. Es difcil establecer una clasificacin general de los
mismos, ya que en cualquiera que se realice habr lenguajes que pertenezcan a mas de uno de los
grupos establecidos. Una clasificacin muy extendida, atendiendo a la forma de trabajar de los
programas y a la filosofa con que fueron concebidos, es la siguiente: