没有代码的编程语言: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

加载余下内容▼

相关文章:

;