É uma ideia interessante. Durante um tempo eu trabalhei num parser de BASIC para Assembly (obviamente um BASIC simplificado, já que ele é alto nível demais para ser facilmente convertido para asm). Parei porque tive que devolver o livro sobre teoria de compiladores e não encontrei mais na biblioteca, além de que depois disso o código acabou se perdendo em uma formatação (fiz a cagada de deixar o código na pasta da IDE (partição que uso para programas) ao invés de deixar na partição de documentos).
Como sugestão: se tem uma coisa que eu não gosto no pascal (e conseqüentemente no delphi) é a forma como são definidos os blocos e, principalmente, quanto ao uso do ponto e vírgula, que é extremamente confuso (no begin não vai nada, no final do bloco vai um ponto e no final das instruções vai um ponto e vírgula), então recomendaria adotar o sistema do C (ponto e vírgula apenas para finalizar instruções, não para delimitação de blocos) ou o sistema do BASIC/VB, onde o início do bloco é definido pelo próprio comando, sem a necessidade de explicitar um "Begin" ou "{". Neste último caso seria interessante não utilizar o } para fechar o bloco, mas sim uma palavra, como "End If", "Next", "Loop". De forma resumida, minhas sugestões:
Estilo C:
program teste {
char a[256], c[3];
int z;
a = "fazendo um teste";
c = 'ELF';
z = 3;
eax = z;
ebx = 'a';
eax += ebx;
}
Ou o modo BASIC:
program teste
char a[256], c[3];
int z;
a = "fazendo um teste";
c = 'ELF';
z = 3;
eax = z;
ebx = 'a';
eax += ebx;
end program
Poderia até criar um bloco para declaração de variáveis e outro exclusivamente para o código, apesar de eu achar meio antiquado e pouco prático. Uma das grandes qualidades do C++ em relação ao C na minha opinião é a possibilidade de declarar a variável onde quer que seja, por exemplo:
for (int i = 0; i < 10; i++)
O C não permite isso, você precisa declarar a variável antes, desperdiçando linhas.
Enfim, essas são minhas sugestões para uma sintaxe, mas gosto é gosto.
Abraços,
Fergo