Skip to content

Repository files navigation

Paradigmas de Linguagens de Programação

Repositório do projeto da disciplina Paradigmas de Linguagens de Programação (in1007) da pós-graduação em Ciência da Computação da UFPE, ministrada pelo Prof.Dr. Augusto Sampaio.

Estrutura

Diretório Descrição
Expressoes1, Expressoes2, Funcional1-3, Imperativa1-2, Objetos1-2 Interpretadores das linguagens, em Java
Testes Programas de exemplo de cada linguagem
AppUI Interface clássica (Swing e versão web via TeaVM)
WebAPI Ponto de entrada único das linguagens, compilado para JavaScript com TeaVM (plp.js)
WebUI A nova IDE web (notebooks, execução e depuração no navegador)
docs Página da disciplina (Jekyll/GitHub Pages)

Ambas as interfaces são publicadas automaticamente pelo workflow docs.yml:

Execução

  • Local
cd <Linguagem>
mvn clean generate-sources compile exec:java
  • Interface clássica (AppUI)
mvn package
# Jar será gerado em ./AppUI/target/ e o JS (TeaVM) em ./AppUI/target/javascript/
  • WebAPI
mvn package
# JS será gerado em ./WebAPI/target/javascript/
  • IDE web (WebUI)
cd WebUI
npm install
npm start
# compila o WebAPI com TeaVM e sobe a IDE em http://localhost:4004

Contribuições

  • Unificar os projetos das linguagens e Applet no mesmo repositório - (commit)
  • Refactoring para adicionar o ambiente na LE1 - (commit)
  • Correção de problemas relativos à quantidade de argumentos em funções nas LFs - (commit)
  • Separar ContextoExecucaoFuncional entre ContextoExecucao[Valor] e ContextoFuncional[DefFuncao], na LF1 - (commit)
  • Geração/atualização automática do Applet através do Maven - (commit, commit)
  • Refactoring na LE2 e LFs: aplicar o padrão composite na avaliação de Declarações - (refactors, LF3, LF2)
  • Correção da Linguagem Funcional 3 - (commit)
  • Mudança para utilizar ambiente auxiliar no elabora ao invés de map auxiliar - (commit)
  • Atualizar a página da disciplina com as novas modificações
  • Adicionar javacc sources para debug (commit)
  • Corrigir problemas da LF3 ao executar quicksort (commit)
  • Atualizar geração do applet (commit)
  • Incluir os módulos WebAPI e WebUI (nova IDE web) (commit)
  • Adicionar suporte à depuração nas linguagens, expondo o snapshot do ambiente de compilação (commit)

Observações

  • O código disponível do github não tem ligação com o conteúdo da página da disciplina. Assim qualquer contribuição feita no repositório, não irá refletir no conteúdo da página, sendo necessário copiar os resultados para a página após o fim do período. A importância de estar dessa forma é porque assim, caso ocorra problema de conexão (ex.: o cin esteja sem internet), ainda será possível ter acesso ao conteúdo.

Créditos

Baseado no projeto da equipe:

A nova IDE web (WebUI) foi desenvolvida por:

About

No description, website, or topics provided.

Resources

Stars

9 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages