一种语言的编译器如何用该语言编写? [复制]

2024-03-18

可能的重复:
在“自身”中实现编译器 https://stackoverflow.com/questions/193560/implementing-a-compiler-in-itself
引导语言 https://stackoverflow.com/questions/13537/bootstrapping-a-language

如何使用与您编写编译器所针对的语言相同的语言来编写编译器?这不是一种递归吗?

Edit: 这可能会被删除,但否则......:

How引导:

  • 用自己的语言编写编译器 https://stackoverflow.com/questions/193560/implementing-a-compiler-in-itself
  • 引导语言 https://stackoverflow.com/questions/13537/bootstrapping-a-language

Why引导:

  • 引导编译器:为什么? https://stackoverflow.com/questions/1493747/bootstrapping-a-compiler-why

通常,编译器的第一个版本是用不同的语言编写的,然后每个后续版本都用该语言编写并使用旧版本进行编译。编译好版本后x有版本x-1,你可以使用新建的版本x重新编译自身,利用该版本引入的任何新优化; GCC 就是这样发布的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一种语言的编译器如何用该语言编写? [复制] 的相关文章

  • 使用递归对数字求和

    我刚刚研究了递归的概念 我想尝试一个简单的例子 在下面的代码中 我尝试获取数字 1 2 3 4 5 并使用递归将它们加在一起 我预计结果是 15 但我的代码返回 16 我究竟做错了什么 Code static void Main strin
  • 无意中使用 = 而不是 ==

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 看起来 if x y 代替 if x y 是许多罪恶的根源 为什么不all编译器将其标记
  • 在 CakePHP 中向 Containable 添加条件

    以前我依赖递归 但我没有得到一些解决方案 然后我发现 Containable 对于这些问题工作得很好 我正在开发一个电影评论网站 我需要显示与特定类型相关的电影列表 我有下面的代码 example genre drama options a
  • 阿克曼函数的这种实现可以称为尾递归吗?

    我用 C 语言编写了以下代码 我们可以将其称为尾递归实现吗 include
  • 错误:“;”之前应有构造函数、析构函数或类型转换令牌?

    我正在尝试编译代码来测试读取和打印数据文件的函数 但出现我不明白的编译错误 错误 预期的构造函数 析构函数或 之前的类型转换 令牌 相关代码文本墙如下 struct Day int DayNum int TempMax int TempMi
  • 使用递归求数组的最小值?

    好吧 所以我一直在尝试用 Java 来理解递归 我可以完成简单的任务 例如求和 反转等 但我一直在努力做这个练习 我试图使用递归找到数组中的最小数字 但始终得到 0 0 的答案 我对递归的理解是 我需要增加一个元素 然后提供一个结束递归的基
  • Python递归数据读取

    如果你曾经玩过 我的世界 下面的内容将会更有意义 由于你们中的许多人还没有 我将尽力解释它 我正在尝试编写一个递归函数 它可以找到从 Minecraft 食谱的平面文件中制作任何 Minecraft 物品的步骤 这个实在是让我难住了 平面文
  • 是否有使用严格求值的 Haskell 编译器或预处理器?

    我正在寻找一个默认使用严格求值而不是惰性求值的 Haskell 编译器 我只想使用 OCaml 但 Haskell 的语法是好多了比 OCaml 的 Haskell 是纯粹的 并且具有很酷的功能 例如类型类 我真的不想经常把 s and 我
  • 语法分析和语义分析有什么区别?

    据我了解 Parser由词法分析 句法分析和语义分析三个阶段组成 Lexical 它将我的输入分割成标记 例子 123 100 0 gt 123 100 0 语法 它将研究标记并检查它们是否彼此有意义 我遇到的问题是理解最后阶段的 语义解析
  • F# 中序列的递归函数

    这是一个相当微不足道的问题 但快速的谷歌搜索并没有给我答案 为序列编写递归函数的标准方法是什么 对于列表 您可以使用空列表和头 尾模式进行模式匹配 序列的等效项是什么 没有标准的方法可以做到这一点 因为您很少为序列编写递归函数 您应该查看各
  • unix下C++递归复制目录

    没有任何可供使用的功能示例c without additional libs将递归文件和文件夹复制到新位置 一些替代方案system cp R f dir call 我只找到这个C 中的递归目录复制 https stackoverflow
  • 用于编译/反编译二进制数据文件的通用实用程序或库?

    我有各种二进制文件格式 我需要将其转储为某种文本格式 编辑然后重新编译 可能是二进制格式的稍微不同的版本 当然 我可以用 C C 编写一堆实用程序代码来完成这种事情 并且可能利用一个库来处理文本方面的事情 XML 或 JSON 或其他 但这
  • 如何使用递归获取父级的所有子级,然后获取其子级

    问候 我的 JSP Web 应用程序中有父事务的比喻 我将事务 ID 存储在数据库中 要求是显示父级的所有子级 然后显示父级子级的后续子级 实际上 这个父母及其孩子的列表永远不会超过 4 或 5 层 但我需要考虑到它可以比这更多层 我尝试过
  • 扩展 Mono C# 编译器:有任何文档或先例吗?

    我目前正在参与一些有趣的编程语言研究 到目前为止 这些研究的重点是通过一些非常强大的基于程序员生产力的功能来扩展即将推出的 Java 7 0 编译器 这项工作应该同样适用于 C 等相关编程语言 我目前正在研究用于对该功能的 C 端口进行原型
  • 嵌套列表递归python的序列

    给定一些数字 n 我想生成一个大小为 n 的列表 其中以下示例显示列表中的第 n 个元素应该如何 对于 n 0 返回 对于 n 1 返回 对于 n 2 返回 对于 n 3 返回 基本上 它采用先前的列表并将它们附加到新列表中 我尝试过以下方
  • 如何用模板参数包的内容填充数组?

    我嵌套了与 VS 2015 一起使用的部分专用模板代码 直到我发现它不符合标准 https stackoverflow com q 3052579 2747466 我希望如此 所以我扭曲了我的代码来克服前一个问题 并且that one ht
  • 如何获得字符串的所有字谜

    我试图找到一个字符串的所有可能的字谜并仅使用递归将它们存储在数组中 我被困住了 这就是我所拥有的一切 int main const int MAX 10 string a ABCD string arr 10 permute arr a 0
  • 递归和大O

    我最近正在完成一项涉及递归和大 O 表示法的计算机科学作业 我相信我很好地理解了这一点 虽然当然不是完美的 但是有一个问题给我带来了最多的问题 奇怪的是 一看就知道是作业上最简单的一个 使用大哦符号提供最佳增长率来解决以下递归问题 T 1
  • 实现词法分析器时,DFA 与正则表达式?

    我刚刚学习如何编写编译器 所以如果我有任何错误的说法 请纠正我 当人们可以简单地使用正则表达式时 为什么还要在代码中实现 DFA goto 语句 表驱动实现 据我了解 词法分析器接收一串字符并生成一个标记列表 这些标记在语言的语法定义中是终
  • 是否有像 gccxml 这样的用于生成包装器的 C 标头解析器工具?

    我需要为一种新的编程语言编写一些 C 标头包装器 并且想要类似 gccxml 的东西 但不完全依赖 gcc 以及它在 Windows 系统上带来的问题 只需要读C而不是C 只要有完整的文档记录 任何格式的输出都可以 Linux Solari

