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.
| 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:
- IDE web: https://augustosampaio.github.io/PLP/ide/
- Interpretador clássico: https://augustosampaio.github.io/PLP/interpretador.html
- 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- 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)
- 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.
Baseado no projeto da equipe:
- Luana Martins (lms7@cin.ufpe.br)
- Marcel Rebouças (mscr@cin.ufpe.br)
- Renato Oliveira (ros3@cin.ufpe.br)
A nova IDE web (WebUI) foi desenvolvida por:
- Matheus Andrade (mvtna@cin.ufpe.br)
- Uanderson Silva (urfs@cin.ufpe.br)