En el presente artículo vamos a analizar y discutir acerca de Lenguaje de bajo nivel, un tema que ha generado un gran interés y debate en la sociedad actual. Desde diferentes perspectivas y enfoques, abordaremos los aspectos más relevantes y controvertidos relacionados con Lenguaje de bajo nivel, con el objetivo de proporcionar una visión completa y detallada sobre este tema. A lo largo de este artículo, exploraremos su impacto en diferentes ámbitos, así como las implicaciones y consecuencias que conlleva. Asimismo, examinaremos las distintas opiniones y posturas al respecto, ofreciendo un análisis crítico y objetivo. A través de este análisis, pretendemos ofrecer una visión integral de Lenguaje de bajo nivel y su relevancia en la actualidad.
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.
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:
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.
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.
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)
Índice de memoria | Binario | Hexadecimal | Significado |
---|---|---|---|
0 | 10000111 | 87 | Agrega lo que esté en la siguiente memoria a la memoria acumulador |
1 | 01110111 | 77 | Dato. Número 119 en decimal y 77 en hexadecimal. |
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).