你会如何编写一个简单的编程语言?

RCP*_*ing 6 compiler-construction language-design

可能的重复:
设计简单编程语言的方法
学习编写编译器

我想编写一种编程语言,其语法类似于QBasic,但更简单.我希望它适合初学程序员.它的简单性将鼓励有抱负的程序员不要放弃并让他们对编程感兴趣.例如:而不是QBasic的PRINT"Hello World!"

我会用

写下"Hello World!"

或者更像VB

写("Hello World")

我将如何调整基本语法来制作我的语言?

ros*_*dia 14

这不是一项简单的任务.语言分析和编译器理论是非常重要的主题.很多数学.您还必须决定要定位的平台,这也将决定您的语言是否已完全编译(例如,C/C++,Pascal),编译为字节码(例如Python,Java),还是在运行时解释(例如VBScript) ,JavaScript).要指定语言本身,请使用Backus-Naur格式.

为了帮助您,有几个强大的解析器生成器,包括:

  • Lex/Yacc(Flex/Bison是GNU版本) - 旧学校行业标准.用于在C/C++中开发编译器
  • ANTLR - 如果您对使用Java创建编译器感兴趣
  • Boost.Spirit - 一种不同的方法,允许使用C++本身来​​规范语言.

还有很多.可以在这里找到比较,而另一个列表可以在这里找到

如果你真的对完整的理论感兴趣,你想看看龙书.

但我必须重申:这是一个很大的主题.沿途有很多很多工具可以帮助你,但是兔子洞很深.

  • 这是一个很大的主题,但*不会涉及很多(至少大多数人会想到的)数学. (3认同)