如何A掉《未来程序·改》(上):编译器前端和解释器

长夜过,最难熬的破晓一定会赴约刚好。
最向往的时光,是一如既往,就好。

自从我打 OI 以来,【集训队互测 2015】未来程序·改 就是我的梦中情题。它需要实现一个 C++ 子集的解释器。当年我的知识水平还远远不足以 A 掉它,只能望题兴叹。 继续阅读 »

lemon 在 macOS 上的移植

lemon 是一个轻量的 OI 评测系统。它基于 Qt 编写,因此应当具有强大的跨平台特性。
但是 2012 年开始,lemon 就不再更新了。而且之前官方也没有管 macOS 的问题,直接 qmake 也是不可能通过。
所以,我去做了一个移植的工作。
这里就直接贴项目地址了(其实就是骗 Star):
lemon-mac 在 GitHub 上的内容

如果你实在懒得折腾,也可以下载我构建好的版本,既可以去 GitHub Release 下,也可以点击这里下载。
lemon 界面
放张图就跑~
另外,最近中国移动网络似乎会将 GitHub 解析到 127.0.0.1。访问不了 GitHub 的朋友们就去 Coding.net 吧。

栈与队列的基础实现

之前学习栈和队列就不是很系统,这会趁着有时间赶紧补一补。

栈 (stack) 是一种“先入后出”的数据结构。栈的基本结构类似洗盘子,你必须把上面的盘子全部移走,才能够取得下面的盘子。栈的图解如下:
stack picture
可以看出,栈由两部分组成,数据和栈指针。
在 C++ 中,我们一般通过数组模拟来实现栈。
栈的类型声明如下: 继续阅读 »