Vous êtes sur la page 1sur 6

Instituto Politcnico Nacional / Centro de Estudios Tecnolgicos Walter Cross Buchanan

Apuntes de apoyo para las prcticas de Laboratorio de Microcontroladores

Los lenguajes en la programacin


Lenguajes naturales y lenguajes formales
Un lenguaje consta de un conjunto de signos, denominado alfabeto, un conjunto de palabras,
llamado vocabulario, y una serie de reglas que sirven para saber si una expresin es correcta o no
lo es. Para que se pueda establecer la comunicacin entre el emisor y el receptor en un lenguaje
determinado ambos tienen que estar previamente de acuerdo sobre el significado que dan a las
palabras.
Los lenguajes naturales son las lenguas que hablamos habitualmente (el espaol, el ingls, el
alemn, etc.), pero existen otros lenguajes, denominados lenguajes formales. El lenguaje
matemtico es un ejemplo. Cumple todo lo anteriormente expuesto. Posee un vocabulario propio.
Tiene unas reglas propias que nos permiten, por ejemplo, considerar que la expresin z+x es
correcta y la expresin zx+ incorrecta. Adems, dos personas que conozcan el significado de los
smbolos del lenguaje matemtico pueden comunicarse sus ideas a travs de l.
Lo que distingue fundamentalmente a los lenguajes naturales de los formales es su ambigedad.
Una determinada expresin del lenguaje natural puede ser interpretada de varias maneras, de
forma que su significado depende no slo de las palabras, sino de los gestos, de la entonacin, del
volumen sonoro empleado y sobre todo el contexto en que se produce la frase. Por ejemplo, no
significa lo mismo la frase Te voy a comer dicha por un padre sonriente a su hijo mientras juega
con l, que la misma frase expresada por un jugador de tenis a su contrincante, mientras le mira
con gesto crispado antes de comenzar el partido.

Lenguaje formal

Nada ambiguo

Lenguaje natural

Ambiguo

Lenguaje potico

Muy ambiguo

Caractersticas de lenguajes naturales y formales


Los lenguajes naturales estn a medio camino entre el lenguaje de la poesa, donde el uso de las
metforas, los simbolismos y los juegos de palabras permite muchas interpretaciones
dependiendo del lector de que se trate y el lenguaje matemtico. Este ltimo es un lenguaje
formal, porque intenta evitar al mximo esa cierta ambigedad propia de los lenguajes naturales.
En un lenguaje formal, cada expresin slo puede tener una nica interpretacin. As, si decimos
x/y, todos los matemticos del mundo entendern que se trata de dividir el nmero x entre el
nmero y. entre los lenguajes formales tenemos, adems del matemtico, los diversos lenguajes
informticos desarrollados a partir de la dcada de los aos cuarenta con el fin de programar a las
computadoras.
Compilado por: M. en C. Miguel ngel Ruiz Rodrguez

Instituto Politcnico Nacional / Centro de Estudios Tecnolgicos Walter Cross Buchanan


Apuntes de apoyo para las prcticas de Laboratorio de Microcontroladores
Los lenguajes informticos
El microprocesador de una computadora slo podr funcionar si le suministramos las instrucciones
necesarias a travs de un programa y se las expresamos en un lenguaje que pueda interpretar, ya
que no es ms que un conjunto de circuitos electrnicos. Desgraciadamente, el microprocesador
slo entiende dos smbolos: 0 y 1. Al emplear un vocabulario tan reducido, las frases tienen que
ser muy largas. Si para expresar algo tan simple como la letra C hay que decir 01000011,
imaginemos cmo se dir en lenguaje de la computadora la frase: Mi nombre es..
Se denomina lenguaje mquina a un lenguaje que la computadora pueda interpretar
directamente. Aunque el lenguaje mquina se emple para elaborar los primeros programas de la
computadora, la dificultad de su uso llev pronto al empleo de otros lenguajes informticos, as
como a la creacin de programas capaces de efectuar automticamente la traduccin entre dichos
lenguajes y el lenguaje mquina.

Programa en lenguaje
ensamblador

Ensamblador

Se efecta la
traduccin

Programa en lenguaje
mquina
Asociacin entre lenguaje ensamblador y lenguaje mquina
Uno de los primeros intentos en facilitar el trabajo de los programadores fue el lenguaje
ensamblador. Su vocabulario est formado por un conjunto de palabras inglesas como USING,
DROP, START, END, que se memorizan con mayor facilidad que las largas cadenas de ceros y unos,
propias del lenguaje mquina. A pesar de todo, como el microprocesador de una computadora no
entiende el ingls, fue preciso idear una serie de programas que efectuasen automticamente la
traduccin del lenguaje ensamblador al lenguaje mquina. Estos programas traductores recibieron
el nombre de ensambladores.
El lenguaje mquina y el lenguaje ensamblador se denominan lenguajes de bajo nivel. Dominar el
lenguaje ensamblador es ms fcil que dominar el lenguaje mquina, pero an resulta bastante
difcil. Por una parte es necesario conocer en detalle la arquitectura de la computadora, es decir,
Compilado por: M. en C. Miguel ngel Ruiz Rodrguez

