As pitón compilan ou interpretan?

Neste último apartado de cousas que forman parte da cultura Python (é decir, cousas que non necesitas para programar pero si para orientarte no proceloso mundo da Programación e saber onde estás cando traballes con Python) imos clasificalo dende o punto de vista de linguaxe de programación como interpretado ou compilado.

Se buscamos na wikipedia (onde si non? ;-) atoparemos na definición de Python que é multiparadigma, orientado a obxectos, imperativo, funcional, procedural...e ademáis interpretado. Imos aclarar só este concepto. O resto, en concreto o de orientado a obxectos será importante cando xa domines os algoritmos básicos e queiras facer os de complexidade media. Falamos diso no apartado final de Python (para nós): Para ler e copiar Python.

Se nos paramos a pensar o proceso que seguimos, o ordenador e nós, dende que nos plantexan un problema algorítmico ata que a CPU a resolve aportando uns datos de saída, podemos dividilo nos seguintes apartados (supoñemos un algoritmo único, que non se subdivide en outros algoritmos):

  1. O problema en sí mesmo (levará asociado unha estrutura de datos concreta).
  2. Pensar o algoritmo (leva asociado unhas estruturas de control e os recursos algorítmicos que coñezamos).
  3. Estrutura do algoritmo na linguaxe de programación que coñezamos, e en función dos tipos de datos a utilizar.
  4. Escritura do programa na linguaxe de programación (isto é o chamado código fonte).
  5. Tradución do programa a unha linguaxe que entenda a CPU para poder executalo.

Para algunhas persoas pode sorprender que a CPU non sexa capaz de "ler" a nosa linguaxe de programación, pero é así, necesita un proceso de tradución para poder executar un algoritmo/programa. Segundo sexa este proceso podemos clasificar as linguaxes de programación.

Clasificación operativa das linguaxes de programación.

As linguaxes de programación se clasifican segundo as entenda a CPU ou non como de:

  • Alto nivel: os programas que entenden os humanos (os que estuden, claro). Son todas as linguaxes que podamos usar en Programación: Python, Scratch, Java, C++...
  • Baixo nivel: os programas os entenden as máquinas, as CPU. Temos dous tipos:
    • Linguaxe máquina: linguaxe binaria que entenden as CPU.
    • Linguaxe ensamblador: linguaxe propia de cada CPU, será distinto en cada ordenador segundo o seu fabricante. Isto facilita o proceso de escritura/tradución.

O código máquina veñen sendo órdenes binarias de hardware do tipo: leva este byte a esta posición de memoria, suma o que teñas nestas dúas posicións de memoria...Isto só aprenden a programalo os electrónicos dixitais. O ensamblador é o mesmo pero máis sinxelo para programar.

Polo tanto, se non estamos programando circuitos dixitais teremos que facer un proceso de tradución do noso programa á código máquina ou ensamblador.

Clasificación das linguaxes de programación de alto nivel polo tipo de tradución.

As linguaxes se clasifican como:

  • Compiladas: traducen o programa completo e logo se executa. Exemplos: C, Java, PHP, Visual Basic...
  • Interpretadas: traducidas e executadas liña a liña. Exemplo: Python, Basic, folla de cálculo...

As dúas variantes teñen ventaxas:

  • as linguaxes compiladas teñen maior rapidez de execución (ou sexa, Python é máis lento que outras linguaxes por que non é compilada).
  • as linguaxes interpretadas son independentes da plataforma, terán un tamaño menor e unha depuración máis eficaz. Todo isto son ventaxas obvias de programar en Python.