https://github.com/ziyasal-archive/sky
Super simple programming language and tiny compiler developed for educational purpose in Scala
https://github.com/ziyasal-archive/sky
ast compiler-design education lexer programming-language scala sky transformer
Last synced: 10 months ago
JSON representation
Super simple programming language and tiny compiler developed for educational purpose in Scala
- Host: GitHub
- URL: https://github.com/ziyasal-archive/sky
- Owner: ziyasal-archive
- License: mit
- Created: 2016-12-09T13:54:44.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-06T16:43:07.000Z (over 9 years ago)
- Last Synced: 2025-07-31T16:51:13.452Z (11 months ago)
- Topics: ast, compiler-design, education, lexer, programming-language, scala, sky, transformer
- Language: Scala
- Homepage:
- Size: 13.7 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
sky
==========
> Super simple programming language and tiny compiler developed for educational purpose in Scala
## Motivation ##
Coding4fun, just trying to simplify how compilers work for who has interest
## How it works
Compilers(mostly) have 3 primary stages;
**Parsing**
- Lexical Analysis
- Syntactic Analysis
**Transformation**
Make some changes on AST
**Code Generation**
Create code from AST
```js
/----------\ /-----------------\ /-----------------\
/------\ | | | | | |
| Raw |____ | Parsing |_____ | Transformation |______ | Code Generation |
| Code | | | | | | |
\------/ \----------/ \-----------------/ \-----------------/
```
## Sample ##
```js
//TODO:
```
## Links ##
- [x] [Tokenizer](https://github.com/ziyasal/sky/blob/master/src/main/scala/lib/Tokenizer.scala)
- [x] [Parser](https://github.com/ziyasal/sky/blob/master/src/main/scala/lib/Parser.scala)
- [ ] Transformer
- [ ] CodeGen
- [ ] Compiler
## Step-By-Step Guide ##
TODO: