Author(s):
Rodrigues Caetano da Silva, Marcelo
Date: 2014
Origin: Oasisbr
Subject(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
Description
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