Update readme.md

This commit is contained in:
Peter Smit
2024-04-16 08:45:32 +02:00
committed by GitHub
parent 49da7b422c
commit f39f2de6e5

View File

@@ -1,11 +1,17 @@
# IBAFlang (Imperative But Also Functional language) # IBAFlang (Imperative But Also Functional language)
As you may realise from reading the language definition, the language is more I than F. That's why this is just version 0.1 of IBAF. This repo contains the language definition for IBAF, a language defined in the CBS meta-language. CBS's component-based approach allowed me to define this language with relative ease and generate an editor for syntax highlighting. I highly recommend checkout out the project [at this URL](https://plancomps.github.io/CBS-beta/).
This repo contains the projects for IBAF. As you may realise from reading the language definition, the language for now is more I than F. That's why this is just version 0.1 of IBAF. If you're interested in seeing how a more complex language can be defined, I recommend taking a look at the language definitions for [MiniJava](https://plancomps.github.io/CBS-beta/math/Languages-beta/MiniJava/) or [OCaml-Light](https://plancomps.github.io/CBS-beta/math/Languages-beta/OCaml-Light/).
## Project structure
In the repo there are three projects that can be opened in [Spoofax](https://spoofax.dev/)
- `IBAF-cbs` is the project that contains the source `.cbs` files that defines the language. - `IBAF-cbs` is the project that contains the source `.cbs` files that defines the language.
- `IBAF-Editor` is the Spoofax project that can be used to build the IDE for IBAF. - `IBAF-Editor` is the Spoofax project that can be used to build the IDE for IBAF.
- `IBAF-Tests` is a project containing some example programs and the funcon terms they compile to. - `IBAF-Tests` is a project containing some example programs and the funcon terms they compile to.
To actually compile the language yourself you will need to set up the CBS workbench locally. You can find out more on [the CBS-IDE page](https://plancomps.github.io/cbs-ide/docs/)
## Some relevant papers: ## Some relevant papers:
- CBS introduction: [Software meta-language engineering and CBS](https://doi.org/10.1016/j.jvlc.2018.11.003) - CBS introduction: [Software meta-language engineering and CBS](https://doi.org/10.1016/j.jvlc.2018.11.003)
- In-depth look at funcons: [Fundamental Constructs in Programming Languages](https://doi.org/10.1007/978-3-030-89159-6_19) - In-depth look at funcons: [Fundamental Constructs in Programming Languages](https://doi.org/10.1007/978-3-030-89159-6_19)