所以我最近决定,为了一个有趣的小宠物编程项目,我会设计自己的语言并围绕它构建工具(编译器,autodoc,autolint)。到目前为止,我还处于语言设计阶段,我遇到了一个我坚持不懈的话题:关键词应该是大写的吗?
通过关键字,我不是指内置类型或函数,我的意思是“FOR”“IF”“ELSE”等字样。我使用它的逻辑是识别代码结构要快得多和语法,特别是如果语法高亮不可用(某些地方仍然没有,例如打印源或网站)。大部分时间花在阅读代码上,因此提高代码读取效率是有意义的,代价是每个关键字必须按两次大写锁定,或者在键入时按住shift。这里有什么人的意见?
另外,我知道这只是一个愚蠢的宠物项目,但我希望它做得对,我是一个完美主义者。而且我还打算自己使用它来玩游戏,同时继续它的优化/开发(当然是学习目的)。所以我不做决定我会后悔或不得不打破我以前的所有代码甚至编译器。
提前谢谢。
编辑:因为它只用于那些主要的关键词,它也可以避免读取大写的认知速度减慢,并使代码从“SCREAMING”保持不变。
答案 0 :(得分:2)
我个人认为这是一个错误。当我输入代码时,我不太可能使用一种语言让我徘徊在CAPSLOCK键上,或者强迫我按住SHIFT键超出我的需要。
如果认为这是必要的话,这可能是我留给编辑或IDE的东西。但是,说实话,有彩色打印机和颜色的HTML标记标记,所以我不相信基于您的问题内容的必要性。
答案 1 :(得分:2)
Oberon编程语言就是这样运作的。我发现它非常易读,但手工打字有点不愉快。很烦人,我在编辑器中为所有控制结构设置了自动完成模板,但之后我很满意。
如果你喜欢它的外观,我会说它去吧。很多人不会喜欢它,但也许少数人会分享你的口味并喜欢它。
顺便说一下,Wirth博士(oberon的创建者,modula-2,pascal)在他的主页上有关于构建编译器的相当不错的书:所有代码都是用Oberon编写的,因此您可以使用您正在谈论的风格来查看语言。
答案 2 :(得分:0)
这是我能想到的优点。第2点和第3点假设程序员仅使用较低或混合大小写的标识符。
在阅读源代码时,会立即清楚什么是关键字,什么不是。
程序员可以使用任何名称作为标识符。
可以在不破坏现有程序的情况下将新关键字添加到语言中。
当关键字用散文编写时,不需要额外的格式,如粗体或打字机字体。此外,在语言语法中,不需要额外的引号来将关键字与非终端符号分开。
以下是我能想到的缺点:
大写单词更难打字(手写也慢)。
当小写关键字成为常态时,包含大量大写单词的源代码可能看起来不熟悉。
使用“智能”编辑器可以部分克服第一个缺点,该编辑器会在您键入时将一些小写单词转换为大写。