举例来说,我想付钱给我创建一种编程语言或脚本语言。他们需要什么类型的文件,以完全了解我到底想要什么。
我的意思是,是否有描述上述新编程/脚本语言的标准文档?
举例来说,我想付钱给我创建一种编程语言或脚本语言。他们需要什么类型的文件,以完全了解我到底想要什么。
我的意思是,是否有描述上述新编程/脚本语言的标准文档?
Answers:
您需要编写的内容称为语言规范。
它应该包含对语言语法的描述(最好以Extended Backus-Naur-Form形式)及其语义的描述。
对于后一部分,您可以用自己的文字写一个描述(但要小心一点)或形式化的语义。
您将需要以下内容:
您的语言会如何变化?它的任务是什么?有功能吗?它是面向对象的吗?它是元语言吗?它的独特功能是什么?它会给不存在(或以丑陋方式存在)的世界带来什么?您想如何改变事情?是编译还是解释?DSL还是通用语言?这是您的理念,并就您的语言设计做出了许多决定。
接下来,研究在纸上划掉粗略的语法和语义。这将是您的语义定义。编写伪代码是发展您的想法的好方法。阅读“ C编程语言”以获取有关此操作的出色示例。玩吧。
然后,您将需要以某种方式定义令牌和语法。程序然后将它们处理成能够读取字符串并处理语法的自动机。Yacc和Bison分别使用正则表达式和BNF样式语法进行词法分析和语法分析。还有其他语言的Yacc和Bison之类的工具。
您还需要语言理论/编译器的基础知识才能知道不该做什么。示例包括歧义语法,AST生成和操作问题,以及通常如何使自己的生活变得简单。了解理论非常重要。我会考虑让以下内容开始:
99.9%的时间完全不需要创建新语言。投资回报极有可能是微不足道的,并且您会浪费时间。
您很可能可以将Javascript用作易受攻击的脚本语言,并且已经有适用于大多数语言的解析器。如果可以找到其他适合自己的解析器,则还可以使用其他喜欢的脚本语言。将这些实现到您的程序中将减少工作量,并获得更大的回报。人们不必学习其他语言,而只需学习您的API。它是一个更好的解决方案。
创建一种新语言几乎总是不好的。