随机推荐

  • Racket 中的 POST/GET 绑定

    Racket 中是否有内置的方法来获取 POST GET 参数 extract binding和朋友做我想做的事 但附加了一个关于与文件上传相关的潜在安全风险的可怕注释 其结论是 因此 我们建议反对他们 使用 但它们是为 与旧代码的兼容性
  • 用户注销:清除默认 Google 帐户不会导致帐户选择器显示在 Android 应用程序中

    我按照下面的链接在我的 Android 应用程序中实现了 退出 按钮 该应用程序使用 Google API 客户端 但是 再次连接 google api 后 用户不会看到帐户选择器 看起来她 他最初选择的价值也许仍然以某种方式被缓存 几个小
  • Highcharts - 具有负值的面积样条线,面积应始终位于底部

    我想用 Highcharts 创建一个带有负值的图表 如下所示 http jsfiddle net vargapeti LjL03o8h 3 http jsfiddle net vargapeti LjL03o8h 3 function c
  • JS 关联数组:添加新对

    我在 JS 中有一个关联数组 var array one first two second three third 我怎样才能在其中添加新的对 array newpair new value or array newpair newvalu
  • 使用 Identity 2.0 数据库进行 Moq 模拟

    我在基于简单成员资格数据库的 MVC 5 Entity Framework 6 应用程序中使用 Moq 模拟针对 BusAct 控制器成功设置了集成测试 但现在我已经将数据库迁移到Identity 2 0 并将UserProfile替换为A
  • 尝试使用 Jersey 将 JSON 转换为 POJO 时出错

    我正在这样做 WebResource resource client resource urlStr resource accept MediaType APPLICATION JSON TYPE MediaType APPLICATION
  • ggplot 和plot 如何以不同的方式处理 inf 值?

    我很难理解为什么ggplot and plot相同数据生成略有不同的图 ggplot包括顶部的 inf 值 而plot isn t with geneFDR plot log2 FC log10 FDR pch 20 main FDR vs
  • 需要使用 ASP.NET MVC 2 框架实体的帮助

    我正在使用 C 在 ASP NET MVC 2 中制作一个网站 我设计了一个数据库 其中包含一堆具有多对多关系的表 类似于以下内容 祖父母 多对多 父母 and 父级 多对多 子级 我使用实体框架来创建所有实体类 现在正在处理存储库类中的一
  • 检查 Powershell 中的范围

    我正在尝试编写一个脚本来获取计算机的 IP 地址并检查它是否属于特定的 IP 范围 例如 如果机器的 IP 是 192 168 0 5 脚本将检查它是否在 192 168 0 10 到 192 168 0 20 范围内 到目前为止 我的脚本
  • App Store开发者重命名

    我有一个个人开发者帐户 而不是公司 我发布的每个应用程序附近都写有我的名字 现在我想把它改成一个漂亮的名字 而不改变我的开发者帐户 也不注册公司 任何帮助将不胜感激 我更改了已批准的答案 因为我们被迫启动所有法律程序来获取我们公司名称的合法
  • ant:警告:无法映射用于编码 UTF8 的字符

    我见过很多像我这样的问题 但他们没有回答我的问题 因为我使用的是 ant 而不是使用 eclipse 我运行这段代码 ant clean dist它多次告诉我warning unmappable character for encoding
  • 什么是 com.android.externalstorage?

    尽管这是一个简单的问题 但我找不到答案 or 堆栈溢出 https i stack imgur com 58Zv7 png 当我使用以下代码时 我得到这个结果 com android externalstorage documents tr
  • SSIS 将一张表中的所有数据导出到多个文件中

    我有一个名为 customers 的表 其中包含大约 1 000 000 条记录 我需要将所有记录传输到 8 个不同的平面文件 这会增加文件名中的数字 例如cust01 cust02 cust03 cust04 etc 有人告诉我这可以使用
  • 如何在 Android SDK 的 eclipse 中关闭 @string 资源的警告

    我知道 从技术上讲 对字符串进行硬编码并不是最佳实践 但我可以稍后处理它 现在我只想完成我的项目的外壳 并且我对代码中的警告非常强迫 有什么方法可以关闭它吗 如果我的标题不够具体 请以此为例
  • 何时在 Ninject 中停用瞬态范围对象?

    当 Ninject 中的对象与InTransientScope 该对象不会放入缓存中 因为它是 呃 瞬态的并且没有任何范围 完成该对象后 我可以调用kernel Release obj 这会传递到缓存 在缓存中检索缓存的项目并调用Pipel
  • 如何使用 SQL::Abstract 生成 SQL 查询?

    我如何生成WHERE此查询的子句使用SQL 摘要 http search cpan org perldoc SQL 3a 3aAbstract 从表中选择 COUNT 其中 id 第111章 111 1 2 3 4 AND 状态 待处理 包
  • 获取存储在sd卡+ android中的图像的缩略图Uri/路径

    SDK版本 1 6 我正在使用以下意图打开 Android 的默认图库 Intent intent new Intent intent setType image intent setAction Intent ACTION GET CON
  • 如何使用SimpleStorage插入xml prolog来生成gpx文件?

    我计划一劳永逸地采用一个方便的工具来处理 gpx 文件的创建 我相信简单存储 http www cromis net blog downloads simplestorage 这是一个OmniXML http www omnixml com
  • 无限 while 循环和 control-c

    所以 我写了下面的代码 void main void int charNums ALPHABET i 1 char word MAX while i initialize charNums word getString word setLe
  • 一种语言的编译器如何用该语言编写? [复制]

    这个问题在这里已经有答案了 可能的重复 在 自身 中实现编译器 https stackoverflow com questions 193560 implementing a compiler in itself 引导语言 https st