链接和加载
什么是可执行文件 — “双击可以弹出窗口的那个东西” 一个操作系统中的对象 (文件) 一个字节序列 (我们可以把它当字符串编辑) 一个描述了进程初始内存布局的数据结构 什么是执行? — execve() execve() transforms the calling process into a new process. The new process is co...
什么是可执行文件 — “双击可以弹出窗口的那个东西” 一个操作系统中的对象 (文件) 一个字节序列 (我们可以把它当字符串编辑) 一个描述了进程初始内存布局的数据结构 什么是执行? — execve() execve() transforms the calling process into a new process. The new process is co...
语义分析需要做两件事情: 类型检查 — 静动(when)强弱(how serious) 【在这里不涉及】 符号检查 — 符号:变量名、函数名、类型名、标签名… 常见错误: 用到了变量/函数,但是前面没有定义【为什么不在语法分析处理?—上下文相关!】 把变量当作函数去用 重复定义 SDD和SDT 语法制导定义**SDD **(Syntax-Directed...
中间代码表示 中间表示(Intermediate Representation, IR):编译器在前端与后端之间使用的、与具体源语言和目标机器都相对独立的程序表示形式,用于承载程序语义、驱动优化,并作为目标代码生成的输入 前端对源程序进行分析并产生中间表示,后端在此基础上生成目标代码 为什么需要IR? 解耦与可移植性:同一前端可面向多个后端;同一后端可复用多个前端 ...
REVIEW:进程 首先,我们为什么需要“进程” 这是个老生常谈的问题,古早的计算机,一次只跑一个程序。程序从头跑到尾,独占所有内存和 CPU。这会带来两个问题: 问题 1:资源浪费。程序在等磁盘、等网络的时候,CPU 完全空闲。 问题 2:不安全。两个程序同时跑,一个写坏了内存,另一个也跟着崩。 所以这就引到了我们最熟悉的那句话:给每个程序一个“幻觉”——让它以为自己独占整台机器...
Machine Learning : “Field of study that gives computers the ability to learn without being explicitly programmed.” (Samuel 1959) 传统编程 = 人写规则 → 程序处理数据 → 输出结果 机器学习 = 人提供数据+结果 → 程序自己发现规则 本质上,就是让机器...
Everything is a file 文件系统可以用于构建任何信息系统,我们可以把“file” 当作一个可以顺序读写的字节流对象,而不仅仅是磁盘上的文件 FHS Filesystem Hierarchy Standard FHS: enables software and user to predict the location of installed files and dir...
struct proc { struct CPUState cpu; // points to mem[MEM_SIZE] uint8_t mem[MEM_SIZE]; // OS-internal state (pid, buf, buf_len, ...) }; 注意:进程好像是…有内存的? 这个模型告诉我们: 一个进程 = CPU状态 + 它能访问的内...
程序与进程 程序描述了“配方”“步骤”“指令”,它本身就是一串字节序列,当它真正运行起来,就变成了进程process 一个程序可以有多个进程 当程序运行起来,操作系统就会给它分配一些资源 也就是说:程序是语义 (状态机) 的静态描述 描述了初始状态和迁移规则 程序运行起来,就成了进程 (进行中的状态机实例) (同一个程序可以...
语法分析要做什么事? 在词法分析的时候,我们的output是词法单元序列 在语法分析的时候,我们就需要以这种词法单元序列作为input,判断这个由词法单元token作为“字符”的“字符串”能不能由文法生成,如果可以,用生产式把字符串还原成一棵语法树【这棵树就是语法分析的output】 🌰举个栗子: original input : a + b * 3 — 实际...
阅读指南 本笔记按照”问题驱动 → 机制 → 工程实践”的顺序展开。 建议阅读顺序:HTTP 基础 → RESTful API → 前端三件套 → 后端分层架构 → Spring Boot → JWT 认证 知识依赖链:HTTP协议 → RESTful设计 → Controller层 → Service层 → Repository/ORM → Spring Security + ...
A new version of content is available.