Instituto Politcnico Nacional / Centro de Estudios Tecnolgicos Walter Cross Buchanan


Apuntes de apoyo para las prcticas de Laboratorio de Microcontroladores
cmo funcionan fsicamente los circuitos electrnicos y el resto de dispositivos que lo constituyen.
Adems los programas en lenguaje ensamblador son muy largos ya que a cada instruccin del
lenguaje ensamblador le corresponde una en lenguaje mquina.
La tarea de los programadores se simplific mucho con la llegada de los lenguajes de alto nivel,
que son ms parecidos al lenguaje natural. Si situramos a la computadora en el pie de una
montaa y al ser humano en su cima, podramos representar el hecho de que cuanto ms alto es
el nivel de un lenguaje, ms lejos est del lenguaje mquina y ms cerca del lenguaje humano.

Lenguaje de Alto Nivel


C, Arduino, CCS,
C18 HiTech, C24, XC8,

Lenguaje de Medio Nivel


(picaxe)

Lenguaje de Bajo Nivel


(ensamblador)

Metfora entre el lenguaje de bajo nivel y lenguaje de alto nivel


Si bien es cierto que los programas elaborados en un lenguaje de alto nivel funcionan algo ms
lentamente que los confeccionados en lenguaje ensamblador, cuando el programador trabaja en
un lenguaje de alto nivel, no precisa conocer a fondo el hardware de la computadora. Adems, su
tarea se simplifica, ya que los programas son mucho ms cortos al disponer de un conjunto de
programas, denominados compiladores e intrpretes, que se encargan de traducir
automticamente cada instruccin del lenguaje de alto nivel a un numeroso conjunto de
instrucciones en lenguaje mquina.
Afortunadamente para los programadores que se inician, hoy se tienen diversos programas que
trabajan con lenguajes de alto nivel y que simplifican y facilitan el trabajo con microcontroladores.
Por ejemplo, la plataforma de programacin Arduino, facilita tanto el trabajo y las aplicaciones con
microcontroladores que prcticamente se han formado comunidades Arduino en muchas
instituciones educativas de diversos niveles, desde bachillerato hasta universidades de prestigio en
todo el mundo.

Compilado por: M. en C. Miguel ngel Ruiz Rodrguez

Instituto Politcnico Nacional / Centro de Estudios Tecnolgicos Walter Cross Buchanan


Apuntes de apoyo para las prcticas de Laboratorio de Microcontroladores
Comparativo entre lenguajes de alto y bajo nivel.

Lenguaje de alto nivel

Lenguaje de bajo nivel

Cada instruccin equivale a muchas de lenguaje


mquina
Son lenguajes universales, es decir, que con
ellos se pueden realizar programas utilizables
en diferentes computadoras.

Cada instruccin equivale a una de lenguaje


mquina
En cada tipo de computadora es necesario
emplear un tipo de ensamblador diferente.

Es necesario tener slidos conocimientos del


No es necesario conocer a fondo el hardware
hardware de la computadora para poder
para poder utilizarlos.
utilizarlos.
Los programas realizados con estos lenguajes Los programas realizados con estos lenguajes se
no se ejecutan con tanta rapidez.
ejecutan con gran rapidez.
Los programas son ms cortos.

Los programas son ms largos.

Ventajas y desventajas de los lenguajes


Ventajas

Lenguajes de
Alto Nivel

Lenguajes de
Bajo Nivel

Desventajas

Gran cantidad de libreras


con ejemplos

Desarrollo rpido

Cdigos eficientes,
optimizados y robustos
(dependiendo del
programador)
Control total en registros y
tiempos

Cdigos barrera
No existe control de tiempos
No existe control en libreras
Cdigos abstractos y largos
Desarrollo lento (el programador se
tarda ms en hacerlo)

Bien podramos agregar que los archivos que terminan con extensin .c y .hex, pueden
considerarse de la siguiente manera:

*.C
lenguaje humano
*.HEX lenguaje mquina

Compilado por: M. en C. Miguel ngel Ruiz Rodrguez

Instituto Politcnico Nacional / Centro de Estudios Tecnolgicos Walter Cross Buchanan


