Lenguaje de Bajo Nivel
Un lenguaje de programaci贸n de caracter铆sticas bajo nivel 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, se utiliza este tipo de lenguajes para programar tareas cr铆ticas de los sistemas operativos, de aplicaciones en tiempo real o controladores de dispositivos.
Primera Generaci贸n
El lenguaje de programaci贸n de primera generaci贸n, es el lenguaje de c贸digo m谩quina. Es el 煤nico lenguaje que un microprocesador entiende de forma nativa. El lenguaje m谩quina no puede ser escrito o le铆do usando un editor de texto, y por lo tanto es raro que una persona lo use directamente.
Segunda Generaci贸n
El lenguaje de programaci贸n de segunda generaci贸n, es el lenguaje ensamblador. Se considera de segunda generaci贸n porque, aunque no es lenguaje nativo del microprocesador, un programador de lenguaje ensamblador debe conocer la arquitectura del microprocesador (como por ejemplo las particularidades de sus registros o su conjunto de instrucciones).
Ensamblador
El t茅rmino ensamblador (del ingl茅s assembler) se refiere a un tipo de programa inform谩tico que se encarga de traducir unfichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene c贸digo m谩quina, ejecutable directamente por el microprocesador. Para la que se ha generado, en si la funci贸n de un ensamblador es traducir un programa en lenguaje de ensamblador al c贸digo correspondiente en lenguaje de m谩quina. Antes de proseguir conviene diferenciar para no confundirnos por un lado el t茅rmino lenguaje ensamblador, y por otro el t茅rmino ensamblador. El primero ser铆a el lenguaje de programaci贸n como tal, mientras el segundo ser铆a el programa que convierte un fichero escrito en lenguaje ensamblador en c贸digo m谩quina o binario para que le ordenador pueda leerlo. Aunque en el art铆culo hablaremos de ambos y en general se usa ensamblador para ambos indistintamente, t茅cnicamente son cosas distintas,
Evidentemente este lenguaje tiene varias ventajas e inconvenientes. Entre las ventajas tenemos que por supuesto, es m谩s r谩pido y eficiente, m谩s estable y requiere menos recursos.
Las desventajas son sin embargo mucho mayores: para empezar est谩 limitado a las 贸rdenes que el ordenador traiga memorizadas en su placa base, nada m谩s. Y requiere unos conocimientos t茅cnicos muy avanzados, toda vez que cada CPU incluye 贸rdenes distintas e incluso formas distintas de darle esas 贸rdenes, variando seg煤n el modelo, el fabricante... etc... Es por ello, entre otras cosas, que no se ha impuesto en el mercado como lenguaje de programaci贸n para aplicaciones o juegos.
Como se v茅 es un lenguaje de programaci贸n orientado a profesionales que trabajan con hardware, muy 煤til sobre todo para detectar fallos e incompatibilidades entre piezas del PC o chequear el estado de estas.
Como ya dijimos el lenguaje ensamblador debe ser traducido a c贸digo m谩quina para funcionar, y por tanto requiere un ensamblador que lo traduzca a c贸digo binario (a ceros y unos). Pero es el lenguaje m谩s cercano al propio c贸digo que usan los ordenadores. Es por ello que se dice que es un lenguaje de bajo nivel, debido a que est谩 s贸lo un escal贸n por encima del c贸digo m谩quina, y solo permite ejecutar instrucciones sencillas. Los lenguajes de alto nivel son m谩s elaborados y permiten realizar tareas multiples y complejas con una sola orden, mientras que en el que nos ocupa una orden equivale a una instruccion directa.
Existen como hemos visto muchas variantes del lenguaje ensamblador, de hecho una por cada tipo de arquitectura del CPU. Las primeras CPUs apenas ten铆an instrucciones y por tanto eran mucho m谩s sencillas. En la actualidad est谩n en boga los llamados ensambladores de alto nivel, que permiten instrucciones m谩s complejas e incluso cadenas de instrucciones (macros).
Evidentemente este lenguaje tiene varias ventajas e inconvenientes. Entre las ventajas tenemos que por supuesto, es m谩s r谩pido y eficiente, m谩s estable y requiere menos recursos.
Las desventajas son sin embargo mucho mayores: para empezar est谩 limitado a las 贸rdenes que el ordenador traiga memorizadas en su placa base, nada m谩s. Y requiere unos conocimientos t茅cnicos muy avanzados, toda vez que cada CPU incluye 贸rdenes distintas e incluso formas distintas de darle esas 贸rdenes, variando seg煤n el modelo, el fabricante... etc... Es por ello, entre otras cosas, que no se ha impuesto en el mercado como lenguaje de programaci贸n para aplicaciones o juegos.
Como se v茅 es un lenguaje de programaci贸n orientado a profesionales que trabajan con hardware, muy 煤til sobre todo para detectar fallos e incompatibilidades entre piezas del PC o chequear el estado de estas.
Como ya dijimos el lenguaje ensamblador debe ser traducido a c贸digo m谩quina para funcionar, y por tanto requiere un ensamblador que lo traduzca a c贸digo binario (a ceros y unos). Pero es el lenguaje m谩s cercano al propio c贸digo que usan los ordenadores. Es por ello que se dice que es un lenguaje de bajo nivel, debido a que est谩 s贸lo un escal贸n por encima del c贸digo m谩quina, y solo permite ejecutar instrucciones sencillas. Los lenguajes de alto nivel son m谩s elaborados y permiten realizar tareas multiples y complejas con una sola orden, mientras que en el que nos ocupa una orden equivale a una instruccion directa.
Existen como hemos visto muchas variantes del lenguaje ensamblador, de hecho una por cada tipo de arquitectura del CPU. Las primeras CPUs apenas ten铆an instrucciones y por tanto eran mucho m谩s sencillas. En la actualidad est谩n en boga los llamados ensambladores de alto nivel, que permiten instrucciones m谩s complejas e incluso cadenas de instrucciones (macros).
Funcionamiento Y Dise帽o:
El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los c贸digos nemot茅cnicos que aparecen por su c贸digo de operaci贸n correspondiente en sistema binario para la plataforma que se eligi贸 como destino en las opciones espec铆ficas del ensamblador.cc
Ventajas para utilizarlo:
Mayor control de la computadora.
Independencia de lenguaje.
La mayor铆a de las computadoras pueden ensamblar.
Los programas hechos en lenguaje ensamblador son generalmente m谩s r谩pidos y consumen menos recursos del sistema.
Desventajas para no utilizarlo:
Demasiado complejo.
Comprensi贸n m谩s profunda de la computadora.
Errores m谩s frecuentes en el programa.
Mayor tiempo de codificaci贸n.
Dif铆cilmente portable, es decir, un c贸digo escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador.
Tipos de ensambladores:
Ensambladores cruzados: Se denominan as铆 a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendr谩n las computadoras donde se va a ejecutar el programa objeto producido.
Ensambladores residentes: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecuci贸n al programa objeto producido.
Mayor control de la computadora.
Independencia de lenguaje.
La mayor铆a de las computadoras pueden ensamblar.
Los programas hechos en lenguaje ensamblador son generalmente m谩s r谩pidos y consumen menos recursos del sistema.
Desventajas para no utilizarlo:
Demasiado complejo.
Comprensi贸n m谩s profunda de la computadora.
Errores m谩s frecuentes en el programa.
Mayor tiempo de codificaci贸n.
Dif铆cilmente portable, es decir, un c贸digo escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador.
Tipos de ensambladores:
Ensambladores cruzados: Se denominan as铆 a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendr谩n las computadoras donde se va a ejecutar el programa objeto producido.
Ensambladores residentes: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecuci贸n al programa objeto producido.
Micro ensambladores: Al programa que indica al int茅rprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar esta microprograma se llama micro ensamblador.
Macro ensambladores: Son ensambladores que permiten el uso de macroinstrucciones.
Ensambladores de una fase: Leen una l铆nea y la traducen directamente para producir una instrucci贸n de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucci贸n. Se construye la tabla de s铆mbolos a medida que aparecen las definiciones de variables, etiquetas, etc.
Ensambladores de dos fases: Realiza la traducci贸n en dos etapas: 1° fase leen el programa fuente y construyen la tabla de s铆mbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los s铆mbolos.
