https://github.com/maxxsoft/ionia
Design and implementation of a functional scripting language.
https://github.com/maxxsoft/ionia
compiler functional-language interpreter scripting-language vm
Last synced: 4 months ago
JSON representation
Design and implementation of a functional scripting language.
- Host: GitHub
- URL: https://github.com/maxxsoft/ionia
- Owner: MaxXSoft
- License: gpl-3.0
- Created: 2019-03-18T10:10:32.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-09-16T14:26:31.000Z (over 6 years ago)
- Last Synced: 2025-03-29T14:41:27.777Z (10 months ago)
- Topics: compiler, functional-language, interpreter, scripting-language, vm
- Language: C++
- Size: 149 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ionia
Design and implementation of a functional scripting language.
Ionia is simple, lightweight functional programming language, with an interpreter and VM runtime implementation.
## EBNF of Ionia
```ebnf
program ::= {stat};
stat ::= define | funcall;
define ::= id "=" expr;
expr ::= func | funcall | define | id | number;
func ::= "(" [id {"," id}] ")" ":" expr;
funcall ::= (id | funcall) "(" [expr {"," expr}] ")";
id ::= re"~([0-9]|=|\(|\)|,|:)(=|\(|\)|,|:)*";
number ::= re"0|([1-9][0-9]*)";
```
## To-Do List
- [x] Interpreter
- [x] VM runtime
- [x] Compiler
- [x] Disassembler
- [ ] Documents
- [ ] Optimizer
- [x] REPL
- [ ] JIT
- [ ] Tutorial
## Copyright and License
Copyright (C) 2010-2019 MaxXing, MaxXSoft. License GPLv3.