Por su nivel de abstraccin los lenguajes de programacin puede ser de: Alto nivel: Aqu el nivel de atraccin es muy alto y llega parecerse al lenguaje cotidiano algunos lenguajes de este tipo son: Java, python, c++, c#, basic, fortran, pascal, etc. Ventajas: El cdigo generado es muy sencillo y comprensible, se requieren menos lneas de cdigo, y el cdigo puede ser multiplataforma. Desventajas: Menor velocidad de ejecucin, no se puede acceder a registros de memoria ni a recursos de hardware o del sistema operativo tan fcilmente.
Medio nivel: Un lenguaje de este tipo no est bien definido ya que posee caractersticas de bajo nivel y caractersticas de alto nivel y prcticamente solo el lenguaje c entra en esta categora. Ventajas: El uso de apuntadores lo hace distinto a otros lenguajes y facilita el manejo de listas enlazadas, algoritmos de bsqueda, ordenamiento y direccionamiento. Adems puede interactuar con el hardware, registros de memoria, sistema operativo, etc. con relativa facilidad. Desventajas: Su nivel de abstraccin es menor que los de alto nivel, por lo que requiere muchas ms lneas de cdigo, aunque sigue siendo bastante comprensible
Lenguajes de bajo nivel: Estos usados por personas especializadas que desean obtener el mximo aprovechamiento del hardware. En esta categora entra el lenguaje mquina, y el lenguaje ensamblador, siendo este ltimo derivado del primero. Ventajas: acceso completo al hardware incluyendo registros de memoria y registros especiales a nivel bit. Su ejecucin es muy rpida, siendo el ms veloz el lenguaje mquina, que se ejecuta directamente sin compilacin, se tiene entonces un control preciso de las acciones. Desventajas: Alta complejidad, dificultad para localizar errores, demasiadas lneas de cdigo, aun para programas relativamente sencillos.
Por su forma de ejecucin: Compilados: Son aquellos que tienden a traducirse a un cdigo que pueda utilizar la mquina (lenguaje mquina). Los programas traductores que pueden realizar esta operacin se llaman compiladores. Ejemplos de este tipo de lenguajes son: basic, c, c++, c#, delphy, fortran, pascal, visual basic, java, etc. Interpretados: Aqu el cdigo jams es compilado, sino simplemente traducido conforme se va avanzando en su ejecucin, por lo que una instruccin repetitiva deber ser interpretada cada vez que se ejecute, es por esto que la ejecucin de los lenguajes interpretados es ms lento, ya que el cdigo objeto no se graba despus de ejecutarse el programa completo. Ejemplo de estos lenguajes son: python, ruby, Pearl, php, java script. Algunos entornos de desarrollo para micro controladores son: Mikroelektronika (PICs, AVR tanto en basic, c) Codevision (AVR en c) Atmel studio (AVR en ensamblador y en c) MP Lab (PICs en ensamblador ) PIC Basic Pro (PICs en basic) Win AVR (AVR en c, c++) ICC (AVR en c ) Tarea Emulacin JTAG Una vez que se ha desarrollado el cdigo requerido para un micro controlador, y que obviamente ha sido compilado, debe ser ensamblado para obtener el archivo de extensin .exe el cual puede ser cargado en el micro controlador para ser ejecutado directamente por el mismo. Este archivo .exe puede ser cargado virtualmente en un micro controlador contenido en paquetes de simulacin de electrnica como proteus y ser ejecutado como en un micro controlador real. Por otro lado el entorno de programacin usualmente nos ofrece la posibilidad de depurar el programa, ejecutndolo lnea por lnea para verificar su correcto funcionamiento y localizar errores