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.

Programacion C

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.

Programacion Ensambador

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.