aboutsummaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..a5a85fb
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,24 @@
+# BLoCade
+
+[BLoC](https://github.com/marvinborner/bloc) is an optimized file format
+for binary lambda calculus (BLC).
+
+BLoCade is the BLoC-aid and turns BLoC files back into executable files
+(targets). This is useful for [bruijn](https://bruijn.marvinborner.de),
+benchmarking, or general term optimization.
+
+## Targets
+
+- BLC (sharing by abstraction): Terms having BLoC entry indices get
+ abstracted and applied to the respective term. The indices get
+ converted to De Bruijn indices. Flag `bblc` (bits) and `blc` (ASCII
+ 0/1).
+- BLC (unshared): Every BLoC entry gets reinserted into the original
+ term. Do not use this if you want efficiency or small files. Flag
+ `unbblc` (bits) and `unblc` (ASCII 0/1).
+- [Effekt](https://effekt-lang.org): Because, why not? Flag `effekt`.
+- Planned: Scala, HVM, C, LLVM, JS, Haskell
+
+## Benchmarks
+
+To be evaluated.