Apuntes de apoyo para las prcticas de Laboratorio de Microcontroladores
Programas traductores
Un programa traductor transforma el cdigo fuente en cdigo objeto. Se denomina cdigo fuente
al conjunto de instrucciones del programa elaboradas por el programador utilizando un lenguaje
de alto nivel, y cdigo objeto al conjunto de las instrucciones traducidas, que es ms voluminoso,
pero que es comprensible para la computadora. Dicho proceso de traduccin se puede efectuar
mediante un programa compilador o mediante un programa intrprete.
Un compilador traduce de una vez todo el cdigo fuente a cdigo objeto. En cambio un intrprete
traduce la primera instruccin, a continuacin la computadora la lleva a cabo. Si no funciona
correctamente, el programador la corrige, mientras que si todo va bien, el intrprete pasa a
traducir la segunda y as sucesivamente.

As, todos los microcontroladores necesitan ser programados a travs de algn lenguaje de
programacin que introduzca al micro las tareas que debe desarrollar. Y el nico lenguaje que
entienden los microcontroladores es el formado por los ceros y unos del sistema binario.
Cualquier instruccin que deba ser ejecutada por el c debe estar expresada en binario.
A este lenguaje se le denomina lenguaje mquina, por ser el que comprende el c. Los cdigos de
este lenguaje que forman las instrucciones se llaman cdigos mquina. Por ejemplo, cuando el
micro PIC 16F1827 lee el cdigo mquina 11111000111010, est recibiendo la instruccin:
suma 58 al registro de trabajo W y guarda el resultado en este mismo registro W.
Cualquier otro lenguaje que se utilice debe ser traducido a unos y ceros para que el c pueda
procesarlo. Dicha codificacin binaria resulta incmoda para trabajar, por lo que muchas veces se
utiliza la codificacin hexadecimal para facilitar la interpretacin de los cdigos mquina y no
saturar las pantallas (ni los cerebros) de unos y ceros.

El lenguaje ensamblador

El lenguaje mquina es difcil de utilizar por el hombre, ya que se aleja de su forma natural de
expresarse, por esto se utiliza el lenguaje ensamblador, que es la forma de expresar las
instrucciones de una manera ms natural al hombre y que, sin embargo, es muy cercana al
microcontrolador porque cada una de sus instrucciones corresponde con otra en cdigo mquina
que el c es capaz de interpretar.
El lenguaje ensamblador utiliza nemnicos que son grupos de caracteres alfanumricos que
simbolizan las rdenes o tareas a realizar con cada instruccin. Los nemnicos corresponden con
las iniciales del nombre de la instruccin en ingls, as recuerdan la operacin que realiza la
instruccin, lo que facilita su memorizacin.
As, por ejemplo: para ordenar al microcontrolador suma 58 al registro de trabajo W y guarda el
resultado en este mismo registro W, el lenguaje ensamblador sera addlw d58 que es mucho
ms fcil de identificar que 11111000111010 del lenguaje mquina, addlw son las iniciales de
Add Literal to W.

Compilado por: M. en C. Miguel ngel Ruiz Rodrguez

Instituto Politcnico Nacional / Centro de Estudios Tecnolgicos Walter Cross Buchanan


Apuntes de apoyo para las prcticas de Laboratorio de Microcontroladores
Resumiendo con un ejemplo:

Instruccin

Ensamblador
Mquina

Programa ensamblador

suma 58 al registro de trabajo W y guarda el resultado en este


mismo registro W
Addlw d58
11111000111010 (expresado en binario)
3E3A (expresado en hexadecimal)

El programa ensamblador es un software que se encarga de traducir los nemnicos y smbolos


alfanumricos del programa escrito en ensamblador por el usuario a cdigo mquina, para que
pueda ser interpretado y ejecutado por el c.
El programa escrito en lenguaje ensamblador recibe la denominacin de cdigo fuente, archivo
fuente o fichero fuente. Suele tener la extensin *.asm. El archivo fuente debe ser traducido a
cdigo mquina, de lo cual se encarga el programa ensamblador.
La mayora de los ensambladores proporcionan a su salida un fichero que suele tener la extensin
*.hex. Este fichero puede ser grabado en la memoria de programa mediante la utilizacin de un
grabador de microcontroladores.
El ensamblador ms utilizado para los PIC es el MPASM, que trabaja dentro de un entorno
software denominado MPLAB IDE. Este entorno de trabajo es puesto a libre disposicin de los
usuarios por Microchip Technology en su pgina web www.microchip.com

Compilado por: M. en C. Miguel ngel Ruiz Rodrguez

Vous aimerez peut-être aussi