|
Programación - ¿Que lenguaje es mejor?
Esta es la pregunta estrella que todos nos hacemos, ¿que
lenguaje aprendo?, hay muchas clasificaciones que se podría hacer
de los lenguajes de programación diferencia, la proximidad de
éstos al código que es directamente entendido por el ordenador,
es decir, al código máquina. Así,
se suele diferenciar entre lenguajes de alto
nivel y lenguajes de bajo nivel.
En el trabajo con PIC también vamos a distinguir entre estos dos
niveles. Un lenguaje de alto nivel está más próximo al tipo de
pensamiento que tenemos las personas, mientras que un lenguaje
de bajo nivel está más próximo al tipo de datos que entiende el
microControlador. Cada uno tiene sus inconvenientes y sus ventajas.
Lenguaje C. En la imagen de continuación,
muestro un fragmento de un programa escrito en lenguaje C para
PIC. En él se configura desde el banco 1 la Puerta B como salida
y se asigna un divisor de frecuencia de 256 para su utilización
con el TMRO. Se sacan a continuación ceros por la Puerta B y se
habilita la interrupción por desbordamiento del TMRO. Se permanece
en un bucle infinito, del cual Se saldrá cuando el TMR0 realice
su contaje.
Se pueden destacar varias características a la vista de este
programa, que son precisamente las que han hecho que sea un lenguaje
muy utilizado Las sentencias de control estructuradas, la instrucción
While, dan claridad a los programas.
En este ejemplo se utiliza para estar en un bucle mientras lo
que haya entre paréntesis sea verdadero, y un 1 se considera verdadero,
es decir, se convierte en un bucle infinito en el que no se hace
nada. Si se quisiera repetir varias instrucciones mientras se
cumpliera una condición bastaría con introducir dichas instrucciones
entre llaves.
Por tratarse este de un trozo de programa no puede apreciarse
la Segunda de las características. NO obstante, acompañando al
programa principal habrá, como mínimo, un procedimiento de tratamiento
de interrupciones, ya que éstas han sido habilitadas, y a su vez,
este puede necesitar el uso de algún otro procedimiento. Cada
uno de ellos irá metido entre llaves y serán independientes, comunicándose
tan Solo para el paso de parámetros y resultados. Además de las
instrucciones estándar, el lenguaje C específico para PIC tiene
otras que pueden considerarse pequeñas funciones muy habituales,
como pueden ser la puesta a 1 o a 0 de un registro específico
O de un bit de un registro, O la habilitación de interrupciones.
La diferencia con lenguajes como el ensamblador no va a Ser en
cuanto a complejidad de código, Sino en cuanto a claridad, ya
que el mismo nombre de la función dice lo que Se va a hacer. Otras
funciones, como la espera de cierto tiempo, dan facilidad de manejo
a la vez que claridad.
Como contrapartida, el programa escrito en ensamblador se traducirá
en tantas posiciones de memoria como instrucciones tiene, es decir,
nueve (BUCLE no es una instrucción). En el programa escrito en
C, en Cambio, cada instrucción escrita, siete, y la propia estructura
"while", se transformará en una o varias instrucciones máquina
(posiciones de memoria) según el compilador de C de que se trate.
Esto es así porque en ensamblador cada instrucción se traduce
como un solo código máquina, al contrario que en los lenguajes
de alto nivel. Puede observarse esta particularidad en la figura
de la siguiente página, donde la segunda columna de la ventana
de memoria de programa (Program Memory Window) refleja la posición
en que se aloja cada instrucción. Aunque su programación suele
ser más costosa para el programador, se genera un código óptimo,
con un considerable ahorro de espacio ocupado por el código de
programa, lo que es importante dada la restricción en los PIC
en cuanto a la capacidad de la memoria de instrucciones, que en
el caso del PICl6F84 sólo llega a las 1024 posiciones.
El Ensamblador. Es el lenguaje
denominado de bajo nivel, el más cercano al ordenador. Como vemos
en la imagen, se presenta el programa anterior programado en ensamblador.
El programa elegido es muy Similar en un lenguaje y en otro ya
que no entraña gran complicación. Sin embargo, para el que no
conoce ninguno de los dos lenguajes, posiblemente le resulte más
fácil entender el programa escrito en C, ya que no necesita Saber
la arquitectura del PIC para realizar instrucciones, éstas Son
más intuitivas.
|