语法分析的目标 语法分析的最终目标是生成抽象语法树。 上下文无关文法:用数学理论描述语言的语法规则 早有数学家帮我们构造好了数学方法,数学的发展总是快工程一步! 3型文法描述语言的词法结构;2型文法描述语言的语法结构。上图的文氏图表示更外部的文法描述的范围更广。1型文法和0型文法在目前 …
CMU15-445数据库系统:排序与聚集
课程小结 视频:https://www.bilibili.com/video/BV1Jq4y1B7ce/?spm_id_from=333.788 之前的课程中我们研究了存储引擎、缓存池和访问方法(哈希表与树索引)。本节开始研究算子。 研究四个议题: 算子算法。例如 排序、join等具体是怎么执行的。 …
CMU15-445数据库系统:索引并发控制
作业项目进度提示 并发控制 视频:https://www.bilibili.com/video/BV1eR4y1W7rW 本节讨论让数据结构具备并发安全的特点,尽管本节仅仅是介绍 B+ Tree 上的相关技术。在前两节中讨论的数据结构中,我们都只考虑单线程访问的情况,即只能有一个线程在 …
清华大学操作系统课程笔记:信号量和管程
信号量和管程:都是操作系统提供的同步方法 今天来讲解 与 锁同级的一种抽象办法。——信号量 信号量(Semaphore),有时被称为信号灯,是操作系统提供的,在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。 两个进程协调谁能使用,由操作系统作为“裁判”。 …
清华大学操作系统课程笔记:同步互斥
同步互斥 并发多线程,如果不用锁的话,每次运行结果都可能不同。 如果对多并发进程之间要求每次结果应该一样,就需要考虑同步互斥问题;有时候却还需要多进程不同运行时候的结果不一样,例如在通信的时候,就期望不同,这时候就不需要考虑这种问题。 这就会出现间歇性问题。但进程并发执行有很多好处,我们不能抛弃它。 …
CMU15-445数据库系统:树索引
视频课程(中字幕)、课件 视频: https://www.zhihu.com/zvideo/1416169097633234944 https://www.zhihu.com/zvideo/1416174789904379904 课件: Tree Indexes 表索引 什么是表索引? …
CS143 斯坦福编译原理 词法分析
词法分析任务 任务:将代码分解成为<class, string>形式,这叫做Token(词法单元)。 Cool包括以下几个类别: 标识符(Identifier):指的是变量名、函数名或类名等名称。此外,+或-等运算符及括号等标点符号也属于标识符。标点符号与保留字有时也会被归为另种类型的单 …
CS143 斯坦福编译原理 Cool语言概述
编程语言的性价比 问1:为什么有这么多程序语言? 如,科学计算→Fortran,商业程序→SQL,系统程序→C/C++ 答:不同程序所解决的领域是不同的 Cool语言概述 课程项目:使用c++为Cool语言构造编译器 课程目标:使用c++为Cool语言实现一个完整的编译器。 课程主页: …
CS143 斯坦福编译原理 实验环境准备
视频讲述 官方课程资源下载 2021版的课程主页(含文本作业、编程作业、PPT等信息):http://web.stanford.edu/class/cs143/ 备用:因为官方的课程主页每年都会更新,有时候会时常上不上去,这里我将上述网站进行了镜像,以备不时之需。 下载压缩包后解压缩,点击index …