最‘乾淨’的程式語言——空白程式語言
最‘乾淨’的程式語言——空白程式設計
prog = ` `
您沒看明白。上面的prog,是一個程式的原始碼,執行的結果,是顯示hi
空白不代表不存在,更不能因為它們不突出,就可以自然地被忽略。我們在Sublime裡選擇高亮,就可以看到裡面的空格、製表符tab和換行符。
並且,我也給您看了它對應的腦操語言
程式碼和用\t\n轉義後的空白語言
程式碼。
WAT?!
事實上,低頭看看你的鍵盤,哪個按鍵最大並唯一需要兩個大拇指的專門關照?你的右手小拇指,最多尋找的是不是回車
?為什麼每個按鍵都會在shift
的壓迫下交錢(Capitalize),而只有空格
製表
回車
三白,可以特立獨行?
好了。肺發太多。直接上Go寫的虛擬機器(直譯器)程式吧:
/* Markspace is an esoteric programming language
inspired by Brainfuck [1] and Whitespace [2].
It uses Harvard Architecture with 7 instructions below,
where \s as Space (ASCII 32), \t as Tab (ASCII 9) and \n as Line Feed(ASCII 10).
\s Increment current data
\t\s Decrement current data
\t\t Increment current data pointer
\t\n Decrement current data pointer
\n\s Output current data as ASCII charactor
\n\t Mark loop start. If current data is zero, jump after loop end
\n\n Mark loop end. If current data is nonzero, jump after loop start
[1] http://en.wikipedia.org/wiki/Brainfuck
[2] http://compsoc.dur.ac.uk/whitespace/
Copyright (c) 2012 fango
*/
package main
import "fmt"
var (
a [2]byte
//prog = "++++++++++[>++++++++++<-]>++++.+."
//prog = " \n\t\t\t \t\n\t \n\n\t\t \n \n "
prog = `
`
p = 0
pc = 0
ls = -1
le = -1
)
func main() {
for {
switch prog[pc] {
case ' ': // '+':
a[p]++
case '\t':
pc++
switch prog[pc] {
case ' ': // '-'
a[p]--
case '\t': // '>'
p++
case '\n': // '<':
p--
}
case '\n':
pc++
switch prog[pc] {
case ' ': // '.'
fmt.Print(string(a[p]))
case '\t': // '['
if a[p] == 0 {
pc = le
} else {
ls = pc
}
case '\n': // ']':
if a[p] != 0 {
pc = ls
} else {
le = pc + 1
}
}
}
pc++
if pc == len(prog) {
return
}
}
//Output:
//hi
}
相關文章
- 20 種最奇怪的程式語言
- GitHub 上最流行的程式語言Github
- 哪種程式語言最流行?
- C語言建立空白Windows視窗程式碼C語言Windows
- 把程式語言看做語言
- 哪種程式語言的開發者最幸福?
- 最值得你學習的程式語言
- 哪種程式語言最熱門?
- 最喜歡與最討厭的程式語言
- 聊聊C語言/C++—程式和程式語言C語言C++
- 程式語言BASIC程式設計師的啟蒙語言C程式程式設計師
- 2014最流行的程式語言
- 國人開發的程式語言-“明”語言
- PLSQL程式語言SQL
- sql程式語言SQL
- C語言程式C語言
- C語言:一種高效、易學的程式語言C語言
- java是最值得學習的程式語言嗎?Java
- 十大最容易找工作的程式語言
- 有史以來最出彩的程式語言名字
- 你最喜愛的程式語言不夠好
- 是否需要漢語程式語言
- 程式語言的變遷
- 舌尖上的程式語言
- 奇特的程式語言特性
- 漢語是最了不起的語言
- 那些主流程式語言的知識,C語言(Ⅰ)C語言
- TIOBE 釋出 12 月程式語言排行榜,4個程式語言角逐年度語言
- 程式語言漫談
- 程式語言擬人化
- 程式語言面面觀
- Python程式語言Python
- 如何掌握程式語言
- 程式語言有哪些
- 開發者最討厭的程式語言:PHP、Ruby 中槍PHP
- 計算機程式語言的分類,解釋型語言、編譯型語言、指令碼語言的關係計算機編譯指令碼
- ‘程式語言‘ ’程式設計工具’程式設計
- 現代程式語言用什麼語言寫成?