Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写脚本语言? 我在C++中扩展我的知识,想把我自己的脚本语言作为挑战自我的手段,也可以作为一个用于临时脚本的项目。我在StActOfStun上看到了一些旧的帖子,但是它们很过时,想知道是否有人能提供新的源例子……< /P> < P>简而言之:_C++_Scripting - Fatal编程技术网

编写脚本语言? 我在C++中扩展我的知识,想把我自己的脚本语言作为挑战自我的手段,也可以作为一个用于临时脚本的项目。我在StActOfStun上看到了一些旧的帖子,但是它们很过时,想知道是否有人能提供新的源例子……< /P> < P>简而言之:

编写脚本语言? 我在C++中扩展我的知识,想把我自己的脚本语言作为挑战自我的手段,也可以作为一个用于临时脚本的项目。我在StActOfStun上看到了一些旧的帖子,但是它们很过时,想知道是否有人能提供新的源例子……< /P> < P>简而言之:,c++,scripting,C++,Scripting,定义您的语言 您需要定义所有命令及其语法。 定义它们之后,可以按语法模式对它们进行分组 设计Lexer Lexer是扫描输入的语言元素并将其转换为标记的部分。然后将令牌馈送到解析器 设计解析器 解析器是评估标记的部分,例如标记的顺序和参数数量 设计解释器 解释器是执行解析器输出的部分。 你应该把它看作是一个非常高级的计算机模型。例如,您是否需要变量、寄存器、输入、输出、数学指令等 复杂解释器是基本语言解释器(或Visual BASIC)。Java有一个解释字节码的JVM。还有LISP口译员 如果

定义您的语言
您需要定义所有命令及其语法。
定义它们之后,可以按语法模式对它们进行分组

设计Lexer
Lexer是扫描输入的语言元素并将其转换为标记的部分。然后将令牌馈送到解析器

设计解析器
解析器是评估标记的部分,例如标记的顺序和参数数量

设计解释器
解释器是执行解析器输出的部分。
你应该把它看作是一个非常高级的计算机模型。例如,您是否需要变量、寄存器、输入、输出、数学指令等

复杂解释器是基本语言解释器(或Visual BASIC)。Java有一个解释字节码的JVM。还有LISP口译员

如果可以的话,您可能需要查看Python解释器源代码

另外,请查看GNU和CLanguage编译器的源代码


编译器和解释器通常由团队人员编写(以减少开发时间)。准备好花很长时间在这个项目上。

真的,编写自己的脚本语言吗?这不是为胆小的人准备的。在互联网上搜索“编译器设计理论”和“计算机语言理论”。您需要编写一个Lexer、解析器和解释器。在学校,这可能是一门为期一年的课程。祝你好运投票结束-范围太广。一个问题的答案部分不能包含编写语言的说明。已经有1000页的书已经在这个主题上写了,搜索“编译器设计书AHO”,经常被昵称为“龙书”。37年过去了,并且计算C++。我不想亲眼看到那是什么。