Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vmchale/kempe
Kempe is a compiled stack-based language
https://github.com/vmchale/kempe
aarch64 haskell languages stack-based stack-based-language x86-64
Last synced: 1 day ago
JSON representation
Kempe is a compiled stack-based language
- Host: GitHub
- URL: https://github.com/vmchale/kempe
- Owner: vmchale
- License: bsd-3-clause
- Created: 2020-09-18T14:51:48.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-30T10:36:53.000Z (about 1 month ago)
- Last Synced: 2024-11-07T16:43:59.461Z (5 days ago)
- Topics: aarch64, haskell, languages, stack-based, stack-based-language, x86-64
- Language: Haskell
- Homepage:
- Size: 4.49 MB
- Stars: 58
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-programming-languages - Kempe - Kempe is a stack-based language and toy compiler for x86_64 and aarch64. It requires the nasm assembler when targeting x86_64. (Uncategorized / Uncategorized)
README
# Kempe
Kempe is a stack-based language and toy compiler for x86_64 and aarch64. It requires the
[nasm](https://nasm.us/) assembler when targeting x86_64.Inspiration is primarily from [Mirth](https://github.com/mirth-lang/mirth).
See manual
[here](http://hackage.haskell.org/package/kempe/src/docs/manual.pdf). There is
also a tour of the compiler available
[here](http://vmchale.com/static/original/compiler.pdf).## Installation
Installation is via [cabal-install](https://www.haskell.org/cabal/):
```
cabal install kempe
```For shell completions put the following in your `~/.bashrc` or
`~/.bash_profile`:```
eval "$(kc --bash-completion-script kc)"
```## Defects
* Errors don't have position information
* Monomorphization fails on recursive polymorphic functionsHopefully this isn't too sinful; I can't think of any examples of recursive
polymorphic functions
* Can't export or call C functions with more than 6 arguments; can't call or
export large arguments (i.e. structs) passed by value.This is less of an impediment than it sounds like.
* Cyclic imports are not detected
* Imports are kind of defective### Comparison
You may wish to use [Mirth](https://github.com/mirth-lang/mirth/) or
[Factor](https://factorcode.org/) instead. Mirth is statically typed (similar to
Kempe) but less mature.