小项目记录
某些小型项目(100行左右或者小于100行)就直接放在github gist上了。以下是按时间最新排序的简单介绍
汇编语言程序设计笔记
HNUSTC 编译器14天速通后记
前情提要
对我校编译原理没有实验课,没有课程设计,就是纯纯的理论很不爽,在与老师沟通后开始尝试写一个用于教学目的的编译器,在此之前我已经实现了正则表达式的解析和LL文法的分析,对于实现一个编译器很有兴趣。本着跟计算机打交道这么多年,连一个编译器都没摸透过的遗憾心理开始了编译器速通计划。
先花了一个星期确定技术栈上,最终我们敲定了先使用lex+yacc
,然后借助llvm
的框架快速搭建一个以llvm ir
为目标代码的编译器。语言选定为C98的一个子集,去除了一些无关紧要的特性,保留了结构体等比较重要的特性。
然后是漫长的看各种手册实现的过程,在不断的思考-实现-碰壁循环中最终花费大约两个星期实现了一个最简单的编译器,但是相比原计划还是削减了一些重要的特性,比如结构体和函数指针。最终代码量总和在1k行左右,编译中的各个阶段均能独立运行输出调试结果。拿libreoj
上的两道题跑了两个简单的测试,能过应该就没问题了。
开源以后再说吧。
数据库速通笔记
Hello World
在日常的使用ArchLinux中,因为Dophin下面那个终端有时候会莫名其妙不跟踪好上面的路径,一次rm -rf .
直接把/home/删一大半…包括原本Gridea的文件。巧的是刚好没备份(开学买的4T硬盘干嘛用去了…)。于是原博客就顺理成章的变成了一个不可维护的状态…
于是接下来用Hexo写作了,还请各位多多指教。
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.