天天看點

BrainFuck 解釋器(C語言實作)

碼農的業餘休閑活動就是去學習一門冷門的語言或者研究一項非主流的技術。brainfuck 是一門小巧的程式設計語言,顧名思義,閱讀這門語言的代碼就像在強奸你的大腦一樣。事實證明開發它的解釋器比讀懂它的 hello world 要快。

brainfuck隻有八條指令:

指令 含義 等價的c代碼

> 指針加一 ++ptr;

< 指針減一 --ptr;

+ 指針指向的位元組的值加一 ++*ptr;

- 指針指向的位元組的值減一 --*ptr;

. 輸出指針指向的單元内容(ascii碼) putchar(*ptr);

, 輸入内容到指針指向的單元(ascii碼) *ptr = getchar();

[ 如果指針指向的單元值為零,向後跳轉到對應的]指令的次一指令處 while (*ptr) {

] 如果指針指向的單元值不為零,向前跳轉到對應的[指令的次一指令處 }

解釋器代碼如下:

hello world:

繼續閱讀