Sistema de procesamiento de lenguaje en diseño de compilador

Introducción:
La computadora es una combinación inteligente de software y hardware. El hardware es simplemente una pieza de equipo mecánico y sus funciones están siendo compiladas por el software correspondiente. El hardware considera las instrucciones como carga electrónica, lo que equivale al lenguaje binario en la programación de software. El lenguaje binario tiene solo 0 y 1. Para aclarar, el código de hardware debe escribirse en formato binario, que es solo una serie de 0 y 1. Escribir dicho código sería una tarea inconveniente y complicada para los programadores de computadoras, por lo que escribimos programas en un lenguaje de alto nivel, que es conveniente para nosotros comprender y memorizar. Luego, estos programas se introducen en una serie de dispositivos y componentes del sistema operativo (SO) para obtener el código deseado que puede usar la máquina. Esto se conoce comosistema de procesamiento del lenguaje .

Sistema de procesamiento de lenguaje

Componentes del sistema de procesamiento del lenguaje:
ha visto en el diagrama anterior que hay los siguientes componentes. Discutámoslo uno por uno.

  • Preprocesador :
    el preprocesador incluye todos los archivos de encabezado y también evalúa si una macro (una macro es una pieza de código a la que se le da un nombre. Cada vez que se usa el nombre, un intérprete o compilador lo reemplaza por el contenido de la macro. El El propósito de las macros es automatizar la frecuencia utilizada para las secuencias o permitir una abstracción más poderosa). Toma el código fuente como entrada y produce código fuente modificado como salida. El preprocesador también se conoce como evaluador de macros, el procesamiento es opcional, es decir, si no se requiere ningún lenguaje que no admita #include y el procesamiento de macros .
     
  • Compilador :
    el compilador toma el código modificado como entrada y produce el código de destino como salida.

De entrada y salida

  • Ensamblador :
    el ensamblador toma el código de destino como entrada y produce un código de máquina localizable real como salida.
     
  • Enlazador :
    un enlazador o editor de enlaces es un programa que toma una colección de objetos (creados por ensambladores y compiladores) y los combina en un programa ejecutable.
     
  • Cargador :
    el cargador mantiene el programa vinculado en la memoria principal.
     
  • Código ejecutable
    es el código de bajo nivel y específico de la máquina y la máquina puede entenderlo fácilmente. Una vez que se realiza el trabajo del enlazador y el cargador, el código objeto finalmente lo convierte en el código ejecutable. 

Diferencias entre Linker/Loader :
Las diferencias entre linker y loader son las siguientes.

Enlazador Cargador
El enlazador es parte de los archivos de la biblioteca. El cargador es parte de un sistema operativo.
El enlazador realiza la operación de enlace. El cargador carga el programa para su ejecución.
También conecta funciones definidas por el usuario a bibliotecas definidas por el usuario. Cargar un programa implica leer el contenido de un archivo ejecutable en la memoria.

Funciones del cargador:

  1. Asignación
    se utiliza para asignar espacio para la memoria en un programa objeto. Un traductor no puede asignar espacio porque puede haber una superposición o un gran desperdicio de memoria.
     
  2. Vinculación
    combina dos o más programas de objetos diferentes y resuelve el contexto simbólico entre cubiertas de objetos. También proporciona la información necesaria para permitir la referencia entre ellos. La vinculación es de dos tipos de la siguiente manera.
    Enlace estático :
    copia todas las rutinas de la biblioteca utilizadas en el programa en una imagen ejecutable. Esto requiere más espacio en disco y memoria.
    Vinculación Dinámica :
    Resuelve símbolos indefinidos mientras se ejecuta un programa. Esto significa que el código ejecutable todavía tiene símbolos sin definir y una lista de objetos o bibliotecas que proporcionarán definiciones para los mismos.
     
  3. Reasignación: 
    este objeto modifica el programa para que pueda cargarse en una dirección diferente de la ubicación especificada originalmente y para acomodar todas las direcciones entre ubicaciones dependientes.
     
  4. Carga: 
    físicamente, mantiene las instrucciones de la máquina y los datos en la memoria para su ejecución.

Publicación traducida automáticamente

Artículo escrito por tanushree7252 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *