Este repositório contém o Projeto final da Disciplina Software Básico de 2020/1. O trabalho consiste em implementar em C/C++ uma versão da Java Virtual Machine com um Leitor/Exibidor de bytecode.
Alunos:
- Diego Antônio Barbosa Cardoso - 16/0005116
- Ivan Bastos Lancellotti - 16/0009057
- João Marcos Schmaltz Duda - 15/0132131
- Kevin da Silva Souto - 16/0046688
- Matheus Rodrigues Guimarães - 15/0141661
Utilize o comando make
na raiz do diretório. O Makefile
irá utilizar o
comando de compilação g++ src/*.cpp -std=c++11 -Wall -o bin/jvm
.
Entre na pasta bin e rode o comando ./jvm <arquivo.class>
, substituindo o <arquivo.class>
pelo arquivo que deseja testar. Exemplo: .\bin\jvm.exe .\examples\HelloWorld.class
.
- arrays simples
- arrays.length
- arrays multidimensionais
- arrays de referencia
- doubles
- floats
- longs
- inteiros
- shorts
- strings
- desvios com cat 1
- operacoes logicas com cat1
- operacoes de deslocamento com cat 1
- operacoes aritimeticas de cat 2
- operacoes de deslocamento de longs
- system.out.println (int, float, string e booleano)
- conversao de e para cat 2
- iteracao
- switches
- fields
- interfaces
- recursao
- metodos estaticos
- metodos nao estaticos
- objetos
- operacoes de retorno
- operacoes de manipulacao de pilha
- consistencia
- exceptions
- invokes
- polimorfismo e reescrita