Hay muchas maneras de distinguir los lenguajes de programación. Para empezar, caen en diferentes paradigmas: funcional, orientado a objetos y más.

También puede clasificar un lenguaje de programación por su método de traducción, algo que tiene un efecto importante en el rendimiento de un lenguaje. Los lenguajes de programación compilados suelen ser más rápidos que los interpretados. Entonces, en situaciones como el desarrollo de juegos que exigen velocidad, los desarrolladores tienden a usar lenguajes compilados.

¿Qué es la traducción?

El proceso de traducción convierte el código escrito por un programador en un código de máquina que una computadora puede ejecutar. El código de máquina es un tipo de lenguaje de bajo nivel, que tiene unos y ceros. Entonces, lo que hace el traductor es convertir el código de alto nivel que creas en un lenguaje de programación a código de máquina.

Sin traductores, tendría que codificar en lenguaje de máquina. Cada lenguaje de programación de alto nivel que conoce utiliza uno de los tres métodos de traducción: un compilador, un intérprete o un híbrido de los dos.

instagram viewer

¿Qué es un compilador?

Un compilador es un software que convierte el código fuente escrito en un lenguaje de alto nivel en código de bajo nivel para su ejecución.

El diagrama anterior representa un compilador en su forma más básica. El compilador tiene varias fases. Cada fase transforma el código de un estado a otro. El objetivo de cada fase del compilador es crear una salida que sea más fácil de manipular para la fase siguiente. La estructura general de un compilador es la siguiente:

  • Escáner: esta fase toma un flujo de caracteres y los agrupa en tokens que representan identificadores, cadenas literales, etc.
  • Analizador: esta fase agrupa los tokens en función de la gramática del lenguaje de programación de origen. Crea un árbol de sintaxis abstracta que es una colección de expresiones que componen el programa.
  • Semántica: esta fase realiza un análisis semántico sobre el árbol de sintaxis abstracta (AST). Utiliza las reglas del idioma de origen para agregar significado al asignar tipos a las expresiones AST y verificar su validez. El AST se convierte entonces en una representación intermedia.
  • Representación intermedia (IR): esta fase convierte el código fuente del programa original en código de máquina. Produce una versión simplificada del código ensamblador. El IR utiliza uno o más optimizadores para mejorar el código IR y recopilar información para la máquina en la que se ejecuta. Un optimizador puede hacer que un programa sea más eficiente, más rápido o incluso más pequeño.
  • Generador de código: esta fase consume el código IR optimizado y lo convierte en código de máquina.

¿Qué lenguajes de programación usan compiladores?

Algunos lenguajes de programación compilados populares incluyen:

  • C
  • C++
  • Vamos
  • ada
  • Fortran
  • COBOL
  • Ceceo
  • C objetivo
  • Rápido

Una ventaja de usar un lenguaje compilado es que identifica errores durante la compilación. Esto le permite corregir dichos errores y luego intentar compilar el programa nuevamente. Los lenguajes compilados tienen menos probabilidades de fallar una vez que comienzan a ejecutarse. Estos lenguajes ni siquiera generarán un programa para ejecutar si el código fuente tiene errores de sintaxis. Pero los errores semánticos y otras formas de error en tiempo de ejecución lo superarán.

Los lenguajes compilados también se ejecutan muy rápidamente después de compilarse.

¿Qué es un intérprete?

Un intérprete es un programa que traduce y ejecuta una sola línea de código a la vez. Este proceso se repite hasta que el intérprete llega a la última línea de código en el programa o script dado.

Como puede ver en el diagrama anterior, un intérprete toma dos entradas. Primero, toma todo el código fuente (programa). Luego lee la primera línea del programa (como entrada), la traduce y la ejecuta. Si esa línea se ejecuta correctamente, pasa a la siguiente línea en el programa o script.

A diferencia de un compilador, un intérprete no traduce un programa completo a código de máquina. En su lugar, analiza y analiza una línea de código determinada antes de ejecutarla. Un intérprete debe comenzar a ejecutar un programa, especialmente uno más grande, antes de que un compilador haya terminado de traducirlo.

¿Qué lenguajes de programación usan intérpretes?

Algunos lenguajes de programación populares interpretados incluyen:

  • Pitón
  • JavaScript
  • Perl
  • MATLAB
  • BÁSICO

Aunque un intérprete comienza a ejecutar código más rápido, aún fallará si encuentra un error. Como programador, deberá corregir dicho error y reiniciar el programa. Este evento ocurre cada vez que el intérprete encuentra un nuevo error. Algunos errores pueden permanecer latentes si se relacionan con un conjunto poco común de circunstancias. En esos casos, Las pruebas son más importantes que nunca..

Los intérpretes suelen ser más fáciles de desarrollar que los compiladores, y sus programas son más portátiles por diseño.

¿Qué es la traducción híbrida?

La traducción híbrida emplea un compilador y un intérprete. La traducción híbrida compila el código fuente de alto nivel a una forma de nivel inferior, como el código de bytes. Luego usa un intérprete para ejecutar ese código de bytes.

La traducción híbrida puede diferir de un lenguaje de programación a otro, pero utilizará esta estructura general. Uno de los lenguajes de programación más populares que utilizan traducción híbrida es Java. El compilador de Java traduce su código fuente a Código de bytes de la máquina virtual Java (JVM). Luego, el intérprete traduce el código de bytes de JVM a código de máquina.

¿Qué lenguajes de programación utilizan la traducción híbrida?

Algunos lenguajes de programación híbridos populares incluyen:

  • Java
  • C#
  • básico visual
  • Erlang
  • F#

Con la traducción híbrida, obtiene lo mejor de ambos mundos. Compilar el código primero le permite resolver los errores lo antes posible. El código de bytes que crean los compiladores híbridos es más fácil de interpretar que el código fuente de un programa de alto nivel.

El valor de conocer los diferentes métodos de traducción

Debe comprender el método de traducción específico que utiliza un idioma, especialmente si lo está utilizando para un nuevo proyecto. Un método de traducción de lenguaje es una parte importante de la identidad de un lenguaje de programación. Puede afectar la forma en que distribuye su programa y cómo lo ejecutarán los usuarios.

Cada enfoque de traducción tiene sus propios méritos. Los principales lenguajes de programación como C++, Python y Java utilizan diferentes métodos de traducción. Junto con el paradigma de un idioma, su método de traducción es una de las características más importantes que debe tener en cuenta.

Hay varios paradigmas que un lenguaje de programación puede utilizar. La mayoría de los principales lenguajes de programación son lenguajes multiparadigmáticos; apoyan el uso de dos o más paradigmas distintos. Tres de los paradigmas más populares son la programación imperativa, orientada a objetos y funcional.