The Monty Bytecode Interpreter is a program written in C programming language that reads and executes Monty bytecode files. Monty is a simple programming language that uses a stack data structure.
- Reads Monty bytecode files and executes the specified instructions.
- Supports various stack manipulation and arithmetic operations.
- Provides clear error messages for incorrect input or unexpected behavior.
- A C compiler (e.g., GCC)
- Clone the repository:
git clone https://github.com/khairatAA/monty
- Compile the source code:
gcc -Wall -Werror -Wextra -pedantic -std=c89 *.c -o monty
Run the Monty interpreter with the following command:
./monty bytecode_file
Replace bytecode_file
with the path to your Monty bytecode file.
The interpreter supports the following opcodes:
Opcodes | File |
---|---|
0. push | push.c |
1. pint | pint.c |
2. pop | pop.c |
3. swap | swap.c |
4. add | add.c |
5. nop | nop.c |
6. sub | sub.c |
7. div | div.c |
8. mul | mul.c |
9. mod | mod.c |
10. comments | hash.c |
11. pchar | pchar.c |
12. pstr | pstr.c |
13. rotl | rotl.c |
14. rotr | rotr.c |
15. stack, queue | SOON |
16. Brainfuck | 1000-school.bf |
17. Add two digits | 1001-add.bf |
18. push | push.c |
Here's an example Monty bytecode file that adds two numbers:
push 5
push 10
add
pall
When executed, the above bytecode will output: 15
This project was done by:
- Khairat Adesina [email protected]
- Joshua Oseghale [email protected] Github: JentleJoe