|
Acadêmico(a): Gustavo Zadrozny Leyendecker |
Título: Especificação e Compilação de Uma Linguagem de Programação Orientada a Objetos para a Plataforma .NET |
|
Introdução: |
Uma linguagem de programação (LP) provê ao desenvolvedor de sistemas uma variedade de facilidades para a criação de soluções de tecnologia da informação. Varejão (2004, p. 3) diz que as LPs visam tornar mais produtivo o trabalho dos programadores levando em consideração a manutenção e a qualidade do software. Segundo Wilson e Clark (1993, p. 14), as primeiras linguagens que surgiram eram bastante primitivas. Utilizavam números para representar operações, locais de armazenamento e registradores especiais. Não possuíam loops nem mesmo números em ponto flutuante. Em virtude da evolução da computação, os sistemas tornaram-se mais complexos e o uso de LPs simples reduzia a produtividade dos programadores. Para resolver este problema, surgiram as linguagens de programação de alto nível. Entre as linguagens de programação modernas, é possível observar o uso do paradigma de orientação a objetos. Nesse sentido, o objetivo deste trabalho é implementar um compilador para uma linguagem orientada a objetos que gere código para a máquina virtual da plataforma Microsoft .NET. Esta plataforma, de acordo com a Microsoft Corporation (2005), disponibiliza todas as ferramentas e tecnologias necessárias para a construção de aplicações. Ela dispõe de um modelo de programação consistente e independente de linguagem através de todas as camadas de um software. Umas das grandes jogadas da .NET é sua capacidade de trabalhar com a multilinguagem permitindo com isso que todos os desenvolvedores possam trabalhar com a linguagem a qual possuem mais afinidade. Isso é possível graças ao fato de que os módulos do sistema implementados em uma determinada linguagem se comunicam tranqüilamente com os implementados em outras, desde que ambas sejam suportadas pela .NET. Pode-se, por exemplo, utilizar um componente do Visual Basic .NET em sistemas desenvolvidos em C#. (BORBA, 2004, p. 1). Esta independência de linguagem da plataforma .NET deve-se ao fato de todas as LPs utilizarem o mesmo código intermediário, o Microsoft Intermediate Language (MSIL). A linguagem proposta não será diferente já que seu compilador irá gerar código MSIL. Em outras palavras, o compilador irá gerar um assembly (módulo executável .NET) que poderá referenciar assemblies gerados a partir qualquer linguagem .NET e utilizar as classes contidas dentro dele. Da mesma forma, assemblies desenvolvidos nestas linguagens também poderão referenciar o assembly gerado e utilizar suas classes. Assim sendo, cada camada de aplicação em um software multi-camadas, ou em inglês n-tier, poderá ser implementada em uma linguagem diferente. Por exemplo, em um software de três camadas, as camadas de acesso a dados e interface serão desenvolvidas em C# enquanto a camada de negócio será desenvolvida fazendo uso da LP proposta. Segundo Mahmoodi (2005), o desenvolvimento em três camadas tem como vantagens reusabilidade da lógica de negócio, facilidade de manutenção, entre outras. |
|
|