LENGUAJE ENSAMBLADOR,LENGUAJE DE MÁQUINA,LENGUAJE INTERPRETADO,LENGUAJE COMPILADO
LENGUAJE ENSAMBLADOR
LENGUAJE COMPILADO
El lenguaje ensamblador, o assembler (en inglés assembly language y
la abreviación asm), es un lenguaje de programación de bajo nivel. Consiste en un conjunto
de mnemónicos que
representan instrucciones básicas para los computadores, microprocesadores, microcontroladores y
otros circuitos integrados programables.
Implementa una representación simbólica de los códigos de máquina binarios y otras
constantes necesarias para programar una arquitectura de computador y constituye la
representación más directa del código máquina específico para cada arquitectura
legible por un programador. Cada arquitectura de procesador tiene su propio
lenguaje ensamblador que usualmente es definida por el fabricante de hardware,
y está basada en los mnemónicos que simbolizan los pasos de procesamiento
(las instrucciones), los registros del procesador, las posiciones
de memoria y otras características del
lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o
virtual). Esto está en contraste con la mayoría de los lenguajes de
programación de alto nivel, que idealmente son portátiles.
Un programa utilario llamado ensamblador es
usado para traducir sentencias del lenguaje ensamblador al código de máquina
del computador objetivo. El ensamblador realiza una traducción más o
menos isomorfa (un mapeo de uno a uno) desde las
sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en
contraste con los lenguajes de alto nivel, en los cuales una sola declaración
generalmente da lugar a muchas instrucciones de máquina.
Muchos
sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el
desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda
depuracion. Particularmente, la mayoría de
los ensambladores modernos incluyen una facilidad de macro(descrita más
abajo), y se llaman macro ensambladores.
Fue
usado principalmente en los inicios del desarrollo de software,
cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos
eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y
de investigación, especialmente cuando se requiere la manipulación directa
de hardware,
alto rendimiento, o un uso de recursos controlado y reducido. También es
utilizado en el desarrollo de controladores deprocesadores (en
inglés, device drivers) y
en el desarrollo de sistemas operativos, debido a la necesidad del acceso
directo a las instrucciones de la máquina. Muchos dispositivos programables
(como los microcontroladores) aún cuentan con el ensamblador como la única
manera de ser manipulados.
LENGUAJE DE MÁQUINA
Es el sistema de códigos directamente
interpretable por un circuito microprogramable, como el microprocesador de
una computadora o el microcontrolador de
un autómata. Este lenguaje está compuesto por
un conjunto de instrucciones que determinan
acciones a ser tomadas por la máquina. Un programa consiste en una cadena de
estas instrucciones más un conjunto de datos sobre el cual se trabaja. Estas
instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios
de flujo causados por el propio programa o eventos externos. El lenguaje de
máquina es específico de la arquitectura de la máquina aunque el
conjunto de instrucciones disponibles pueda ser similar entre arquitecturas
distintas.
Los
circuitos micro programables son digitales,
lo que significa que trabajan con dos únicos niveles de tensión. Dichos
niveles, por abstracción, se simbolizan con los números 0 y 1, por eso el
lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las
teorías del álgebra booleana y del sistema
binario en el diseño de este tipo de circuitos y en su
programación.
LENGUAJE INTERPRETADO
Es un programa informático capaz de analizar y ejecutar otros
programas. Los intérpretes se diferencian de los compiladores o de
los ensambladores en que mientras estos traducen un programa desde su
descripción en un lenguaje de programación al código de máquinas del
sistema, los intérpretes sólo realizan la traducción a medida que sea
necesaria, típicamente, instrucción por instrucción, y normalmente no guardan
el resultado de dicha traducción.
Usando
un intérprete, un solo archivo fuente puede producir resultados iguales incluso
en sistemas sumamente diferentes (ejemplo. Una PC y una PlayStation 4).
Usando un compilador, un solo archivo fuente puede producir resultados iguales
solo si es compilado a distintos ejecutables específicos a cada sistema.
Es un lenguaje de
programación cuyas implementaciones son
normalmente compiladores (traductores que generan código de máquina a
partir del código fuente) y no intérpretes (ejecutores paso a
paso del código fuente, donde no se lleva a cabo una traducción en la
preejecución).
El
término es un tanto vago. En principio, cualquier lenguaje puede ser
implementado con un compilador o un intérprete. Sin embargo, es cada vez más
frecuente una combinación de ambas soluciones: un compilador puede traducir el
código fuente en alguna forma intermedia (muchas veces llamado Bytecode),
que luego se pasa a un intérprete que lo ejecuta.
Comentarios
Publicar un comentario