《编译原理》阅读笔记:p19-p24

news2024/7/6 20:58:15

《编译原理》学习第 4 天,p19-p24总结,总计 5 页。

一、技术总结

1.grouping of phases

这里谈到分组(group),那么就会有一个疑问,分组的依据是什么?即根据什么来分组。

(1) front end & back end

编译器包含很多阶段(phase)——lexical analyzer, syntax analyzer, semantic analyzer, intermediate code generator, code optimizer, code generator, 这些阶段可以分为front end和back end两组。这里是根据phase的作用进行分组——“The front end consists of those phases, or parts of phases, that depend primarily on the source language and are largely independent of the target machine”。

(2)pass

可以将多个phase分成一个pass。分组的依据是什么?暂时没有理解,先继续往下读。

2.compiler-construction tools

有哪些tool,这些tool的作用是什么。这里只需要大概了解即可,用到的时候自然会知道。

3.参考文献

本书会在最后Bibliography章节列出所有的参考文献,翻了一下Wexelblat在1981年写的《history if programming languages》,介绍了FORTRAN,LISP,COBOL等编程语言,果然历史久远。

二、其它

p24, Ascribing credit for techniques remains a perilous task。这句话初看不好理解,ascribe: xxx的原因,credit: 赞誉,perilous: 危险的。中译版将“ascribing credit”翻译成“论功”,甚是准确,但是翻译成“为编译技术论功是一项艰难的任务”,却有点生硬,我个人觉得应该将其翻译成“这些编译技术归功于谁?这真不好下结论,因为同一个技术,有时候确实是不同的人都发现了。”

四、参考资料

1. 编程

(1)Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman,《编译原理(英文版·第1版)》:https://book.douban.com/subject/5416783/

2. 英语

(1)Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org
在这里插入图片描述

欢迎搜索及关注:编程人(a_codists)

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

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

相关文章

办公效率神器:ONLYOFFICE 的配置和使用

1.认识 ONLYOFFICE ONLYOFFICE 是一款免费开源的协同办公软件套件,支持多种文件格式,包括PDF、Word、Excel、PowerPoint等。它提供了文档编辑、表格处理、演示制作等功能,并可以与其他应用程序和平台集成,功能亮点特点如下&#…

【unity笔记】六、UI实现下拉列表切换视角

具体步骤如下 1. 创建UI下拉列表: 在Unity场景中右键点击并选择UI -> 下拉列表 来创建一个新的下拉列表。 2. 添加摄像机选项: 在Dropdown的Options属性中添加新的选项,通过点击按钮来添加选项,并为每个选项设置一个显示名…

【大数据】—谁是世界上最富的人?

引言 在2024年,全球财富的分布再次成为公众和经济学家关注的焦点。随着经济的波动和新兴市场的崛起,亿万富翁的名单也在不断变化。本文将深入探讨这一现象,通过最新的数据可视化分析,揭示世界上最富有的人在2024年的财富状况和趋…

成都百洲文化传媒有限公司助力电商品牌乘风破浪

在当今数字化时代,电商行业风起云涌,竞争异常激烈。成都百洲文化传媒有限公司凭借其对电商行业的深刻理解与实战经验,已然成为行业中的佼佼者。公司专注于电商服务领域,通过创新的营销模式和精准的市场策略,助力众多品…

#03动态规划

要点: 动态规划方法与贪心法、分治法的异同; 动态规划方法的基本要素与求解步骤; 动态规划方法的应用。 难点: 如何根据问题的最优子结构性质构造构造动态规划方法中的递归公式或动态规划方程。 动态规划的基本思想 动态规…

使用Servlet开发javaweb,请求常见错误详解及其解决办法【404、405、500】

Servlet报错的情况多种多样,涵盖了配置错误、代码逻辑错误、资源未找到、权限问题等多个方面。以下是一些常见的Servlet报错情况及其可能的原因和解决方法: 404 Not Found: 错误原因图示: URL映射 发送请求,出现404错误 原因: 请…

excel隐藏的部分内容如何显示出来?3个方法帮助你!

excel隐藏的部分如何显示出来?你是否曾经在Excel中遇到过某些单元格被隐藏,或者某些数据在编辑时突然消失,让你感到困惑和无助?不要担心,今天我将向你揭示如何解决这些问题,让你轻松显示隐藏的部分。 方法1…

神经网路学习7-线性模型

一个最简单的线性模型,w是权重,一般来说会取随机值,然后不断学习直到与预期相同 如此以此取每个值与真实值的差值,即评估误差 即找一个合适的权重w,使得平均误差最小 上面的是针对单个样本的,后面的是对…

