/while

Linguagem "Enquanto" usada como exemplo na disciplina de Paradigmas de Linguagens de Programação

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

While

Linguagem "Enquanto" usada como exemplo na disciplina de Paradigmas de Linguagens de Programação

Implementação da linguagem em Scala (~250 linhas de código): whilelang

Sintaxe

A gramática está definida em Enquanto.g4

Exemplo

a := leia;
b := 10;
se a <= b entao
  exiba "Menor"
senao
  exiba "Maior"

Compilação e Execução

Este projeto usa alguns recursos da versão 14 de Java. Por isso é necessário verificar a versão instalada e, se for necessário, atualizar a versão.

$ java -version

Caso seja necessário, você pode usar o sdkman (sdkman.org) para instalar a versão mais nova.

$ sdk i java

Para compilar use compilar.bat (windows) ou compilar.sh (linux).

$ ./compilar.sh

O script gera o parser e compila o código Java gerado.

Para executar use while.bat (windows) ou ./while (linux).

$ ./while olamundo.while

Projeto de Paradigmas de Linguagens de Programação

Tarefas:

  1. Inclua a operações de divisão (/) e de exponenciação de inteiros (^)
  2. Inclua as operações ou e xor entre booleanos
  3. Inclua as relações menor (<), maior (>), maior ou igual (>=) e diferente (<>) entre inteiros
  4. Altere a sintaxe para que o ; ao invés de separar comandos seja usado para finalizar cada comando
  5. Crie o comando para ID de expressao ate expressao faca comando. Exemplo
    para i de 1 ate 5 faca
      escreva i
  1. Crie o comando repita expressao vezes comando. Exemplo
    repita 10 vezes
      exiba "Funciona"
  1. Altere o comando se .. entao .. senao ... para incluir a cláusula senaose. Cada se pode ter zero ou mais clausulas senaose. Exemplo:
    se nota >= 6 entao
      exiba "Aprovado"
    senaose nota >= 3 entao
      exiba "Recuperação"
    senao
      exiba "Reprovado"
  1. Crie o comando escolha (switch).
    x = leia
    escolha x
      1 : exiba "um"
      2 : exiba "dois"
      _ : exiba "outro numero"
  1. Altere a linguagem para permitir atribuições paralelas:
    a, b, c := 2, 3, 4
    a, b := b, a
  1. Altere a linguagem para que o comando exiba passa ser usado com números e com textos.
  exiba "Ola Mundo"
  exiba 2021