Especificação do Primeiro Trabalho - CI1211 - 2020/1

Prof. André Luiz Pires Guedes
Maio de 2020

Objetivo: Contruir um programa usando o flex (ou lex). A ideia é usar o flex para fazer um pequeno compilador/interpretador de uma linguagem MUITO simples.

Linguagem:

A linguagem usa variáveis inteiras, números inteiros e 4 comandos: atribuição, impressão, adição e subtração.

Os símbolos são:

Letras maiúsculas e minúsculas são diferentes. Espaços em branco podem aparecer como separadores e em qualquer quantidade.

Um valor (<valor>) pode ser tanto um inteiro (<inteiro>) como um identificador (<id>). Caso seja um inteiro, o valor é o valor nominal deste inteiro. Caso seja um identificador, o valor é o valor da variável identificada pelo identificador.

Os comandos tem as formas e signifcados abaixo.

Variáveis não são previamente declaradas e tem inicialmente o valor 0 (zero).

Entrada: um arquivo texto

Saída: O programa deve executar o código lido diretamente, sem gerar código intermediário. A saída deve ser o resultado de possíveis chamadas ao comando "print".

Exemplo:

Entrada

  let a = 2
  add b 5
  sub a b
  print a
  print b

Saída

  -3
  5

Execução do Programa: Entrada padrão e saída padrão. (Filtro)

Nome do executável: simples

Entrega do trabalho:

O trabalho deve ser entregue sob a forma de um arquivo de nome fulano.tar.gz, sendo que fulano deve ser substituído pelo seu "login name".

O arquivo fulano.tar.gz, uma vez expandido, deve criar os arquivos dentro de um diretório com nome fulano (lembrando que fulano deve ser substituído pelo seu "login name").

Arquivos: Makefile, fontes (arquivos flex) e um README.txt tudo dentro de um tar.gz com o nome do seu login.

O arquivo fulano.tar.gz deve ser entregue como anexo de mensagem enviada para andre@inf.ufpr.br. O Subject desta mensagem deve ser "Entrega do trabalho 1 de CI1211".

No arquivo README.txt deve estar o nome dos alunos e uma descrição das decisões tomadas durante a elaboração do trabalho. Por exemplo, como será a estruturas de dados que guarda as variáveis.

O trabalho pode ser feito em equipes de até 2 alunos. Neste caso fulano deve ser substituído por uma string com os dois logins.

Correção: