http://lattes.cnpq.br/1195739884342749; MÉLO, Daniel Gondim Ernesto de.
Resumo:
Compilers are softwares that translate program codes written in some language, known as source language, to another semantically equivalent program in another programming language,
known as target language. There are compilers that translate codes between high level
languages. However, in general, the most widely used target language is the machine language
or machine code. Several languages and tools have been proposed within this escope,
e.g. Xtext, Stratego, CUP, ANTLR, etc. Despite the great quantity, currently, the existing
frameworks for building compilers are difficult to understand and does not show the programmer
several important structures, such as symbol table and syntax tree. Additionally,
there are many specific details of each platform designed for that purpose. Moreover, in
most cases, each framework focuses and provides services for only one module of a compiler.
Often to provide services for more than one step it is necessary to use general purpose
languages, which increases the degree of complexity. In this context, we propose UCL (Unified
Compiler Language), a domain specific language for the development of the analysis
modules, in a unified and platform independent way. With UCL it is possible for the compiler
designer, specify design issues, such as, choice of algorithms to be used, type of scanner,
among other features. The evaluation of this work was conducted through the application of
two surveys with students of the compilers course from the Federal University of Campina
Grande, during project execution, consisting in the development of compilers.