Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Artifact ID: | 8a915798b2e8f98d0ee5e34bf28214220a83f4fe |
---|---|
Page Name: | Position Independent Source Code |
Date: | 2020-02-29 21:41:43 |
Original User: | yumaikas |
Mimetype: | text/x-markdown |
Parent: | ce571f11ab168fb708235bc82e9a3cd76551e6f7 |
Position Independent Source Code
PISC is a stack-based programming language that is primarily inspired by factor, TCL, bash and a little bit of python, written in go. It's currently a study in how far one can take code quotations, polymorphic stacks and pervasive dynamism.
Status
PISC is currently not in active development. It has served it's purpose for me as a educational experience. That being said, it's a relatively small codebase, and I am more than happy to answer questions about it. Feel free to reach out on either mastodon (@yumaikas@mastodon.social), or at yumaikas94 on the googles mail service.
Noteworthy things can be found in the announcements
"Hello, World!" println
To get a feel for the basics of PISC, check out PISC in Y minutes
Some examples (which you can try in the playground):
# String building ${ "The answer is " 6 7 * >string ", but we don't know the question" } /* Defining an adjustable fizzbuzz word */ : fizzbuzz-n ( n -- ) :n /* Store from stack to n local */ 1 :i /* Store 1 into num variable */ $n [ $i 3 divisor? [ "Fizz" ] [ "" ] if :f $i 5 divisor? [ "Buzz" ] [ "" ] if :b $f $b str-concat :fb $fb len 0 > [ $fb println ] [ $i println ] if ++i ] times ; 25 fizzbuzz-n
The largest achievement in PISC to date is a CSV parser.
Installing From Source
Before you can install PISC for trying out, you'll need to install Go 1.9 or newer.
There are two ways to install PISC right now
1) Install fossil and run
mkdir "$GOPATH/src/pisc" && cd "$GOPATH/src/pisc"
fossil clone https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil PISC.fossil
2) Using git:
mkdir "$GOPATH/src/pisc" && cd "$GOPATH/src/pisc"
git clone github.com/yumaikas/PISC-mirror .
In the future, a different URL for PISC is planned, but has not been setup as yet.
Once you have Go, and have PISC somewhere where the go compiler can work with it, you can run go get
to fetch PISC's go dependencies, and go build -o pisc
to build the PISC interpreter.
Once you have PISC built, pisc -i
will open an interactive PISC session.
Other items
Contact
If you have questions about PISC, feel free to email me at yumaikas94 at Google's mail service.