沒有代碼的編程語言:Folders

之前我們介紹過“Whitespace”編程語言,這是一種很奇葩的編程語言,在“Whitespace”編程語言中,任何非空白的字符都是被忽略的,只有空格符,tab和換行符被認爲是有效的語義字符。也就是說,你可以把用“Whitespace”編程語言編寫的代碼藏在其他的文本、代碼中,具有隱形代碼的效果。

而今天要說的這種語言更是奇葩,它叫做 Folders ,顧名思義,這種語言沒有代碼,也沒有代碼文件,這種語言的代碼就是操作系統的目錄結構。

事實上,文件系統目錄結構跟普通編程語言的過程結構非常相似,它就像各種的語法樹,在“Folders”編程語言中,代碼的結構就是這樣的,代碼命令通過目錄結構和其包含的子目錄的名稱構成。

比如,下面就是一個“Hello,World”程序:

tumblr_inline_niucicPBBF1qaohdj

它是如何運行的?

這最外層的目錄是程序的名稱,“Hello World”。目錄的讀取是按目錄順序,這段程序的第一層子目錄是“Setup”。“Setup”是打印命令的別稱;下面有張表描述了各種名稱代表的語義,這些名稱區分於Windows系統裏最常見的那些目錄名,比如“Program files”。

tumblr_inline_niucinYgO41qaohdj

接着,目錄裏出現了很多“Img”目錄,名稱中的 “(2),” “(3),”等數字是忽略不計的,它們用來區分同一目錄下多個相同的目錄。” – Copy”這樣的字符也是忽略不計的(這些字符是拷貝目錄時Windows自動加入的)。而目錄名稱前打頭的數字是程序員用來控制程序流程的。下面是一個樣例:

New folder (2)
New folder - Copy
New folder - Copy (2)
If
if
10 if
if - Copy (1)
etc.

字符串“Hello, World!”被分成了四段,這樣可以讓語義看起來更加清晰好讀。”%20“是空白符的意思。

”Folders“是一種面向詞彙的編程系統,這是跟其它大多數的面向邏輯的編程系統的重要區別。”Folders“目錄裏可以放各種的文件,但這些文件是忽略不計的。

下面是一個用”Folders“編程語言編寫的“99 Bottles of Beer”程序。“99 Bottles of Beer”通常是用來表達最簡單的運用循環和變量的代碼例子,請注意下面一個對於有空格和逗號的特殊處理:

tumblr_inline_niucj08diK1qaohdj

目前,”Folders“編程語言只支持Windows平臺。它的代碼解析器是開源的,你可以在github上找到它。https://github.com/rottytooth/Folders

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章