公共命名空间简述
制作计算机语言分两步走:填充公共命名空间、研究新编译原理。其中,公共命名空间用于确定语言是什么样子的,新编译原理用于实现语言。
简单来说,公共命名空间包括所有方言的所有句子。C语言、Java语言是方言,汉语、英语也是方言。不同方言的hello world程序,应该位于表格的同一行,而不同的列表示不同的方言。
把汉语和英语也视为方言,是为了接近自然语言编程。同时,也是为了提供一个对计算机语言进行说明的地方。例如:汉语方言A用于编程,汉语方言B用汉语解释每一行的句子都是什么功能。
每个人都能创建方言。由于公共命名空间仅负责确定语言是什么样子的,并不实现语言,所以,语言的使用者可以在这里畅所欲言,把自己对计算机语言的设想说出来,交给语言的制作者去衡量,并实现。
以下是一些填充公共命名空间的例子。
例1
字符串采用Python格式,由单引号、双引号、三个单引号、三个双引号标识。并且,在raw-string和f-string的基础上,再添加t-string, c-string, n-string。
name='zhao'
f'My name is {name}.'
r-string(raw-string)用于路径或正则表达式:
r'd:\text\1.txt'
r'\d{4,7}'
t-string(text-string)用于从文本文件中读入,它的字面值是一个路径,所以,也是r-string。
a=t'd:\text\1.txt'
执行后,a的值等于1.txt的内容。
c-string(cmd-string),启动一串命令行。
result=c'ls -l'
执行ls命令,并获取执行的结果。
在Perl语言中,用的是反单引号,
`dir`
n-string(note-string),就是注释,被编译器忽略的部分。单行注释可以用井号,多行注释就用n-string。
n'''这是一组
多行注释
有许多行组成。'''
例2
同位素用反斜线加小括号表示。同位素的概念取自化学中的元素周期表,互为同位素的语句,具有相似的功能,但却略有不同。print语句加不加换行就是一对儿典型的同位素。表示如下:
print('hello')\(换行)
print('hello')\(不换行)
使用专用的源代码浏览器,它可以显示或隐藏同位素。可以预见,公共命名空间中的句子都比较长,算上同位素以后就更长了,隐藏功能就成了必须的。
总结
公共命名空间是一项全新的技术,它用于确定计算机语言是什么样子的,它是由全世界的程序员共同填充的,每个人都可以创建自己的方言,并且把对计算机语言的设想记录在公共命名空间之中。