https://github.com/amdzy/jackvm
https://github.com/amdzy/jackvm
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/amdzy/jackvm
- Owner: amdzy
- License: mit
- Created: 2022-12-21T08:58:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-31T16:27:58.000Z (over 2 years ago)
- Last Synced: 2025-01-22T02:28:33.541Z (4 months ago)
- Language: Java
- Size: 58.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Jack Programming Language
## Compiler and Virtual MachineThis project is about building a high level OOP language called jack using java.
## Features
Jack is a Turing-complete, object-oriented language, with most of the features that any modern language has, such as branching, loops, assignments, arrays, classes, methods, arithmetic operations and more.## Syntax
Jack has a C-like syntax. Reserved words in Jack are:
| | |
| :------------- | :------------- |
| this | field |
| static | constructor |
| method | function |
| int | char |
| boolean | var |
| let | do |
| while | if |
| else | return |
| true | false |
| null | void |### Compilation
The Jack language is compiled in a two-tier process:
The code is first translated to an intermediate program (like Java's *bytecode* and C#'s *Intermediate Language*) and then a Virtual Machine Translator finishes the compilation process either by interpreting the VM code or by translating to the target's machine assembly language.
## Project
The project consists of two parts
- [VM Translator](https://github.com/Soul-Remix/JackVM/tree/main/VMTranslator)
- Compiler (Not completed yet)## License
[MIT](https://choosealicense.com/licenses/mit/)