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):
- O problema en sí mesmo (levará asociado unha estrutura de datos concreta).
- Pensar o algoritmo (leva asociado unhas estruturas de control e os recursos algorítmicos que coñezamos).
- Estrutura do algoritmo na linguaxe de programación que coñezamos, e en función dos tipos de datos a utilizar.
- Escritura do programa na linguaxe de programación (isto é o chamado código fonte).
- 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 ven sendo un conxunto de ordes 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.