lunes, septiembre 12, 2005

Compiladores e interpretes


El tema surgió con una discusión amigable con Hector. Según el:
  • Un compilador traducía de un lenguaje a otro.
  • Un interprete ejecutaba con sólo una pasada (el código)

Según yo:
  • El compilador traducía, pero de un lenguaje a lenguaje maquina.
  • El interprete no tiene porque dar una sola pasada.
Mirando en la wikipedia las definiciones de compilador e interprete (o las mas completas de la edición inglesa: compiler y interpreter), la cosa no queda clara. Se inclinaba mas a lo que decía Hector; pero esas definiciones tienen contradicciones.
Por lo tanto decidimos tomar como referencia lo de la asignatura que tuvimos en cuarto de carrera de Ingeniería Informática, Procesadores del Lenguaje. Según un cuaderno técnico que yo tenía(Conceptos básicos de traductores, compiladores e interpretes. Juan Manuel Cueva Lovelle. 3ª Edición, Octubre 1992. Cuadernos Didácticos de la Universidad de Oviedo.):

  • Traductor: programa que procesa un texto fuente y genera un texto objeto. El traductor está escrito en un lenguaje de implementación (LI). El texto fuente esta escrito en un lenguaje fuente (LF). El texto objeto está escrito en un lenguaje objeto (LO).

  • Ensamblador: Traductor cuyo LF es el lenguaje ‘ensamblador’ y el LO es el ‘lenguaje maquina’.

  • Compilador: Traductor que transforma textos fuente de lenguajes de alto nivel a lenguaje maquina o a lenguaje ensamblador.

  • Interprete: Traduce el texto fuente simultáneamente a su ejecución, coexistiendo en memoria el programa fuente y el programa intérprete. La compilación ocurre en tiempo de ejecución.


Según uno de Hector (Una Edición posterior: Conceptos básicos de traductores, compiladores e interpretes. Juan Manuel Cueva Lovelle. 4ª Edición, Diciembre 1994. Cuadernos Didácticos de la Universidad de Oviedo):

  • Compilador (Página 10): Traductor que transforma textos fuente de lenguajes de alto nivel a lenguajes de bajo nivel.

Según estas definiciones en lo del interprete yo tenía razón, y en lo del compilador, realmente ni él ni yo (exactamente).

No hay comentarios: