paperStack
A stack oriented esoteric programming language inspired by poetry and forth
What is paperStack
- A stack oriented language
- An esoteric programming language
- Programming as an art form
- Code is writen as poetry
- A program is an algorith and a poem at the same time
Development
- Languages: Go (Golang)
- Libraries: Vyper, Cobra, Logrus, Testify
- Inspirations: Poetry, Porth, Forth, Shakespeare, Chef, ...
Documentation
Stack Operations
- Swap
|a| |b|
|b| -> |a|
|c| |c|
- Drop
|a|
|b| -> |b|
|c| |c|
- Dup
|a| |a|
|b| -> |a|
|c| |b|
- Dup2
|a| |a|
|b| -> |b|
|c| |a|
|d| |b|
- Over
|a| |b|
|b| -> |a|
|c| |b|
- Rot
|a| |c|
|b| -> |a|
|c| |b|
- Pop
|a| |a|
|b| -> |b|
|c| |c|
- Pop2
|a| |a|
|b| |b|
|c| -> |c|
- Push
|a| |x|
|b| |a|
|c| -> |b|
Math Operations
- Plus +
|a|
|b| -> |a+b|
|c| |c|
- Minus -
|a|
|b| -> |a-b|
|c| |c|
- Times *
|a|
|b| -> |a*b|
|c| |c|
- Divide /
|a|
|b| -> |a/b|
|c| |c|
- Power ^
|a|
|b| -> |a^b|
|c| |c|
- Modulus %
|a|
|b| -> |a%b|
|c| |c|
Comparrison Operations
- Equal ==
|a|
|b| -> |a==b|
|c| |c|
- Different !=
|a|
|b| -> |a!=b|
|c| |c|
- Lesser <
|a|
|b| -> |a
- LesserEq <=
|a|
|b| -> |a<=b|
|c| |c|
- Greater >
|a|
|b| -> |a>b|
|c| |c|
- GreaterEq >=
|a|
|b| -> |a>=b|
|c| |c|
Math Functions
- Abs (Absolute value)
|a| |Abs(a)|
|b| -> |b|
|c| |c|
- Sqrt (Square root)
|a| |Sqrt(a)|
|b| -> |b|
|c| |c|
- Max
|a|
|b| -> |Max(a,b)|
|c| |c|
- Min
|a|
|b| -> |Min(a,b)|
|c| |c|
- Floor
|a| |Floor(a)|
|b| -> |b|
|c| |c|
- Ceil
|a| |Ceil(a)|
|b| -> |b|
|c| |c|
- Exp (Exponential)
|a| |Exp(a)|
|b| -> |b|
|c| |c|
- Log (Logarithm)
|a| |Log(a)|
|b| -> |b|
|c| |c|
- Simetric
|a| |-a|
|b| -> |b|
|c| |c|
- Tan (Tangent)
|a| |tan(a)|
|b| -> |b|
|c| |c|
- Sin (Sine)
|a| |sin(a)|
|b| -> |b|
|c| |c|
- Cos (Cossine)
|a| |cos(a)|
|b| -> |b|
|c| |c|