Вы находитесь на странице: 1из 2

PROJETO E ESPECIFICAO DA LINGUAGEM DE PROGRAMAO A

Esse documento tem como objetivo apresentar os aspectos de projeto da linguagem de programao A. INTRODUO Antes de comear com a construo de um compilador, necessrio definir a linguagem com a qual os programas-fonte devem ser escritos. A linguagem de programao deste trabalho chamada de A possui a sintaxe baseada no Pascal e tem como objetivo ser uma linguagem de proposito geral e simples. DEFINIES SINTTICAS O mtodo mais popular para a especificao da gramtica de linguagens de programao a notao BNF. A seguir a gramtica da linguagem de programao A apresentada usando a notao EBNF.

program ::= block . block ::= [ CONST identifier = number { , identifier = number } ; ] [ VAR identifier { , identifier } ; ] statement statement ::= identifier := expression | BEGIN statement { ; statement } END | IF condition THEN statement | WHILE condition DO statement | WRITE expression condition ::= expression ( = | < > | < | <= | > | >= ) expression expression ::= term { ( + | - ) term } term ::= factor { ( * | / ) factor } factor ::= identifier | number | ( expression )
DEFINIES LXICAS Para a construo do analisador lxico necessrio descrever precisamente as regras de formao das unidades lxicas da linguagem. Identificadores, palavras reservadas, constantes numricas e quaisquer outras unidades lxicas devem ser especificados usando algum mtodo formal (Por exemplo: expresses regulares). Por questo de legibilidade, as palavras reservadas da linguagem so escritas usando letras

maisculas, enquanto que os identificadores so escritos com letras minsculas, desse modo, podese evitar o uso das palavras reservadas para outros fins, como por exemplo, nomeao de variveis. Constantes numricas so sequncias de um ou mais dgitos numricos. Identificadores so sequncias de zero ou mais letras ou dgitos numricos precedida por uma letra. Comentrios de bloco na linguagem A so delimitados por /* e */. No permitido na linguagem comentrios aninhados.

DEFINIES SEMNTICAS Descrever a sintaxe mais fcil do que a semntica, em parte porque uma notao concisa e universalmente aceita, como a BNF, ainda no foi desenvolvida para a semntica. A semntica de uma linguagem de programao pode ser descrita usando linguagem natural; tal especificao, simplesmente esclarece o significado de cada regra gramatical . muito importante definir quais violaes semnticas devem ser verificadas durante o processo de compilao dos programasfonte. Na linguagem A, existem basicamente trs situaes que devem ser consideradas erros semnticos: Declarao de mais de uma varivel ou constante usando o mesmo nome; Uso de varivel ou constante que no foi previamente declarada; Modificao do valor de uma constante. AMBIENTE DE EXECUO A linguagem A no possui procedimentos e todas as variveis so globais. TRABALHO ANLISE LXICA 1) O primeiro trabalho tem como objetivo implementar um analisador lxico para a linguagem de programa A. A especificao do trabalho ser feita utilizando Autmatos Finitos e a implementao ser realizada na linguagem de programao C (compilador GCC) utilizando a tcnica de switch duplo aninhado dentro de um while. 2) O segundo trabalho tem como objetivo implementar um analisador lxico para a linguagem de programao A utilizando a ferramenta Flex. Os trabalhos sero testados no Linux (Ubuntu) com o compilador GCC. importante usar apenas comandos C padro ANSI, para garantir que no teremos problemas com a verso do compilador. Tero nota zero os trabalhos que se enquadrarem em uma ou mais situaes abaixo: plgio; programa no compila; no est de acordo com as especificaes; no compareceu a apresentao do trabalho em data marcada pelo professor. Os alunos devero apresentar o trabalho, entregar um CD-ROM (com identificao), especificao utilizando a ferramenta JFLAP impressa e cdigo fonte comentado impresso.

3) Na sada da anlise lxica devero ser apresentados os tokens e os lexemas encontrados no cdigo fonte. Devero ser apresentados tambm erros lxicos do cdigo fonte e sua localizao.

Вам также может понравиться