Diferencia principal
La diferencia entre ensamblador y compilador es que el compilador toma el código fuente y lo traduce al código ensamblador, mientras que el ensamblador toma el código ensamblador generado por el compilador y lo traduce al código máquina.
Ensamblador frente a compilador
Dos términos que juegan el papel más importante en la ejecución del programa son compilador y ensamblador. El trabajo del compilador es tomar el código fuente preprocesado y traducirlo al código ensamblador. Luego, el trabajo de un ensamblador es tomar el código ensamblador del compilador y traducirlo al código de máquina. Si hablamos de la principal diferencia, entonces la principal diferencia entre ensamblador y compilador es que el compilador toma el código fuente y lo traduce al código ensamblador, mientras que el ensamblador toma el código ensamblador generado por el compilador y lo traduce al código máquina. El compilador lee el programa que está escrito en un idioma fuente.El compilador es un programa de computadora que traduce el código fuente al lenguaje ensamblador, y este código en lenguaje ensamblador se envía al ensamblador. Hay tipos de compiladores como el compilador de paso único, el compilador de paso múltiple, el compilador de carga y ejecución y el compilador de depuración y optimización. El ensamblador toma el código ensamblador generado por el compilador y lo traduce al código máquina. El trabajo principal del ensamblador es tomar los datos como entrada y formar el código de máquina reubicable. Hay un compilador disponible que realiza la tarea del ensamblador y genera directamente el código máquina, pero eso no significa que no podamos estudiar las funciones del ensamblador.Existe una gran diferencia entre el código ensamblador y el código máquina. Todos estos diferentes tipos de compiladores realizan diferentes funciones y son diferentes en función del trabajo. El código ensamblador es la versión nemotécnica del código máquina, mientras que el código máquina utiliza los códigos binarios para la representación de operaciones de una dirección de memoria. Se preforman dos pasadas en ensamblador que son la primera pasada que identifica el código de ensamblaje y almacena ese código en la tabla de símbolos y luego la segunda pasada que escanea el código nuevamente y realiza las operaciones en el código.Hay dos pasos en los que se realiza la compilación, un paso es la parte de análisis en la que el código fuente se divide en pedazos y se realiza la representación intermedia. En la parte de síntesis, el código de destino forma la representación intermedia. Hay fases del compilador que son un analizador léxico, analizador de sintaxis, analizador semántico, generación de código intermedio, optimizador de código, generador de código, tabla de símbolos y manejador de errores.
Cuadro comparativo
¿Qué es un compilador?
El compilador lee el programa que está escrito en un idioma fuente. El compilador es un programa de computadora que traduce el código fuente al lenguaje ensamblador, y este código en lenguaje ensamblador se envía al ensamblador. Hay tipos de compiladores como el compilador de paso único, el compilador de paso múltiple, el compilador de carga y ejecución y el compilador de depuración y optimización. Todos estos diferentes tipos de compiladores realizan diferentes funciones y son diferentes en función del trabajo. Hay dos pasos en los que se realiza la compilación, un paso es la parte de análisis en la que se descompone el código fuente en pedazos y se realiza la representación intermedia. En la parte de síntesis, el código de destino forma la representación intermedia. Hay fases del compilador que son un analizador léxico, analizador de sintaxis, analizador semántico, genera código intermedio,
El ensamblador y el compilador no son los mismos procesos, pero hacen el mismo trabajo, es decir, generan el código objeto de un programa fuente y lo entregan al vinculador. El proceso principal del enlazador es tomar el código del objeto y generar el código ejecutable para el programa una vez finalizado este trabajo del enlazador, y asigna el código al cargador. Hay algunas bibliotecas integradas y archivos de encabezado en un lenguaje de alto nivel. Hay algunas funciones de biblioteca que se definen en bibliotecas integradas. Estas funciones están vinculadas a una función de biblioteca por el enlazador. Se informa al compilador en el caso de que no se encuentre la función de biblioteca de la función en particular. Cuando hay un programa grande, se divide en programas más pequeños que se conocen como módulos. Los módulos de objeto se generan cuando estos módulos se compilan o ensamblan. Linker tiene que combinar todo el programa. Hay dos tipos de enlazadores, uno es el editor de enlaces que genera un módulo ejecutable reubicado y otro es un enlazador dinámico que enlaza los módulos externos hasta que se genera el módulo de carga. El programa que se debe ejecutar está presente en la memoria principal. Cargador, carga el archivo ejecutable en el sistema operativo. Loader asigna el espacio de memoria al módulo ejecutable en la memoria principal. Hay tres tipos de cargador que son: cargador absoluto, cargador reubicable y carga dinámica en tiempo de ejecución. Estos tres cargadores tienen diferentes enfoques de carga que son el enfoque de carga absoluta, el enfoque de carga reubicable y el enfoque de carga de tiempo de ejecución dinámico. El cargador absoluto carga el archivo ejecutable del programa en la misma ubicación de la memoria principal. En cargador absoluto, el programador debe conocer la asignación. El cargador de reubicación compila o ensambla la dirección de memoria principal real. Cargador de tiempo de ejecución dinámico, el programa de memoria absoluta se genera cuando se ejecuta una instrucción.
¿Qué es Assembler?
El ensamblador toma el código ensamblador generado por el compilador y lo traduce al código máquina. El trabajo principal del ensamblador es tomar los datos como entrada y formar el código de máquina reubicable. Hay un compilador disponible que realiza la tarea del ensamblador y genera directamente el código máquina, pero eso no significa que no podamos estudiar las funciones del ensamblador. Existe una gran diferencia entre el código ensamblador y el código máquina. El código ensamblador es la versión nemotécnica del código máquina, mientras que el código máquina utiliza los códigos binarios para la representación de operaciones de la dirección de memoria. Dos pasadas son preformas en ensamblador que es la primera pasada que identifica el código de ensamblaje y almacena ese código en la tabla de símbolos y luego la segunda pasada que escanea el código nuevamente y realiza las operaciones en el código.
Diferencias clave
- Assembler es un programa de computadora que toma el código ensamblador generado por el compilador y lo traduce al código de máquina, mientras que Compiler es un programa de computadora que toma el código fuente y lo traduce al código ensamblador.
- El ensamblador ingresa el código en lenguaje ensamblador mientras que el compilador ingresa el código fuente.
- Las fases del ensamblador son la primera y una segunda fase . Las fases del compilador son un analizador léxico, analizador de sintaxis, analizador semántico, código intermedio generado, optimizador de código, generador de código, tabla de símbolos y manejador de errores.
- La salida del ensamblador es código binario, mientras que la salida del compilador es una versión nemotécnica del código.