Shen-C is a C port of the Shen programming language.
Shen is a portable functional programming language developed by Mark Tarver that offers
- Pattern matching
- Lambda calculus consistency
- Macros for defining domain specific languages
- Optional lazy evaluation
- Optional static type checking based on Sequent calculus
- An integrated fully functional Prolog
- An inbuilt compiler-compiler, Shen-YACC
Shen-C is implemented as an interpreter, mainly tested on Linux (Ubuntu 18.04) using Clang.
The iOS version of Shen-C is available on the App Store, which is a full featured Shen REPL with a customized keyboard for both iPhone and iPad.
Other ports of Shen by the Shen-C author includes
- Shen-JVM
- Shen for Android, which is a full featured Shen REPL with a customized keyboard for Android on Google Play
make
A binary file named shen-c
will be created under the project_root/bin
directory.
brew install libgc
-
Change directory to the project root
-
Compile Shen-C
make
A binary file named shen-c
will be created under the project_root/bin
directory.
- Run Shen-C REPL by using make command
make repl
or if rlwrap is installed
make rrepl
- Run Shen-C REPL directly
Set the SHEN_C_HOME
environment variable to the Shen-C project root
If you are using bash for a Unix shell
export SHEN_C_HOME=/home/user/shen-c
and then
alias shen-c='$SHEN_C_HOME/bin/shen-c'
or if rlwrap is installed
alias shen-c='rlwrap $SHEN_C_HOME/bin/shen-c'
and finally
shen-c
- Quit Shen-C REPL
Pass an exit status
(exit 1)
- Official website of Shen
- The Shen OS Kernel Manual
- The Official Shen Standard
- Shen Community Wiki
- The Book of Shen: third edition
Copyright (c) 2010-2015, Mark Tarver
Shen is released under the BSD License.
Copyright (c) 2019, Tatsuya Tsuda Shen-C is released under the MIT License.