Git Product home page Git Product logo

guivahl / programacao-de-sistemas Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 1.0 102 KB

Projeto desenvolvido na disciplina de Programação de Sistemas, 5o semestre da Ciência da Computação / UFPEL. O objetivo era construir um simulador de Máquina Virtual que recebe código em Assembly, realiza as operações internamente e fornece visualmente a execução do algoritmo em uma interface gráfica.

Java 99.28% Assembly 0.72%

programacao-de-sistemas's Introduction

Projeto de Programação de Sistemas 💻

GitHub repo size GitHub language count GitHub forks

O que é? 🤔

Esse repositório consiste no projeto desenvolvido durante a dicisplina de Programação de Sjstemas, onde nosso trabalho é construir uma máquina virtual e um montador no qual irão receber códigos em assembly como input e seu output será a execução do código fonte fornecido.

Saiba mais acessando a wiki do repo

Como executar? ☕

Vamo agora ao passo a passo para você colocar as mãos na massa nesse projeto! 🤩

Pré requisitos ✅

  • Java versão >17
  • Git >2.3

Clonando repositório ✍🏼

$ git clone https://github.com/guivahl/programacao-de-sistemas.git

Executando 👨‍💻

  • Navegue até a pasta onde você clonou o projeto
$ cd virtual-machine  
  • Entre na pasta src, para compilarmos o projeto
$ cd src
$ javac vm/App.java -d ../
  • depois de compilar o arquivo, vamos voltar a pasta raiz e executá-lo
$ cd ..
$ java vm.App  

Configurando Linter

Configuração do Linter para o projeto

Colaboradores 🤝

Foto da Fernanda Kipper Github
Fernanda Kipper
Foto do Gui Vahl
Guilerme Vahl
Foto do Vinicius Munchow
Vinicius Munchow
Foto do Bruno Volcan
Bruno Volcan
Foto do Vinicius Perruzi
Vinicius Perruzi
Foto do Afonso Cabreira
Afonso Cabreira
Foto de Isabele Scherdien
Isabele Scherdien

programacao-de-sistemas's People

Contributors

fernanda-kipper avatar vinicius-munchow avatar bvolcan avatar vinigperuzzi avatar afonsotc avatar guivahl avatar ischerdien avatar

Stargazers

Mauricio Martins avatar Marco Polo Jr avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

vinigperuzzi

programacao-de-sistemas's Issues

Integrar interface com execução do montador

Na interface há um botão mount que ao ser clicado deve chamar o montador, para o mesmo realizar a montagem do programa em assembly e logar na interface nos passos, ou seja, a classe logger deve ser passada para a classe assembler e a última deve chamar o método .logMessage ao longo de sua execução para para informar ao usuário o que está acontecendo.
Logo em seguida, ficará disponível para o usuário executar na máquina virtual, através do botão run, o programa que foi montado pelo montado.

Acredito que essa integração é fácil, é apenas remover a chamada do método assemble do construtor da classe Assembler, e no construtor da classe Àpp salvar a instância do assembler para que depois dentro do ActionListenener, quando o mount for clicado, chamar this.assembler.assemble();
Já a parte dos logs, na hora de instanciar o assemble, passar o singleton de logger como parâmetro e dentro da classe Assembler adicionar os logs, tanto de erro quanto de sucesso.

Implementar classe memória

  • Iniciar a memória
  • Implementar método para buscar dados na memória
  • Implementar método para salvar dados na memória
  • Implementar método para pushar dados na memória

Parabéns !!!!

Parabéns !!! Trabalho bem executado e dentro das especificações.
Fico feliz pelo aprendizado além do conteúdo da disciplina.
E o mais importante - manteram a tradição do tchau !!!
Boas férias !!!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.