当前位置: 首页 > news >正文

从零到一构建解释器-【1-基础概念】

文章目录

  • 扫描器
    • 词法分析
    • 语法分析
  • 静态分析
  • 中间代码
  • 优化
  • 代码生成
  • 运行时
  • 单遍编译器
  • 数遍历解释器
  • 转译器
  • 即使编译
  • 编译器与解释器

本教程参考【手搓解释器】
这里只是过一遍基本概念,后面会有涉及到具体解析

扫描器

词法分析

  1. 接受字符流
  2. 忽略无意义符号,如空格
  3. 提取每个标识符,关键字,单词,符号,数字等
  4. 变成单词流(token流)
    在这里插入图片描述

语法分析

  1. token->成句子(表达式/语句/语法树)
  2. 顺便报告语法错误
    在这里插入图片描述

静态分析

在这里插入图片描述

中间代码

在这里插入图片描述

优化

如何计算操作就在编译时替换,而不是原来的操作
在这里插入图片描述

代码生成

生产机器码,如果是面向真实CPU,就是直接放CPU上运行的,那么需要会面临难以移植的特性
但如果面向虚拟CPU,就是还要通过一个虚拟机来生成最终在真实的CPU上执行的机器码,这个时候我们叫这种面向虚拟CPU的为字节码

在这里插入图片描述
在这里插入图片描述

运行时

在这里插入图片描述

单遍编译器

词法分析 语法分析和代码生成交织
在这里插入图片描述

数遍历解释器

在这里插入图片描述

转译器

在这里插入图片描述

即使编译

在这里插入图片描述

编译器与解释器

在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/41078.html

相关文章:

  • 【洛谷】P2357 守墓人 的题解
  • 编程参考 - 动态链接库中的变量实例化
  • 【C++】第二节:类与对象(上)
  • 如何使用ssm实现基于web的网站的设计与实现+vue
  • vulnhub-Replay 1靶机
  • SpringBoot实现的师生健康信息管理平台
  • 一本应用《软件方法》的书《软件需求分析和设计实践指南》
  • 单细胞scMetabolism代谢相关通路分析学习和整理
  • 提升工作效率的秘密武器大揭露
  • 面向代理的从单体到基于服务架构的转变的好处
  • 华证ESG工具变量(2009-2022年)
  • 「案例」飞创高速直线导轨滑台模组在高校科研设备研发的多元应用
  • win11 升级报 0x80073713 错误
  • 多模态大模型 Qwen2-Audio 开源,让语言聊天更流畅
  • Python基础 -- enumerate()的作用与用法
  • C语言 | Leetcode C语言题解之第450题删除二叉搜索树中的节点
  • 梯度检查点技术的使用
  • Java中的自动重试机制:如何实现幂等与错误恢复
  • VS Code 图形化合并工具
  • 算法笔记(四)——模拟