0% encontró este documento útil (0 votos)
296 vistas

Compilacion e Interpretación en Python

Hay dos métodos para convertir un programa de alto nivel a lenguaje de máquina: compilación y interpretación. La compilación traduce el código una vez a un archivo ejecutable, mientras que la interpretación traduce el código cada vez que se ejecuta. Un intérprete lee el código línea por línea, verifica la sintaxis y semántica, y ejecuta las líneas, posiblemente encontrando errores después de ejecutar parte del código. No hay un método mejor; ambos enfoques tienen ventajas y desventaj

Cargado por

Juan Ito
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
296 vistas

Compilacion e Interpretación en Python

Hay dos métodos para convertir un programa de alto nivel a lenguaje de máquina: compilación y interpretación. La compilación traduce el código una vez a un archivo ejecutable, mientras que la interpretación traduce el código cada vez que se ejecuta. Un intérprete lee el código línea por línea, verifica la sintaxis y semántica, y ejecuta las líneas, posiblemente encontrando errores después de ejecutar parte del código. No hay un método mejor; ambos enfoques tienen ventajas y desventaj

Cargado por

Juan Ito
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

Compilación vs.

Interpretación
La programación de computadora es el acto de establecer una secuencia de instrucciones con la
cual se causará el efecto deseado. El efecto podría ser diferente en cada caso específico: depende
de la imaginación, el conocimiento y la experiencia del programador.

Por supuesto, tal composición tiene que ser correcta en muchos sentidos, tales como:

• Alfabéticamente: Un programa debe escribirse en una secuencia de comandos


reconocible, por ejemplo, el Romano, Cirílico, etc.
• Léxicamente: Cada lenguaje de programación tiene su diccionario y necesitas dominarlo;
afortunadamente, es mucho más simple y más pequeño que el diccionario de cualquier
lenguaje natural.
• Sintácticamente: Cada idioma tiene sus reglas y deben ser obedecidas.
• Semánticamente: El programa tiene que tener sentido.

Desafortunadamente, un programador también puede cometer errores en cada uno de los cuatro
sentidos anteriores. Cada uno de ellos puede hacer que el programa se vuelva completamente
inútil.

Supongamos que ha escrito correctamente un programa. ¿Cómo persuadimos a la computadora


para que la ejecute? Tienes que convertir tu programa en lenguaje máquina. Afortunadamente, la
traducción puede ser realizada por una computadora, haciendo que todo el proceso sea rápido y
eficiente.

Hay dos formas diferentes de transformar un programa de un lenguaje de programación de


alto nivel a un lenguaje de máquina:

COMPILACIÓN - El programa fuente se traduce una vez (sin embargo, esta ley debe repetirse
cada vez que se modifique el código fuente) obteniendo un archivo (por ejemplo, un archivo .exe si
el código está diseñado para ejecutarse en MS Windows) que contiene el código de la máquina;
ahora puedes distribuir el archivo en todo el mundo; el programa que realiza esta traducción se
llama compilador o traductor.

INTERPRETACIÓN - Tú (o cualquier usuario del código) puedes traducir el programa fuente


cada vez que se ejecute; el programa que realiza este tipo de transformación se denomina
intérprete, ya que interpreta el código cada vez que está destinado a ejecutarse; también significa
que no puede distribuir el código fuente tal como está, porque el usuario final también necesita
que el intérprete lo ejecute.

Debido a algunas razones muy fundamentales, un lenguaje de programación de alto nivel


particular está diseñado para caer en una de estas dos categorías.

Hay muy pocos idiomas que se pueden compilar e interpretar. Por lo general, un lenguaje de
programación se proyecta con este factor en la mente de sus constructores: ¿Se compilará o
interpretará?
¿Qué hace realmente el intérprete?
Supongamos una vez más que has escrito un programa. Ahora, existe como un archivo de
computadora: un programa de computadora es en realidad una pieza de texto, por lo que el
código fuente generalmente se coloca en archivos de texto. Nota: debe ser texto puro, sin
ninguna decoración, como diferentes fuentes, colores, imágenes incrustadas u otros medios. Ahora
tienes que invocar al intérprete y dejar que lea el archivo fuente.

El intérprete lee el código fuente de una manera que es común en la cultura occidental: de arriba
hacía abajo y de izquierda a derecha. Hay algunas excepciones: se cubrirán más adelante en el
curso.

En primer lugar, el intérprete verifica si todas las líneas subsiguientes son correctas (utilizando los
cuatro aspectos tratados anteriormente).

Si el compilador encuentra un error, termina su trabajo inmediatamente. El único resultado en


este caso es un mensaje de error. El intérprete le informará dónde se encuentra el error y qué lo
causó. Sin embargo, estos mensajes pueden ser engañosos, ya que el intérprete no puede seguir
tus intenciones exactas y puede detectar errores a cierta distancia de tus causas reales.

Por ejemplo, si intentas usar una entidad de un nombre desconocido, causará un error, pero el
error se descubrirá en el lugar donde se intenta usar la entidad, no donde se introdujo el nombre
de la nueva entidad.

En otras palabras, la razón real generalmente se ubica un poco antes en el código, por ejemplo, en
el lugar donde se tuvo que informar al intérprete de que usaría la entidad del nombre.

Si la línea se ve bien, el intérprete intenta ejecutarla (nota: cada línea generalmente se ejecuta por
separado, por lo que el trío "Lectura - Verificación - Ejecución", pueden repetirse muchas veces,
más veces que el número real de líneas en el archivo fuente, como algunas partes del código
pueden ejecutarse más de una vez).

También es posible que una parte significativa del código se ejecute con éxito antes de que el
intérprete encuentre un error. Este es el comportamiento normal en este modelo de ejecución.

Puedes preguntar ahora: ¿Cuál es mejor? ¿El modelo de "compilación" o el modelo de


"interpretación"? No hay una respuesta obvia. Si hubiera habido, uno de estos modelos habría
dejado de existir hace mucho tiempo. Ambos tienen sus ventajas y sus desventajas.

También podría gustarte