C++20迈向异步 Part2-可等待体
时隔大半年,经历了老博客挂掉/Gnome换KDE等风波之后,总算迎来了计算机网络。也是读了一遍《Unix 网络编程 卷一:套接字联网API》和《UNIX 环境高级编程》,对异步和网络有了全新的认识。是时候重启这个系列了,而本Part将会介绍co_await
和可等待体,并给出上一Part中generator的改进版,我们的协程现在可以等待另一个协程了。
时隔大半年,经历了老博客挂掉/Gnome换KDE等风波之后,总算迎来了计算机网络。也是读了一遍《Unix 网络编程 卷一:套接字联网API》和《UNIX 环境高级编程》,对异步和网络有了全新的认识。是时候重启这个系列了,而本Part将会介绍co_await
和可等待体,并给出上一Part中generator的改进版,我们的协程现在可以等待另一个协程了。
某些小型项目(100行左右或者小于100行)就直接放在github gist上了。以下是按时间最新排序的简单介绍
对我校编译原理没有实验课,没有课程设计,就是纯纯的理论很不爽,在与老师沟通后开始尝试写一个用于教学目的的编译器,在此之前我已经实现了正则表达式的解析和LL文法的分析,对于实现一个编译器很有兴趣。本着跟计算机打交道这么多年,连一个编译器都没摸透过的遗憾心理开始了编译器速通计划。
先花了一个星期确定技术栈上,最终我们敲定了先使用lex+yacc
,然后借助llvm
的框架快速搭建一个以llvm ir
为目标代码的编译器。语言选定为C98的一个子集,去除了一些无关紧要的特性,保留了结构体等比较重要的特性。
然后是漫长的看各种手册实现的过程,在不断的思考-实现-碰壁循环中最终花费大约两个星期实现了一个最简单的编译器,但是相比原计划还是削减了一些重要的特性,比如结构体和函数指针。最终代码量总和在1k行左右,编译中的各个阶段均能独立运行输出调试结果。拿libreoj
上的两道题跑了两个简单的测试,能过应该就没问题了。
开源以后再说吧。
在日常的使用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.