最常见的答案是 C。大多数语言是用 C 语言实现的,或者混合使用回调和类似于 弯曲的“ lexer”以及类似于 YACC的编译器编译程式。这些语言用于一种目的——描述另一种语言的语法。有时,当涉及到编译语言时,它们首先是用 C 语言实现的。然后使用该语言的第一个版本创建一个新版本,以此类推。(比如 Haskell)
从根本上说,编译器只是一些程序,它们读入某些内容并将其转换为其他内容——将 LaTeX 源代码转换为 DVI,将 C 代码转换为汇编语言,然后转换为机器语言,将语法规范转换为用于解析器的 C 代码,等等。它的设计者指定了源格式的结构(解析)、这些结构的含义、如何简化数据(优化)以及生成的输出类型。译员读取源代码并直接执行。(口译员通常写起来更简单,但速度要慢得多。)
大多数编译器都是 C 或类似 c 的程序,如果不是 c,那么汇编 lang 就是最好的选择。然而,当你从头开始编写一个新的 lang 时,如果你没有一个宏库或者来自原型语言的源代码,你就必须用什么语言来定义你自己的函数?您只需要向机器编写一个“ Form”,其源代码称为伪代码,它看起来像是面向对象的结构化 lang 规范(如 Fortran 基本算法 lisp)中的 bnf 语法。所以图像写一个十字代码,类似这些语言的语法,这是伪代码