Procesadores de lenguaje –
Los compiladores, intérpretes, traducen programas escritos en lenguajes de alto nivel en código de máquina que entiende una computadora. Y los ensambladores traducen programas escritos en lenguaje ensamblador o de bajo nivel a código de máquina. En el proceso de compilación, hay varias etapas. Hay herramientas disponibles para ayudar a los programadores a escribir código sin errores.
El lenguaje ensamblador depende de la máquina, pero los mnemotécnicos utilizados para representar instrucciones en él no son directamente comprensibles para la máquina y el lenguaje de alto nivel es independiente de la máquina. Una computadora entiende las instrucciones en código de máquina, es decir, en forma de 0 y 1. Es una tarea tediosa escribir un programa de computadora directamente en código de máquina. Los programas están escritos principalmente en lenguajes de alto nivel como Java, C++, Python, etc. y se denominan código fuente. Este código fuente no puede ser ejecutado directamente por la computadora y debe convertirse a lenguaje de máquina para ser ejecutado. Por lo tanto, se utiliza un software de sistema de traducción especial para traducir el programa escrito en un lenguaje de alto nivel a código de máquina que se llama Procesador de lenguaje y el programa después se traduce a código de máquina (programa objeto/código objeto).
Los procesadores de lenguaje pueden ser cualquiera de los siguientes tres tipos:
1. Compilador:
el procesador de lenguaje que lee el programa fuente completo escrito en lenguaje de alto nivel de una sola vez y lo traduce a un programa equivalente en lenguaje de máquina se denomina compilador. Ejemplo: C, C++, C#, Java.
En un compilador, el código fuente se traduce correctamente a código objeto si no tiene errores. El compilador especifica los errores al final de la compilación con números de línea cuando hay errores en el código fuente. Los errores deben eliminarse antes de que el compilador pueda volver a compilar correctamente el código fuente.
2. Ensamblador:
El Ensamblador se utiliza para traducir el programa escrito en lenguaje ensamblador a código de máquina. El programa fuente es una entrada de un ensamblador que contiene instrucciones en lenguaje ensamblador. La salida generada por el ensamblador es el código objeto o código de máquina comprensible para la computadora. Ensamblador es básicamente la primera interfaz que puede comunicar a los humanos con la máquina. Necesitamos un Ensamblador para llenar el vacío entre humanos y máquinas para que puedan comunicarse entre sí. El código escrito en lenguaje ensamblador es una especie de mnemónicos (instrucciones) como ADD, MUL, MUX, SUB, DIV, MOV, etc. y el ensamblador básicamente puede convertir estos mnemotécnicos en código binario. Aquí, estos mnemotécnicos también dependen de la arquitectura de la máquina.
Por ejemplo, la arquitectura de Intel 8085 e Intel 8086 son diferentes.
3. Intérprete:
la traducción de una sola instrucción del programa fuente al código de máquina la realiza un procesador de lenguaje y se ejecuta inmediatamente antes de pasar a la siguiente línea, lo que se denomina intérprete. Si hay un error en la declaración, el intérprete finaliza su proceso de traducción en esa declaración y muestra un mensaje de error. El intérprete pasa a la siguiente línea para su ejecución solo después de eliminar el error. Un Intérprete ejecuta directamente instrucciones escritas en un lenguaje de programación o secuencias de comandos sin convertirlas previamente a un código de objeto o código de máquina.
Ejemplo: Perl, Python y Matlab.
Diferencia entre compilador e intérprete:
Compilador | Interprete |
---|---|
Un compilador es un programa que convierte el código fuente completo de un lenguaje de programación en un código de máquina ejecutable para una CPU. |
Un intérprete toma un programa fuente y lo ejecuta línea por línea, traduciendo cada línea a medida que llega. |
El compilador tarda una gran cantidad de tiempo en analizar todo el código fuente, pero el tiempo de ejecución general del programa es comparativamente más rápido. |
Un intérprete tarda menos tiempo en analizar el código fuente, pero el tiempo de ejecución general del programa es más lento. |
El compilador genera el mensaje de error solo después de escanear todo el programa, por lo que la depuración es comparativamente difícil ya que el error puede estar presente en cualquier parte del programa. | Su Depuración es más sencilla ya que continúa traduciendo el programa hasta que se resuelve el error. |
El compilador requiere mucha memoria para generar códigos de objetos. | Requiere menos memoria que un compilador porque no se genera código objeto. |
Genera código objeto intermedio. | No se genera ningún código de objeto intermedio. |
Para fines de seguridad, el compilador es más útil. | El intérprete es un poco vulnerable en caso de seguridad. |
Ejemplos: C, C++, Java | Ejemplos: Python, Perl, JavaScript, Ruby |
Publicación traducida automáticamente
Artículo escrito por aishwaryaagarwal2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA