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

文章目录

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

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

扫描器

词法分析

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

语法分析

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

静态分析

在这里插入图片描述

中间代码

在这里插入图片描述

优化

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

代码生成

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

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

运行时

在这里插入图片描述

单遍编译器

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

数遍历解释器

在这里插入图片描述

转译器

在这里插入图片描述

即使编译

在这里插入图片描述

编译器与解释器

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552922.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Git】一文看懂Git

Git 一、简介1. Git 与 SVN 区别1.1 Git 是分布式的,SVN 不是1.1.1 分布式版本控制系统Git1.1.2 集中式版本控制系统SVN 1.2 Git 把内容按元数据方式存储,而 SVN 是按文件1.3 Git 分支和 SVN 的分支不同1.4 Git 没有一个全局的版本号,而 SVN …

《Windows PE》3.2.4节表

节表由多个节表项(IMAGE_SECTION_ HEADER)组成,每个节表项(40个字节)记录了 PE中与某个特定的节有关的信息,如节的属性、节 的大小、在文件和内存中的起始位置等。节表中节的数量由字段IMAGE_FILE_HEADER. …

迷宫中的最短路径:如何用 BFS 找到最近出口【算法模板】

如何通过广度优先搜索(BFS)求解迷宫问题 在这篇文章中,我们将学习如何使用 广度优先搜索(BFS) 解决一个典型的迷宫问题,具体是从迷宫的一个入口出发,找到最近的出口。我们将一步步分析 BFS 是如…

超声波扫描显微镜SAM有什么作用?

知识星球里的学员问:在晶圆厂中很少见到超声波扫描显微镜,但是在封测厂中会经常用到,麻烦讲一下超声波扫描显微镜的原理与用途 什么是超声波扫描显微镜? 超声波扫描显微镜,英文名scanning acoustic microscope&#…

【论文阅读】Equivariant Multi-Modality Image Fusion(CVPR2024)

Equivariant Multi-Modality Image Fusion(CVPR2024) 现有方法存在的问题 由于现实中没有一种传感器可以同时捕捉所有模态的信息,因此缺乏真实的融合图像作为训练的参照标准,这对深度学习模型的训练带来了挑战。 基于生成对抗网…

2024 全新体验:国学心理 API 接口来袭

在当今快节奏的生活中,人们对于心理健康越来越重视。而研究发现,国学心理学乃至传统文化中的思想智慧,对于人们的心理健康有着独特且深远的影响。为了让更多人能够体验到国学心理的魅力,2024年全新推出的国学心理 API 接口&#x…

基于单片机的两轮直立平衡车的设计

本设计基于单片机设计的两轮自平衡小车,其中机械部分包括车体、车轮、直流电机、锂电池等部件。控制电路板采用STC12C5A60S2作为主控制器,采用6轴姿态传感器MPU6050测量小车倾角,采用TB6612FNG芯片驱动电机。通过模块化编程完成了平衡车系统软…

变电站红外检测数据集 1180张 变电站红外 标注voc yolo 13类

变电站红外检测数据集 1180张 变电站红外 标注voc yolo 13类 变电站红外检测数据集 名称 变电站红外检测数据集 (Substation Infrared Detection Dataset) 规模 图像数量:1185张图像。类别:13种设备类型。标注个数:2813个标注。 数据划分…

关于TF-IDF的一个介绍

在这篇文章中我将介绍TF-IDF有关的一些知识,包括其概念、应用场景、局限性以及相应的代码。 一、概念 TF-IDF(Term Frequency-Inverse Document Frequency)是一种广泛用于信息检索和文本挖掘中的统计方法,用于评估一个词在一个文…

鸿蒙ArkUI实战开发-主打自研语言及框架

ArkUI 是 HarmonyOS 的声明式 UI 开发框架,而 ArkUI-X 是基于 ArkUI 框架扩展而来的跨平台开发框架。ArkUI-X 支持 HarmonyOS、OpenHarmony、Android 和 iOS 平台,允许开发者使用一套代码构建支持多平台的应用程序。 一、ArkUI-X 的实战开发步骤 在实战开…

存储主动防御,为什么Gartner技术曲线尤为重视?

【科技明说 | 科技热点关注】 近来,从Gartner发布的2024年存储技术成熟曲线(Hype Cycle for Storage Technologies ,2024)的相关报告看出,到2028年,所有存储产品都将融入专注于数据主动防御的网络存储功能&…

西电25考研 VS 24考研专业课大纲变动汇总

01专业课变动 西安电子科技大学专业课学长看到953网络安全基础综合变为 893网络安全基础综合,这是因为工科要求都必须是8开头的专业课,里面参考课本还是没变的,无非就是变了一个名字 对于其他变动专业课也是同理的 02专业课考纲内容变化 对于…

深度学习笔记18_TensorFlow实现猫狗识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 一、我的环境 1.语言环境:Python 3.9 2.编译器:Pycharm 3.深度学习环境:TensorFlow 2.10.0 二、GPU设置…

【拥抱AIGC】通义灵码策略配置

通义灵码企业级策配置支持智能问答、行间代码生成安全过滤器相关策略配置。 适用版本 企业标准版、企业专属版 通义灵码管理员、组织内全局管理员(专属版)在通义灵码控制台的策略配置中进行安全过滤器的配置,开启后,企业内开发…

SOMEIP_ETS_146: SD_ResetInterface

测试目的: 验证DUT在重置后,TestFieldUINT8的值是否至少与重置前设置的值不同,符合SOME/IP规范。 描述 本测试用例旨在确保DUT的ETS能够正确响应重置请求,并且在重置后,特定的测试字段(TestFieldUINT8&a…

数据仓库的建设——从数据到知识的桥梁

数据仓库的建设——从数据到知识的桥梁 前言数据仓库的建设 前言 企业每天都在产生海量的数据,这些数据就像无数散落的珍珠,看似杂乱无章,但每一颗都蕴含着潜在的价值。而数据仓库,就是那根将珍珠串起来的线,它能够把…

仅需10G显存,使用 Unsloth 微调 Qwen2 并使用 Ollama 推理

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接如…

YOLOv11改进 | 注意力篇 | YOLOv11引入ACmix注意力机制

1. ACmix介绍 1.1 摘要:卷积和自注意力是表示学习的两种强大技术,它们通常被认为是两种彼此不同的同行方法。 在本文中,我们表明它们之间存在很强的潜在关系,从某种意义上说,这两种范式的大量计算实际上是通过相同的操…

Linux 进程状态、僵尸进程与孤儿进程

目录 0.前言 1. 进程状态 1.1 定义 1.2 常见进程 2.僵尸进程 2.1 定义 2.2 示例 2.3 僵尸进程的危害与防止方法 3. 孤儿进程 3.1 介绍 3.2 示例 4.小结 (图像由AI生成) 0.前言 在上一篇文章中,我们介绍了进程的基本概念、进程控制块&#…

蓝桥杯—STM32G431RBT6(IIC通信--EEPROM(AT24C02)存储器进行通信)

一、什么是IIC?24C02存储器有什么用? IIC (IIC 是半双工通信总线。半双工意味着数据在某一时刻只能沿一个方向传输,即发送数据的时候不能接收数据,接收数据的时候不能发送数据)即集成电路总线(…