Charles Simonyi 首先是在微软,然后是在他自己的公司,努力建立意向编程领域的雄心和创造力让我印象深刻。
http://en.wikipedia.org/wiki/Intentional_programming
在这种软件方法中,程序员首先构建一个特定于给定问题域(例如人寿保险)的工具箱。领域专家在程序员的帮助下,然后以所见即所得 (WYSIWYG) 的方式描述程序的预期行为。自动化系统使用程序描述和工具箱来生成最终程序。后续更改仅在 WYSIWYG 级别进行。
它似乎是一种非常有用且实用的编程方法,可能会规避当前软件开发方法的许多问题。
从本质上讲,它似乎有助于非程序员(业务/系统分析师)创建特定领域的语言,但在一个比 UML 所能提供的更接近实际实现的阶段。他说它最终会完成,但它还没有(大约 15 年后)。
DSL 涵盖了从简单的 5 行规则引擎到 Ruby on Rails 等复杂应用程序的所有领域。所以我认为延迟发布他的产品与他正在处理简化更高级别的抽象这一事实有关,因为他必须基本上允许同时封装所有领域语言。
所以,我的问题是
(a) Antlr是否可以替代意向编程——尽管可能是一个不太用户友好的替代方案,需要程序员的干预而不是允许业务分析师生成 DSL? 您可以使用 Antlr 生成像 Ruby on Rails 这样的 DSL(假设它支持 Ruby 作为输出 - 我认为它不支持)?它不能做什么?另外,我不明白为什么它被称为“语言解析器”而不是“语言生成器”——因为后者描述了它的用途,而前者描述了它如何实现最终结果。
和
(b) 如果 Antlr 和 Intentional Programming 不同,有没有类似 Intentional Programming 的东西?