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: 3 months 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 5 years ago)
 - Default Branch: master
 - Last Pushed: 2024-09-30T10:36:53.000Z (about 1 year ago)
 - Last Synced: 2025-06-21T12:37:27.387Z (5 months ago)
 - Topics: aarch64, haskell, languages, stack-based, stack-based-language, x86-64
 - Language: Haskell
 - Homepage:
 - Size: 4.49 MB
 - Stars: 58
 - Watchers: 3
 - Forks: 3
 - 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 functions
    Hopefully 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.