Paul-VB /
TechElevator-Capstone1
My First Capstone at Tech Elevator! A virtual vending machine written in C# using object oriented programming, CLI user input/output, File I/O, Unit testing, and more!
27/100 healthLoading repository data…
Hav0ck021 / repository
Virtual Machine Input/Output (vmio): máquina virtual escrita em C, contendo uma stack para execução de pequenos programas.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
vmio é uma implementação didática de uma pequena máquina virtual escrita em C. O projeto demonstra conceitos fundamentais de pilha, registradores e execução de instruções.
├── include # Declaração
│ ├── core.h # Fluxo central da máquina virtual
│ ├── registers.h # Registradores, ponteiros básicos e seus índices
│ └── stack.h # Implementação da pilha de controle (stack)
├── main.c
├── Makefile
├── README.md
└── src # Definição
│ ├── core.c # Implementação de cada instrução existente na VM
│ ├── registers.c
│ └── stack.c # Funções de push e pop para a pilha (stack) estática
O objetivo da vmio é demonstrar de forma simples como funciona uma máquina virtual baseada em:
A VM é intencionalmente simples, ideal para estudo ou experimentação.
A execução segue um loop:
Registradores importantes:
A stack suporta:
| Função | Descrição |
|---|---|
| stack_init | Inicializa a pilha e ajusta sp = -1. |
| stack_push | Insere um valor no topo. |
| stack_pop | Remove e retorna o valor do topo. |
Ela armazena inteiros e protege contra underflow e overflow.
As instruções são interpretadas pela função eval(). O loop principal está em run_vm():
while (running) {
eval(fetch(reg[ip]), &stack);
reg[ip]++;
}
| Instrução | Ação |
|---|---|
| PSH | empilha um valor imediato |
| POP | desempilha o topo |
| ADD | soma os dois valores do topo |
| EXT | encerra a execução |
A VM contém um pequeno programa embutido:
const int program[] = {
PSH, 5,
PSH, 6,
ADD,
EXT
};
Etapas da execução:
data pushed: 5
data pushed: 6
add: 11
Compile o projeto:
make debug
Limpe arquivos gerados:
make clean
Após compilar:
./debug
Saída prevista:
data pushed: 5
data pushed: 6
add: 11
Selected from shared topics, language and repository description—not editorial ratings.
Paul-VB /
My First Capstone at Tech Elevator! A virtual vending machine written in C# using object oriented programming, CLI user input/output, File I/O, Unit testing, and more!
27/100 healthjaidh01 /
A lightweight voice-enabled chatbot built using the Phi-3 Mini language model, deployed entirely on an Azure Virtual Machine (VM) and enhanced with voice input/output for a seamless conversational experience.
34/100 health