Autor(es):
Rodrigues Caetano da Silva, Marcelo
Data: 2014
Origem: Oasisbr
Assunto(s): Compilador; Representação Intermediária; Common Intermediate Language; Compilador; Compilador; Representação Intermediária; Representação Intermediária; Common Intermediate Language; Common Intermediate Language
Descrição
A Common Intermediate Language (CIL), linguagem intermediária definida pelo padrão ECMA-335, provou ser uma representação alvo eficiente para muitas linguagens de alto nível, permitindo a portabilidade de programas para diversas plataformas. Entretanto, os compiladores de linguagem CIL disponíveis nas implementações existentes do padrão ECMA-335 não são adequados para o desenvolvimento de sistemas que executem diretamente sobre o hardware, como sistemas em tempo real, sistemas embarcados e novos sistemas operacionais específicos, porque exigem o suporte de uma máquina virtual (VES Virtual Execution System) para o funcionamento dos programas compilados. Este fato confina a seleção de linguagens às tradicionais C e C++ como opções para o desenvolvimento de tais sistemas. Face a esse confinamento, apresentamos a construção de um compilador estático de código CIL chamado CILCompiler, que transforma um subconjunto da linguagem em uma imagem executável que funciona com acesso direto ao hardware, sem a necessidade de uma máquina virtual. No intuito de tornar didático o compilador, facilitando a construção, compreensão e extensão do mesmo, foi adotada a abordagem incremental para a construção de compiladores, que sugere a utilização de pequenos passos incrementais para obter um compilador funcional logo nos estágios primitivos de desenvolvimento