《编译原理》阅读笔记:p18

news/2024/9/20 15:25:21

《编译原理》学习第 3 天,p18总结,总计 14页。

一、技术总结

1.assembler

(1)计算机结构

要想学习汇编的时候更好的理解,要先了解计算机的结构,以下是本人学习汇编时总结的一张图,每当学习汇编时,看到“计数器”,“解码器”,“寄存器”,“数据总线”等概念时,就知道说的这些东西在哪个位置。

(2)assembly code(汇编代码)

p17,Some compilers produce assembly code, as in (1.5), that is passed to an assembler for further processing.

MOVF id3, R2
MULF #60.0, R2
MOVF id2, R1
ADDF R2, R1
MOVF R1,id1

上面汇编代码对应的代码为:

temp1 := id3 * 60.0
id1: = id2 + temp1

这里提到了汇编代码,所以我们在阅读本书时需要有一点汇编语言基础:

(3)指令(instruction)

如MOVF, F表示Floating-point numbers。注意,指令有两种语法,分别是Intel 语法和AT&T语法。支持Intel语法的主要是Windows系统,支持AT&T语法的主要是Unix系统。

Intel 语法:mov dest, src

AT&T 语法:mov src, dest

参考:https://en.wikipedia.org/wiki/X86_assembly_language

p15, The first and second operands of each instruction specify a source and destination, respectively....This code moves the contents of address id3 into register2, then multiplies it with the real-constant 60.0.——书里使用的是AT&T语法,本书作者之一Alfred V.Aho与AT&T的关系:Alfred V.Aho is head of the Computation Principle Research Department at AT&T Bell Laboratories in Murray Hill New Jersey。

(4)#号

表示intermediate data。

2.machine code

0001 01 00 00000000 
0011 01 10 00000010
0010 01 00 00000100 

如上所示称为machine code, 当我们看到“machine code”这个词的时候我们要想到上面的代码。

二、其它

进入六月以来,每天都忙于加班,疲于奔命,阅读《编译原理》几乎无进度,然而内心觉得这并不是我想要的,因为长此以往,就会停不前,还是要每天学习一些新的东西;二是,自己也不喜欢这样重复的去做相同的事。所以,我又折回来继续看书了。

四、参考资料

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.ryyt.cn/news/47479.html

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

相关文章

QT实现简易串口助手

简易串口助手界面设计 自定义了QWidget的派生类SerialPortWidget,其界面设计大致如下:效果图:项目结构 serial_port└─│ main.cpp //主程序│ mainwindow.cpp //主窗口源文件和头文件│ mainwindow.h│ myintvalidator.cpp //QIntValidator的派生类,重写fixup…

GraqphQL 学习

GraphQL是Graph+QL。Graph是图,描述数据最好的方式是图数据结构(包括树),数据和数据之间,有像图一样的联系,以图的思维来考虑数据。QL是query language,像写query语句一样请求数据,query什么数据,就返回什么数据。怎样用图的方式来描述数据?定义Schema(类型), type 类…

Android :安卓学习笔记之 Handler机制 的简单理解和使用

目录Handler机制1、Handler使用的引出2、背景和定义3、作用和意义4、主要参数5、工作原理及流程5.1、对应关系6、深入分析 Handler机制源码6.1、Handler机制的核心类6.2、核心方法6.3、方式1:使用 Handler.sendMessage()6.3.1、 创建Handler类对象6.3.1.1、隐式操作1:创建循…

try_catch处理异常

try_catch使用不影响其他功能的使用 这点比无脑throws强 public class Demo06Exception { public static void main(String[] args){ String s="a.txt"; try{ add(s); } catch (FileNotFoundException e){ System.out.println(e); } delete(); updata(); find(); } …

麒麟v10 SP2系统容器化部署MySQL、RabbitMQ、redis-ha-haproxy等出现OOMkill内存异常升高问题处理

问题场景 操作系统:麒麟系统v10 SP2 k8s版本:v1.23.17 容器运行时:containerd Rabbitmq镜像版本:3.9.11-debian-10-r0(3.11.10-debian-11-r0版本已正常) Mysql镜像版本:mysql_5.7.37-debian-10-r95(8.0.20版本已正常) redis-ha-haproxy镜像版本:haproxy:2.0.22-alpin…

2024.6.24 CTF MISC 任务清单

题目: 黑客帝国 https://buuoj.cn/challenges#%E9%BB%91%E5%AE%A2%E5%B8%9D%E5%9B%BD 打开发现是txt文档 看起来像是16进制的,我们把它挪到 010 中 此时出现了 rar 的标志,说明要保存为 .zip的形式 于是破解了密码,但是图片显示错误 从网上搜到的结果可知: PNG(png)文件…

【Playwright+Python】系列教程(二)手把手带你写一个脚本

一、如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下: 1、同步写法: from playwright.sync_api import sync_playwrightproxy = {server: http:/127.0.0.1:8080}def run():with sync_playwright() as p:browser = p.chromium…

【游记】中考后SH四日游

中考后SH四日游6.22 6.23本来接下来还有拍摄的东方明珠旁云彩的移动的,体验到了什么是“风云变幻”,但由于是视频,懒得传了。6.246.25 6.26 6.27本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18265950,未经允许严禁转载。 版…