沒有代碼的編程語言:Folders
之前我們介紹過“Whitespace”編程語言,這是一種很奇葩的編程語言,在“Whitespace”編程語言中,任何非空白的字符都是被忽略的,只有空格符,tab和換行符被認(rèn)為是有效的語義字符。也就是說,你可以把用“Whitespace”編程語言編寫的代碼藏在其他的文本、代碼中,具有隱形代碼的效果。
而今天要說的這種語言更是奇葩,它叫做 Folders ,顧名思義,這種語言沒有代碼,也沒有代碼文件,這種語言的代碼就是操作系統(tǒng)的目錄結(jié)構(gòu)。
事實(shí)上,文件系統(tǒng)目錄結(jié)構(gòu)跟普通編程語言的過程結(jié)構(gòu)非常相似,它就像各種的語法樹,在“Folders”編程語言中,代碼的結(jié)構(gòu)就是這樣的,代碼命令通過目錄結(jié)構(gòu)和其包含的子目錄的名稱構(gòu)成。
比如,下面就是一個(gè)“Hello,World”程序:
它是如何運(yùn)行的?
這最外層的目錄是程序的名稱,“Hello World”。目錄的讀取是按目錄順序,這段程序的***層子目錄是“Setup”。“Setup”是打印命令的別稱;下面有張表描述了各種名稱代表的語 義,這些名稱區(qū)分于Windows系統(tǒng)里最常見的那些目錄名,比如“Program files”。
接著,目錄里出現(xiàn)了很多“Img”目錄,名稱中的 “(2),” “(3),”等數(shù)字是忽略不計(jì)的,它們用來區(qū)分同一目錄下多個(gè)相同的目錄。” – Copy”這樣的字符也是忽略不計(jì)的(這些字符是拷貝目錄時(shí)Windows自動(dòng)加入的)。而目錄名稱前打頭的數(shù)字是程序員用來控制程序流程的。下面是一個(gè) 樣例:
New folder (2) New folder - Copy New folder - Copy (2) If if 10 if if - Copy (1) etc.
字符串“Hello, World!”被分成了四段,這樣可以讓語義看起來更加清晰好讀。”%20“是空白符的意思。
”Folders“是一種面向詞匯的編程系統(tǒng),這是跟其它大多數(shù)的面向邏輯的編程系統(tǒng)的重要區(qū)別。”Folders“目錄里可以放各種的文件,但這些文件是忽略不計(jì)的。
下面是一個(gè)用”Folders“編程語言編寫的“99 Bottles of Beer”程序。“99 Bottles of Beer”通常是用來表達(dá)最簡(jiǎn)單的運(yùn)用循環(huán)和變量的代碼例子,請(qǐng)注意下面一個(gè)對(duì)于有空格和逗號(hào)的特殊處理:
目前,”Folders“編程語言只支持Windows平臺(tái)。它的代碼解析器是開源的,你可以在github上找到它。https://github.com/rottytooth/Folders