Hola,
Te voy a dejar un link a los fuentes de un lenguaje diseñado hace unos años para PICs, para que veas el desarrollo de un compilador con su linker, su parser, su scanner y como trata variables, el stack y demás...
http://sourceforge.net/projects/jal/files/jal/2005-Feb-10/jal-0.4.62.tar.gz/downloadEl JAL (Just Another Language) de Wouter van Ooijen es un lenguaje mezcla de ADA-Pascal y que tuvo un cierto éxito, pero que murió con la llegada de nuevas series de PICs.
HAbía una lista de usuarios que colaborábamos con el desarrollo de librerías o las portábamos de otros lenguajes y otro grupo dedicado a desarrollar el compilador intentando añadir nuevos micros que iban apareciendo.
No es por desanimar, pero el trabajo es muy grande.
Si no tienes experiencia trabajando con Parsers, primero te va a costar mucho entenderlos y es imperativo el buen control de la sintaxis y la gramática para evitar problemas.
Otra cosa importante es el tema del control del puntero de la pila del micro, ya que si no haces bien los cálculos durante la compilación, los desbordamientos son muy fáciles con 8 niveles.
La depuración de las llamadas a rutinas anidadas y las rutinas de interrupción.
El tema de las variables tambien es tela marinera, porque si quieres que el aprovechamiento de la memoria sea óptimo, debes organizarlas por ejemplo, los nibbles de dos en dos, las variables tipo short/bool de ocho en ocho, controlar la pagina de memoria en la que están instaladas.
Para las matrices el tema es más complicado y si implementas punteros, pues la cosa se pone seria.
Si prescindes de estas cosas, entonces el lenguaje no tendrá sentido frente al CCS, MikroC o PICC y será trabajo en balde.
HAce tiempo comencé algo parecido pero para un lenguaje tipo Basic enfocado para gente sin experiencia en PICs más como herramienta complementaria educativa.
Conseguí implementar el Parser con un editor de ficheros y un mini-IDE. Hasta desarrollé un sistema simple de mapeo de memoria en colaboración con el parser que me localizaba las definiciones de variables y las iba agrupando en bytes:
Pero el trabajo era muy grande y no tengo demasiado tiempo para ello.
Lo cierto es que más interesante que un compilador en C, que ya existen muchos y mucho código desarrollado para ellos, sería un framework para por ejemplo Python, Ruby... basado en macros en lenguaje C y que acercara los Pics a gente que desarrolla con Arduino o lo aplica a pequeños proyectos artísticos o caseros...y ya de paso, acercarlo al MAC.
Llevo un tiempo a vueltas con el tema, pero me encuentro con el problema de las licencias.
CCS no es un lenguaje libre que se pueda implementar en el uso de macros ya que hace falta disponer del compilador de CCS que es de pago.
En el caso del PICC de Microchip no lo tengo muy claro... y claro, para ser un Framework tipo Ruby on rails, como que no es sensato hacer las macros en ASM.
Aún así, ánimo con el proyecto.
Salu2