我真的很喜欢编程语言设计。有时,我认为我的语言项目及其潜在用户将受益于一份全面的标准文件。我看过许多语言标准,从非常正式的(C++)到相当非正式的(ECMAScript),但我无法真正掌握如何分解和组织这样的文档,尽管我认为我在总体上非常擅长技术写作。
我应该把它写得像一篇冗长的教程,还是更像一篇正式的数学论文?如果我正在与引用实现一起开发它,那么如何保持它的最新呢?我应该放弃,把实现和文档当作事实上的标准吗?此外,有一个标准真的有任何重大的好处吗?要求一个标准是否意味着语言是不必要的复杂?
发布于 2010-12-03 23:23:33
我发现Java语言规范既正式又可读性强,我认为它有一个合理的结构。一些W3C规范也可能是很好的例子。
做正式的工作可以帮助你降低语言的复杂性,并发现问题的症结。
标题脑转储:源编码、词法、基本类型、文字、运算符、表达式、简单语句、条件、循环、函数(定义和调用)、类型声明、模块、编译单元、变量范围、各种名称解析(例如导入、方法)、内存模型、副作用、键入、并发…
发布于 2010-12-03 20:28:29
设计一种新的语言很难。真的很难。但是,如果它变得流行起来,并真正解决了人们正在以优雅的方式体验到的问题,那么最终是非常令人满意的。
正如我在评论中提到的,我建议您阅读领域特定语言(马丁·福勒),原因如下:
至于如何编写您的说明,请考虑您的听众。显然,在把手指放在键盘上设计你的语言之前,你会仔细考虑它的意图。
如果它是一种新的解释语言来取代JavaScript,那么您将需要一种非常放任的方法,以便能够以有限的注意力范围和对即时结果的渴望--如果可能的话,更快地接触到web开发人员。
如果它将用于下一个任务到土卫六,那么非常详细的规格,显示每个组件行为的精确形式证明将是最低的入门水平。
所以,这不是一件简单的事情。为了接近规范,您最好在创建您的语言方面获得大量经验,并与那些日常使用它们的人一起工作。如果你有自愿的受害者..。呃..。开发人员,在工作中,谁可以花一些时间来学习你的语言,然后他们可以给你反馈什么是需要让他们使用它。
总之,保持简单,更多的人会使用它。
发布于 2010-12-03 23:35:27
Wirth设计并实现了许多编程语言:其中,奥伯伦和Oberon2语言的规范以其完整性、简洁性和可读性著称。
https://softwareengineering.stackexchange.com/questions/23542
复制相似问题