如何为应用程序创建计算机或脚本语言?
-
03-07-2019 - |
题
重复:
还有一些我现在懒得去找。
我不是在问如何创建一种极其复杂的语言。我只是想了解基础知识。我会使用 C# 作为底层语言。我知道这很模糊。我希望有一些非常基本的东西来指导我。
我想我最感兴趣的是创建脚本语言。例如,我看到有人编写程序,但他们的应用程序有脚本语言。我不想重写 Windows 脚本语言。假设我有一个文本文件阅读器,并且出于某种原因想要一种脚本语言来自动化某些操作。我不知道如何询问。
谢谢。
编辑-谢谢您的回答。我现在更多的是为了学习而不是为了做事。我可能会使用 LUA,但我正在尝试更多地了解这个概念。
其他提示
您可以使用现有语言,例如 Python 或 Javascript。例如,对于 Javascript,有 http://www.mozilla.org/rhino/ 对于 Java 应用程序。因此,通常您不需要实际发明一种新语言,只需为已经存在的语言提供自定义 API 即可。
斯科特·汉塞尔曼 (Scott Hanselman) 在他的著作中提到 最新的汉塞尔分钟播客 集成 IronPython 以允许对现有应用程序编写脚本非常容易。
如果您对让应用程序可编写脚本的最终目标感兴趣,那么您绝对应该考虑使用现有语言,而不是尝试编写自己的语言。
如果您对编写自己的脚本语言的教育体验更感兴趣,那么您应该去尝试!
首先你需要一个像 lex 这样的词法解析器,然后是像 bison 这样的语法解析器。
然后您可以使用语法解析器创建一个解释器来“执行”语法结果。
大多数脚本语言都是这样做的。
附:另一种方法是通过编写 shell 进行练习 - shell 脚本(bash、csh 或 sh)是高度简化的脚本语言。
不需要创建新的脚本语言,有几种,例如。Rhino 是一种广泛使用的嵌入式 javascript (http://www.mozilla.org/rhino/) 或来自 MS 的 Jscript,您可以直接在您的产品中使用。
我已经按照你要求的方式走了 - 我曾经创建了自己的方案解释器。这确实很有效,但我们重新发明了很多技术,并没有真正获得很多额外的好处。如果我们只使用现有的方案之一,情况会好得多。我不会再做出这个决定,尽管它很有趣而且很成功。