Sigil
Jump to navigation
Jump to search
Paradigm(s) | imperative |
---|---|
Designed by | TuxCrafting |
Appeared in | 2016 |
Memory system | stack-based and queue-based |
Dimensions | one-dimensional |
Computational class | Turing complete |
Major implementations | Original |
File extension(s) | .sigil |
Sigil is an esoteric programing language with only 5 meaningful characters: #$%()
.
Language overview
A sigil program can be described with the following EBNF syntax:
main = command; command = number ('(' command ')')*; number = /[#$%]*/;
The Sigil VM also have a stack and a queue.
Number system
The number system used by Sigil is a variant of base 3.
To convert a Sigil number to a decimal number:
- Convert
#
to0
,$
to1
and%
to2
- Convert the number to decimal from base 3
- Add 1 if the original number is not empty
Commands
- NOP #(x)(y) ADD $(x) NEGATE %(x) PUSH $# POP $$(x) ENQUEUE $% DEQUEUE %#(c)(x)(y) IF %$(c)(b) WHILE %%(n) NUMBER $##(c) PRINT CHARACTER $#$ INPUT CHARACTER $#%(n) PRINT NUMBER $$# INPUT NUMBER $$$(a)(b)...(c) CHAIN