onnx模型修改:去掉Dropout层

文章目录 尝试1:强行设置dropout层train mode为False尝试2:找到onnx模型中的dropout, train mode设置为False尝试3:直接删除dropout层,连接其输入输出结语 最近训练模型使用了tinyvit,性能挺强的: 但是导出…

Posix消息队列使用总结

Posix在线文档: The Single UNIX Specification, Version 2 (opengroup.org) Linux系统中提供了两种不同接口的消息队列: POSIX消息队列。POSIX为可移植的操作系统接口。System V消息队列。System V 是 AT&T 的第一个商业UNIX版本(UNIX System III)的…

【Mac】iTerm for mac(终端工具)软件介绍及安装教程

软件介绍 iTerm 是 macOS 上一个非常受欢迎的终端仿真器,提供了比默认的 Terminal 应用更多的功能和定制选项。它是一款开源软件,主要用于命令行界面的操作和开发者工具。 主要特点和功能: 分页和标签: iTerm 允许用户在单个窗…

Spring Boot项目的两种发布方式

5.1.方式1&#xff1a;通过jar包发布 步骤1&#xff1a;在pom中添加一个SpringBoot的构建的插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><!--自动检测项目中的 main 函数--><artifactId>spring-boot…

开发一款直播APP完整指南

直播是一种强大的营销工具&#xff0c;可以让企业与观众进行真实的互动。 根据Grand View Research发布的预测&#xff0c;直播行业规模将从 2021 年的 700 亿美元增长到 2028 年的近 2240 亿美元&#xff0c;七年内增长三倍。 区块链技术和人工智能等技术进步将在未来几年提…

mybatis-plus 实体中空字段更新不上

FieldStrategy 是一个枚举类型&#xff0c;它定义了字段的几种策略&#xff1a; IGNORED&#xff1a;忽略判断&#xff0c;所有字段都进行更新操作 NOT_NULL&#xff1a;非 NULL 判断&#xff08;默认策略&#xff09;&#xff0c;字段非 NULL 才进行更新 NOT_EMPTY&#xff…

数据结构与算法—空间复杂度详解与示例(C#,C++)

文章目录 1. 数据结构概述2. 空间复杂度的定义及影响因素3. 空间复杂度的区分常数空间复杂度&#xff08;O(1)&#xff09;线性空间复杂度&#xff08;O(n)&#xff09;其他空间复杂度 4. 几种典型数据结构的优缺点分析数组&#xff08;Array&#xff09;链表&#xff08;Linke…

专业解析U盘数据恢复:方法、方案与常见问答

一、U盘数据恢复概述 在信息化社会&#xff0c;U盘作为一种便捷的数据存储介质&#xff0c;广泛应用于各种场合。然而&#xff0c;由于其体积小、易携带的特点&#xff0c;U盘数据丢失的风险也随之增加。U盘数据恢复&#xff0c;即是指通过技术手段&#xff0c;将因各种原因导…

【Spine学习16】之 人物面部绑定

1、创建头部骨骼 一根头骨 以头骨为父结点创建一个面部控制器face-holder 2、创建头发和face面部控制结点的变换约束 左右头发的约束指向为face结点 3、设定后发的变换约束&#xff0c;约束指向为face结点&#xff0c;反方向移动 设置参数为-100 同理&#xff0c;耳朵也依…

pytest测试框架pytest-html插件生成HTML格式测试报告

Pytest提供了丰富的插件来扩展其功能&#xff0c;pytest-html插件帮助我们生成HTML格式的测试报告&#xff0c;为我们提供直观、有效的测试结果展示。 为了使用 pytest-html&#xff0c;需要满足以下条件&#xff1a; Python 3.6 或更高版本 pytest-html安装 使用pip命令安…

Kubernetes Prometheus 系例 | kubernetes 部署 Kafka exporter监控Kafka集群

prometheus 监控 kafka 常见的有两种开源方案&#xff1b; 部署 exporter 或 jmx 配置监控。 项目地址&#xff1a; kafka_exporter&#xff1a;https://github.com/danielqsj/kafka_exporter jmx_exporter&#xff1a;https://github.com/prometheus/jmx_exporter 本文采用kaf…

Java宝藏实验资源库(5)字符流

一、实验目的 掌握输入输出流的基本概念。掌握字符流处理类的基本结构。掌握使用字符流进行输入输出的基本方法。 二、实验内容、过程及结果 **12.12 (Reformat Java source code) Write a program that converts the Java source code from the next-line brace style to…