Sei sulla pagina 1di 3

Lenguaje de bajo nivel

Un lenguaje de programación de características de bajo nivel o de primera generación, es


aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están
condicionados por la estructura física de las computadoras que lo soportan. El uso de la
palabra bajo en su denominación no implica que el lenguaje sea menos potente que
un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el lenguaje y el
hardware. Por ejemplo, este tipo de lenguajes se utiliza para programar tareas críticas de
los sistemas operativos, de aplicaciones en tiempo real o controladores de dispositivos.

Complejidad vs dificultad
Los lenguajes de bajo nivel tales como el lenguaje ensamblador pueden ser más difíciles de
programar que los lenguajes de alto nivel debido a que están más íntimamente relacionados
con las características técnicas del hardware. Además estos suelen carecer de abstracciones
de mayor nivel. No es posible una abstracción fuera de lo estipulado para el conjunto
del microcódigos del microprocesador de un ordenador. Por otro lado, es más fácilmente
traducible a lenguaje de máquina, tarea que realiza esencialmente un compilador.
De menor a mayor nivel de abstracción respecto del hardware es posible clasificar los
lenguajes de programación de la siguiente manera:

1. Lenguaje de máquina: Está formado por los 1s y 0s que ejecutará directamente la


Unidad central de proceso (CPU). Al visualizar este lenguaje en un editor de texto
plano parecerá sin sentido (caracteres basura). Muchos de ellos serán caracteres no
imprimibles. Estos 0s y 1s representan literalmente instrucciones y datos a ser
procesados.
2. Lenguajes ensambladores (en inglés assembler): También denominados
nemotécnicos o nemónicos, son un primer nivel de abstracción. No son ya programas
ejecutables directamente por el ordenador, sino textos de código fuente inteligibles por
humanos que necesitan de alguna herramienta (esencialmente un compilador) para
su traducción a lenguaje de máquina que el CPU pueda ejecutar. Sus instrucciones
suelen ser una denominación abreviada de la instrucción máquina que simbolizan, y
tienen una correspondencia casi directa (uno a uno) a las instrucciones de máquina
que representan. El código resultante de la compilación del lenguaje ensamblador
genera un código de máquina binario ejecutable.
Son instrucciones que ensamblan los grupos de conmutadores necesarios para
expresar una mínima lógica aritmética. Están íntimamente vinculados al hardware.
Algunas de estas instrucciones pueden ser por ejemplo MOV para mover un dato de un
lugar a otro, o ADD para sumar dos valores. Por norma general están disponibles a
nivel firmware, cmos o chip set. Estos lenguajes están orientados a procesos. Los
procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura
del hardware así haya sido diseñada. La arquitectura CISC contiene muchas más
instrucciones a este nivel, que la RISC.

o Por ejemplo: Assembler x86, JMP y MULT.


Los otros lenguajes que completan la clasificación no serían ya lenguajes de bajo
nivel.
3. Lenguajes de medio nivel: Son aquellos que, basándose en los juegos de
instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmético,
pero a nivel lógico dependen de literales en ensamblador. Estos lenguajes están
orientados a procedimientos. Los procedimientos se componen de procesos.
o Ejemplos: C, Basic. De mayor nivel pero aun así considerables de nivel
medio: C++, Fortran, Cobol, Lisp.

Interacción máquina[editar]
En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al
más fino detalle, además, está completamente orientado a la máquina.

 Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina.


 Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias.
 Portabilidad - Mínima por estar restringido a las especificaciones del fabricante.
 Abstracción - Mínima por depender completamente de la técnica del hardware.
 Uso - Requiere de la máxima atención y de una organización estructurada sobre la base
de los planos del hardware y del objetivo del software.
 isomorfismo - Conceptualización de los datos de la información, que se complementaran

Primera generación[editar]
El lenguaje de programación de primera generación (por sus siglas en inglés: 1GL), es
el lenguaje de código máquina. Es el único lenguaje que un microprocesador entiende de
forma nativa. El lenguaje máquina al constar de unos y ceros, es de difícil lectura y gran
probabilidad de equivocación al ingresarlo, por lo tanto es raro que una persona lo use
directamente.
Las instrucciones en lenguaje máquina, constan de una o dos memorias de instrucción, y otras
memorias con datos (ver artículo modos de direccionamiento)

Ejemplo, una instrucción en lenguaje máquina acorde al microprocesador Z80

Índice de
Binario Hexadecimal Significado
memoria

Agrega lo que esté en la siguiente memoria a la


0 10000111 87
memoria acumulador

1 01110111 77 Dato. Número 119 en decimal y 77 en hexadecimal.

Segunda generación[editar]
El lenguaje de programación de segunda generación (por sus siglas en inglés: 2GL), es
el lenguaje ensamblador. El avance respecto al anterior, es que en vez de llanos unos y ceros,
se tienen mnemónicos ya escritos como un texto, y datos visibles a un lado del mnemónico.
En este se requiere de un programa que traduzca los mnemónicos a lenguaje máquina.
Un programador de lenguaje ensamblador debe conocer la arquitectura del procesador (como
por ejemplo las particularidades de sus registros o su conjunto de instrucciones).

Ejemplo de código ensamblador en el recuadro morado. Abajo, en el recuadro rojo se muestra un texto
codificado en hexadecimal en código ASCII.

Potrebbero piacerti anche