0%

生命不息,折腾不止。

最近感觉Linux越用越顺手了,尤其是Linux下的shell(此处可以特指一下目前正在用的zsh…)甩了Windows的cmd好多条街。

我平时在Windows下也经常用命令行,之前装了个Git for Windows之后,里面自带的ls/ssh/grep等等基本上已经成了我Windows下常用的命令了。

以前没怎么注意,昨天看了下Git for Windows本身就是用MSYS环境搭的,想想干脆装一个完整的MSYS2好了。

Read more »

在Windows下,或是像Ubuntu、Arch这些拥有出色的软件包管理器的Linux发行版下,似乎从来都是不需要怎么考虑如何安装Gcc的问题。几个键就好了。

有一天,需要在没有root权限、然后还不能用包管理器的情况下安装Gcc时,就可能遇上各种奇怪的问题。

Read more »

  • “你最喜欢的Linux发行版是什么?不要跟我说是Ubuntu。”

  • “额…用过的不多,就是Ubuntu了。”

  • 然后就被安利成功了……

Read more »

开始在USTC求学的生活。 少年你想要力量吗?

花了点时间,终于把PL/0整个编译器的源码分析了一遍,接下来就是上手对这个编译器进行改造的过程了。

我决定首先尝试将PL/0编译器的源码从C转到C++上,然后划分成多文件,再准备开始改。先从课设作业要求开始,最终的目标是完成PL/0的完整文法支持。

已经完成的部分我用删除线在下面标出来。

在github上开了个仓库,准备存放改写后的代码,以及用于记录整个过程:
https://github.com/jcf94/pl0_compiler

下面先看一下拓展后的PL/0文法。

Read more »

半路起步,继续学习编译原理ing,龙书还在继续看。我向来推崇学习时理论与实践结合,这本书现在带给我最大的感受是:我急于尽快掌握构建技术,而书上大篇幅介绍的还是词法、文法等理论知识,感觉我静心学习的耐心正在耗完中。

唉,这就是没系统上过课的悲剧,虽然知道不打好基础贻害无穷,但是还是决定上手做点实践。希望在实践中能够对编译原理有更多的理解。

这里要感谢挚友Bigballon同学以前分享给我的一份学习资料。他是软件系科班出身,对编程有着自己的理解。于是决定参考他写的一篇课程设计心得《从PL/0到Flex》尝试PL/0编译器的改写。

Read more »

逛知乎的时候看到这么个问题:

其中有个答案提到了一种计算浮点数的平方根倒数的快速算法,其实我以前就曾经思考过大数平方根的计算方法,然后…就没有然后了。

神奇的地方在于这个快速算法中有个诡异的常数,据说至今没有人知道它最早是怎么来的。

Read more »