Generalidades Programación

Traduciendo el código fuente

PorRoberto C. González
Para: Ethical Hack

Para realizar la traducción mencionada en la sección anterior, nos valemos de unos programas especiales, son programas que permiten crear otros programas. Podemos destacar los:

  • Ensambladores
  • Intérpretes
  • Compiladores
  • Máquinas Virtuales (VM)
Ensambladores, Intérpretes , Compiladores y VM
Ensambladores, Intérpretes , Compiladores y VM

Ensambladores

Son programas que toman el código fuente escrito en lenguaje ensamblador y a partir de él generan el código máquina (código objeto), que posteriormente un programa llamado enlazador o linker tomará y «mezclará » con otras librerías para generar un archivo con código ejecutable. No está por demás mencionar que este código es el más eficiente, rápido y compacto que se puede generar a partir de un código fuente. Y también el código generado es el más dependiente de la plataforma utilizada.

Intérpretes

Aunque en la actualidad pueden considerarse un caso particular de los compiladores, primero surgieron los intérpretes, por esta razón tiene sentido considerarlos como una categoría independiente.

Un Intérprete o traductor es un programa que traduce el código fuente instrucción por instrucción, de modo que podremos obtener inmediatamente la ejecución de dicha instrucción sin tener la necesidad de terminar todo el programa para poder observar el resultado.

De este modo podríamos considerar que un intérprete es un programa que de forma interactiva nos permite ir traduciendo el código fuente en su equivalente en código máquina, instrucción por instrucción

Lenguajes interpretados

Normalmente los lenguajes interpretados son más lentos que los compilados, pero en la actualidad existen soluciones para empacar y optimizar el código interpretado mejorando el rendimiento de un programa. Algunos de los lenguajes interpretados más representativos son: Java, Basic, Python, Ruby, Bash, PHP, etc.

Intérprete
Intérprete

Probablemente la principal ventaja de los lenguajes intepretados es que son multiplataforma, por lo que se pueden portar casi sin ningún problema entre una plataforma y otra (normalmente correrán en Windows, Unix y Android sin requerir modificaciones. Algunos autores mencionan que son más rápidos que los compilados, lo cual no es cierto, quienes argumentan esto olvidan que la interpretación línea a línea consume tiempo de procesador que sumando, hace más lenta la ejecución de los mismos.

Compiladores

Un compilador es un programa informático que tiene la tarea de Traducir el código fuente escrito en un lenguaje de programación y transformarlo en su equivalente en código máquina, al proceso de traducción se le denomina Compilación.

  1. El compilador toma el código fuente que hemos escrito, analiza la estructura del programa, la semántica y la sintaxis, si no hay ningún error genera el código objeto correspondiente.
  2. En una segunda etapa enlaza las librerías y todos los elementos adicionales que requiere el programa para poder comunicarse e interactuar con el sistema operativo. Quien se encarga de esta tarea se denomina un linker (Enlazador).
  3. Finalmente se genera un archivo ejecutable el cual puede utilizarse de forma independiente en cualquier sistema compatible.

El código generado por los compiladores es más rápido que el obtenido por un intérprete, y puede además optimizarse y condicionarse dependiendo de varios factores que nos interese. Cabe señalar que hay compiladores gratuitos y con costo, normalmente los compiladores de pago son más eficientes y nos ofrecen más y mejor rendimiento en los programas obtenidos. Pero para aprendizaje y proyectos no críticos cualquier compilador gratuito es suficiente.

Algunos de los lenguajes compilados más representativos son: Java, C++, Objective C, C#, Fortran, Pascal, Visual Basic, Ada, RPG, Delphi, etc.

Observa que Java se incluyó en la categoría de lenguajes tanto interpretados como compilados, esta es una situación que cada día se hace más común, cuando revisemos el concepto de máquina virtual, abordaré este caso.

Librerías y dependencias

Observa que en repetidas ocasiones se hace referencia al término librerías y dependencias, esto no es otra cosa que un conjunto de archivos que contienen información adicional que un linker o enlazador incluye junto con nuestros programas (normalmente el forma de código objeto o ByteCode) para que se pueda generar un archivo ejecutable que el Sistema Operativo lo pueda ejecutar.

Este conjunto de librerías y dependencias normalmente se incluyen con el entorno de desarrollo utilizado, en algunos casos algunas librerías se encuentran directamente el sistema operativo utilizado y existen además bibliotecas externas ya sea gratuitas como de paga. El tema es extenso, vale la pena que amplíes tu búsqueda.

Librerías y dependencias
Librerías y dependencias

Si tienes alguna duda que no se responde en este documento, por favor plantea tu pregunta para poder responderte. O escribe directamente a soporte@ehack.mx



Referencias

  • Por Roberto C. González

Fuente Imágenes


Licencia Creative Commons
  
Traduciendo el código fuente, por Roberto C. González. Se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional. 
©2017 - 2025, Ethical Hack, Todos los derechos reservados sobre el contenido propio.

eHack Blog

About Author

Leave a comment

También te podría gustar...

C++ Programación

Presentación: Tutorial de C++

Bienvenido a este tutorial de lenguaje C++, está pensado para usuarios que nunca han programado y para usuarios que no
C++ Programación

Lenguaje C++ – Introducción

Presento algunas razones porqué empezar con C++ y una breve descripción histórica del lenguaje. Además algunos compiladores de C++