Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/superjmn/plotty
C language compiler from scratch for a custom architecture, with virtual machine and all
https://github.com/superjmn/plotty
c c-language compiler csharp emulator net parser parsing risc superpower uwp virtual-machine
Last synced: 24 days ago
JSON representation
C language compiler from scratch for a custom architecture, with virtual machine and all
- Host: GitHub
- URL: https://github.com/superjmn/plotty
- Owner: SuperJMN
- Created: 2018-01-03T11:31:15.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-04T22:28:56.000Z (over 2 years ago)
- Last Synced: 2024-09-30T01:04:42.846Z (about 1 month ago)
- Topics: c, c-language, compiler, csharp, emulator, net, parser, parsing, risc, superpower, uwp, virtual-machine
- Language: C#
- Homepage:
- Size: 401 KB
- Stars: 43
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Plotty
## A custom architecture, compiler and virtual machineThis is **Plotty**, a side-project that I've made just for **The Fun Of Learning®.**
It features a custom architeture (Plotty) that can be programmed using the C language.
## It has Compiler!
The compiler is the star of this project. It's coded from scratch in C#. The AST is generated with the help of [Superpower](https://github.com/nblumhardt/superpower).## Superpower? What's that?
It's a very interesting and powerful library by [Nicholas Blumhardt](https://github.com/nblumhardt) to build parsers easily in .NET. You have to take a look at it ASAP.
## It's also a virtual machine
Plotty has an emulator of a (Plotty) virtual machine. It runs the code generated by the compiler. How else would you run the code? :)
There are projects in the solution to visualize the execution of the code.
The main application is a Universal Windows Application:![image](https://user-images.githubusercontent.com/3109851/39309373-1eccb2d0-4968-11e8-8443-e6c713d352b0.png)
# Do you want to see it running?
Then, watch [this video](https://youtu.be/Y30JQOP3npQ) :)Questions? Suggestions?
Want to know more?
Let's talk! Find me on Telegram https://www.t.me/superjmn