https://github.com/jack-q/picol
Pico-Language & Pictorial Illustrated Compiler Organization by Layer
https://github.com/jack-q/picol
compiler lexer parser picol quadruple visualization
Last synced: 7 months ago
JSON representation
Pico-Language & Pictorial Illustrated Compiler Organization by Layer
- Host: GitHub
- URL: https://github.com/jack-q/picol
- Owner: Jack-Q
- License: mit
- Created: 2017-05-18T07:32:47.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-16T15:40:39.000Z (over 7 years ago)
- Last Synced: 2025-05-14T09:44:28.474Z (9 months ago)
- Topics: compiler, lexer, parser, picol, quadruple, visualization
- Language: TypeScript
- Homepage: https://git.io/picol
- Size: 3.47 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Picol

[](https://travis-ci.org/Jack-Q/picol)
[](https://david-dm.org/Jack-Q/picol)
[](https://david-dm.org/Jack-Q/picol?type=dev)
[>> View Picol Online](https://git.io/picol)
## Picol as Pico-Language
> 1 Pico-L is 10-12L, a tiny volume that can hold only a small neuron.
In this project, a minimal C-like language is to be implemented for demonstrative purpose.
Since the language is so trivial that it is inadequate for any real world application,
this language is named as PicoL(Pico-Language, where "pico-" is 10-12).
## Picol as Pictorial Illustrated Compiler Organization by Layer
> Pico Playground for Picol
Pictorial Illustrated Compiler Organization by Layer is a serials of interactive
applications that illustrates the construction of a simple compiler
(of the PicoL).
## Usage
```bash
# compile and execute core CLI
npm run core "src-file.picol"
# watching code changes for core module
npm run dev:core
# watching code changes for UI module
npm run dev
# build UI module
npm run build
```
## Road map
Currently, this project is still in progress. Some of unimplemented features are listed below.
* Core Module (PicoL)
* [ ] Language specification
* [ ] Quadruple generator static type checking
* [ ] Executor dynamic type checking
* [ ] Reference to array implementation
* [ ] Symbol management for nested context
* [ ] More complete CLI
* UI (PICOL)
* [ ] Memory view for sparse array in JavaScript
* [ ] Mobile screen adaption
## License
Picol is licensed under MIT License. Copyright © 2017 Jack Q