¿Cuáles son las relaciones entre la máquina, el ensamblaje y los lenguajes de alto nivel?

  • Nivel alto (C ++, Java, Linux Bash Script, etc. ) es el código que tradicionalmente escribiría hoy en algún tipo de IDE, editor de texto, etc.
    • Compilar. Una vez que haya escrito ese código, su “compilador” compilará su código y lo convertirá en lenguaje ensamblador / máquina (ML). La mayoría de las máquinas convertirán automáticamente ese código ML en; que en ese momento se ejecutaría. Cuando digo “ejecutado” me refiero a que su declaración de impresión “Hola mundo” acaba de aparecer en la consola.

En caso de que estés confundido, pregúntate esto. ¿Puedo escribir ML y ejecutarlo? ¡Sí, por supuesto!

ML es simplemente otro lenguaje como C ++, Java, etc. La principal diferencia es que la sintaxis es complicada y no necesariamente tan intuitiva de escribir. Siendo este el caso, Stroustrop y nuestros otros autores de idiomas reconocidos han estado creando lenguajes de alto nivel … también conocidas como abstracciones de código de nivel superior que hacen que sea mucho más sencillo escribir. Entonces piense en compilar como convertir una línea de C ++ (cout << "Hello") a (System.out.println ("Hello") en Java. En lugar de Java, su máquina la convierte a ML.

Así que definitivamente podrías escribir instrucciones de ML, lo más probable es que tus instrucciones nunca sean tan eficientes. La razón por la cual los compiladores varían y compiten es que tienen diferentes algoritmos de optimización que apuntan a compilar el código de manera diferente. Es decir, puede haber 100 formas diferentes de escribir “cout << 'hello'” en ML, pero el compilador del tour intentará elegir la que utilice la menor cantidad de potencia de procesamiento. Todo esto hace que la mayoría de los codificadores no escriban ML.

La mayoría de los programadores no hornean todo el pastel, sino que lo decoran con glaseado. La formación de hielo es extremadamente importante ya que las personas del mundo necesitan la formación de hielo. Pero, hay mucho más bajo la guinda que muchos programadores nunca hornearán.

¡Espero que esto ayude! Si no, hágamelo saber y voy a renovar!

Código de máquina: las instrucciones binarias que la CPU realiza para realizar su función.

Ensamblaje: un lenguaje legible / para el usuario que se traduce más o menos directamente al código de máquina

Lenguaje de alto nivel = Cualquier cosa más allá de eso. Podría decirse que C se considera de bajo nivel, pero no hay un límite claro.

El lenguaje de máquina es el más cercano al metal que se puede obtener con el software. En 1983 escribí un programa tic-tac-toe usando lenguaje de máquina en una computadora con 4K de memoria que tenía un teclado hexadecimal para la entrada y una pantalla LED para la salida. Para programar la computadora requerida, escribo el código HEX en el byte del byte del teclado. Me tomó horas programar el sencillo juego de tic-tac-toe. El código parecía algo así: A0 CC B0 19 20 3C 4D FF FF 08 AA

El lenguaje ensamblador es una abstracción del código de máquina. Se parece a esto:

SEGMENTO DE DATOS
DATOS TERMINADOS
SEGMENTO DE CODIGO
ASUME DS: DATOS, CS: CÓDIGO
COMIENZO :
MOV AX, DATOS
MOV DS, AX

MOV BL, 00H
MOV CH, 00H
MOV CL, 0AH

L1: MOV DH, 00H
MOV DL, BL
AÑADIR DL, ‘0’
MOV AH, 02H
INT 21H
INC BL
LOOP L1

MOV AH, 4CH
INT 21H
CÓDIGO FINAL
Terminar inicio

Podría decirse que el siguiente lenguaje que resume el lenguaje ensamblador es C, que se parece a esto:

#include

int main ()
{
int n, revertir = 0;
printf (“Introduzca un número para invertir \ n”);
scanf (“% d”, & n);
mientras (n! = 0)
{
reversa = reversa * 10;
revertir = revertir + n% 10;
n = n / 10;
}
printf (“El reverso del número ingresado es =% d \ n”, reverso);
devuelve 0;
}

Luego tenemos un lenguaje 4GL como PHP que está escrito en C que se ve así:

declare (strict_types = 1);
$ get = file_get_contents (__ DIR__. ‘/character.xml’);
$ xml = simplexml_load_string ($ get);
$ json = json_encode ($ xml);
$ arr = json_decode ($ json, true);
$ character = $ arr [‘public’] [‘character’];

La relación entre idiomas es por abstracción. Cada idioma es que cuanto más lejos del metal se obtiene, más “legible para los humanos” se vuelve el idioma. Esto viene con un costo de rendimiento. Con la velocidad de los procesadores actuales, este costo es insignificante.

Sorprendentemente, el lenguaje ensamblador ha ganado popularidad recientemente.