首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
dejavudwh
掘友等级
学生
|
大三咸鱼
一名咸鱼大学生
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
我是如何学习写一个操作系统(四):操作系统之系统调用
最近有点事情,马上要开学了,所以学习的脚步就慢下来了。这一篇主要是来说操作系统的系统调用的,像C语言的printf深入到内部就是一个有关屏幕输出的系统调用 之前提过操作系统是对硬件的抽象,也是软硬件之间的一层。之前比如如果我们想要在屏幕上输出一些字符,就需要一些指令操作,然后把…
我是如何学习写一个操作系统(三):操作系统的启动之保护模式
上一篇其实已经说完了boot的大致工作,但是Linux在最后进入操作系统之前还有一些操作,比如进入保护模式。在我自己的FragileOS里进入保护模式是在引导程序结束后完成的。 实模式出现于早期8088CPU时期。当时由于CPU的性能有限,一共只有20位地址线(所以地址空间只有…
我是如何学习写一个操作系统(二):操作系统的启动之Bootloader
今天本来的任务看书和把之前写的FragileOS整理一下,但是到现在还在摸鱼,书也只看一点。后来整理了一下写这个系列的思路,原本的目的是对操作系统原理性的学习和对之前写的一个玩具型操作系统的回顾,就是想对操作系统的知识的轮廓能有一个了解,现在想来想减少对之前写的系统的回顾,毕竟…
我是如何学习写一个操作系统(一):开篇
在之前完成了一两个小软件和网站后遇见了编译原理,也不知道为什么就傻傻的学,还写了一个从零写编译器的系列学习笔记,不过都是小打小闹,只能算作摸到了一点点入门的门槛。再后来想深入学习的时候,因为暑假在家很多书买来的话再带去学校很麻烦,就索性找了一本操作系统的书,也不懂原理就撸了一个…
从零写一个编译器(完结):总结和系列索引
这个系列算作我自己的学习笔记,到现在已经有十三篇了,加上这篇一共十四篇。一步一步的从词法分析到语法分析、语义分析,再到代码生成,准备在这一篇做一个总结收尾和一个这个系列以前文章的索引。 主要分为自顶向下和自底向上的语法分析,一般有递归下降,LL(1),LR(1),LALR(1)…
从零写一个编译器(十三):代码生成之遍历AST
在上一篇完成对JVM指令的生成,下面就可以真正进入代码生成部分了。通常现代编译器都是先把生成IR,再经过代码优化等等,最后才编译成目标平台代码。但是时间水平有限,我们没有IR也没有代码优化,就直接利用AST生成Java字节码 创建结构体和数组的节点在DefGenerate里,可…
从零写一个编译器(十二):代码生成之生成逻辑
在上一篇解释完了一些基础的Java字节码指令后,就可以正式进入真正的代码生成部分了。但是这部分先说的是代码生成依靠的几个类,也就是用来生成指令的操作。 都生成像声明一个类或者一个方法的范围的指令,比较简单。 emit、emitString、emitDirective、emitB…
从零写一个编译器(十一):代码生成之Java字节码基础
局部变量数组,参数和局部变量就存储在这个数组。 还有一个PC指针,它指向下一条要执行的指令。 getstatic和ldc相当于压入堆栈操作。invokevirtual则是从堆栈弹出参数,然后调用方法 这一篇主要就是了解一下Java基本的字节码,因为C语言的语法比较简单,所以只需…
从零写一个编译器(十):编译前传之直接解释执行
现在经过词法分析语法分析语义分析,终于可以进入最核心的部分了。前面那部分可以称作编译器的前端,代码生成代码优化都是属于编译器后端,如今有关编译器的工作岗位主要都是对后端的研究。当然现在写的这个编译器因为水平有限,并没有优化部分。 在进行代码生成部分之前,我们先来根据AST来直接…
从零写一个编译器(九):语义分析之构造抽象语法树(AST)
从推导式可以看出,DEF节点的符号应该在valueStack.size() - 3,但是DECL和VAR_DECL没有做reduce操作,所以符号应该在valueStack.size() - 2。这其实和前面的符号表构建算出之前符号的位置是一样的。 其实构造AST和创建符号表上…
下一页
个人成就
文章被点赞
62
文章被阅读
67,319
掘力值
1,470
关注了
0
关注者
93
收藏集
0
关注标签
34
加入于
2018-08-14