2022-08-18 00:16:48 +00:00
# ![ARF](assets/logo.svg)
2022-08-09 05:51:56 +00:00
2024-02-27 19:12:45 +00:00
This repository is no longer being developed. The ARF language has since gone through several revisions and has been given a different name (FSPL), and the new version can be found [here ](git.tebibyte.media/fspl/fspl ).
2024-02-13 19:14:33 +00:00
README of this repository:
2022-08-09 05:51:56 +00:00
The ARF programming language.
This is still under development and does not compile things yet. Once complete,
it will serve as a temporary compiler that will be used to write a new one using
the language itself.
2022-08-10 01:15:49 +00:00
The old repository can be found [here ](https://github.com/sashakoshka/arf-old ).
ARF is a low level language with a focus on organization, modularization, and
code clarity. Behind it's avant-garde syntax, its basically just a more refined
version of C.
A directory of ARF files is called a module, and modules will compile to object
files (one per module) using C as an intermediate language (maybe LLVM IR in the
future).
2022-09-19 05:28:56 +00:00
Be sure to visit the [wiki ](https://git.tebibyte.media/arf/arf/wiki ) for more
information.
2022-08-10 01:15:49 +00:00
2022-08-25 04:51:54 +00:00
## Planned Features
2022-08-10 01:15:49 +00:00
- Type definition through inheritence
- Struct member functions
- Go-style interfaces
- Generics
- A standard library (that can be dynamically linked)
2022-08-09 05:51:56 +00:00
## Checklist
- [X] File reader
2022-08-11 23:37:00 +00:00
- [X] File -> tokens
2022-09-05 16:47:03 +00:00
- [X] Tokens -> syntax tree
2022-08-09 05:51:56 +00:00
- [ ] Syntax tree -> semantic tree
- [ ] Semantic tree -> C -> object file
2022-08-10 01:15:49 +00:00
- [ ] Figure out HOW to implement generics
- [ ] Create a standard library
2022-08-25 04:51:54 +00:00
## Compiler Progress
< img src = "assets/heatmap.png" alt = "Progress heatmap" width = "400" >
- Yellow: needs to be completed for the MVP
- Lime: ongoing progress in this area
- Green: Already completed