igorw/chicken

用PHP编写的Chicken VM。

dev-master 2013-12-14 16:01 UTC

This package is not auto-updated.

Last update: 2024-09-09 14:05:14 UTC


README

chicken

PHP实现的Chicken VM,从JavaScript移植而来。

什么是Chicken?它是一种基于单个符号的语言:chicken。实际上,有几个令牌:chicken、空格和换行符。一行中的chicken数量对应一个操作码。

这大致翻译成一种汇编语言。支持的运算有chicken(字符串)、+-*==、加载、存储、跳转、字符和文字数字。

内存模型有指向栈本身的指针和作为栈的前两个元素的输入。随后是操作码,由0分隔。操作码运行到0为止,此时返回栈顶。每个操作消耗一个或多个元素,然后将其结果推入栈中。

引用实现是用JavaScript编写的,是一件艺术品。

用法

chicken

低级chicken解释器。

Quine

$ echo chicken | bin/chicken

Cat

$ echo chicken | bin/chicken foo <<EOF
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

EOF

要启用指令和栈的调试日志记录,请传递--debug选项

$ echo chicken | bin/chicken --debug

eggsemble

Eggsembler。编译成chicken。

打印A

$ (bin/eggsemble | bin/chicken) <<EOF
push 5
push 13
rooster
bbq
axe
EOF

chickenasm

ChickenASM编译成eggsembly。

打印A

$ (bin/chickenasm | bin/eggsemble | bin/chicken) <<EOF
push 5
push 13
multiply
char
exit
EOF

计数

$ cat examples/count.cha | bin/chickenasm | bin/eggsemble | bin/chicken 3

99 chickens

$ cat examples/99chickens.cha | bin/chickenasm | bin/eggsemble | bin/chicken 9

ChickenASM是chicken汇编的不同方言。此工具允许翻译成eggsembly。

参考文献