前言
总算是通过了 ETH Zurich Master in Computer Science 除了毕设外最后一门课,借着这个机会来介绍一下这个项目的体验还有课程评价。
(下文会用 MSCS
来代替 ETH Zurich Master in Computer Science
)
总算是通过了 ETH Zurich Master in Computer Science 除了毕设外最后一门课,借着这个机会来介绍一下这个项目的体验还有课程评价。
(下文会用 MSCS
来代替 ETH Zurich Master in Computer Science
)
Datalog 是一种由 Prolog 分化而来的逻辑编程语言,相比 Prolog 最大的不同在于 Datalog 对于语法做出了很多限制因此是非图灵完全的,然而 Datalog 仍然在数据库和程序分析中有着广泛的应用。Souffle 是 Datalog 的高效实现之一,之前在北大熊英飞老师的公开课上曾经见过但是那个时候不理解也不太会写,最近修程序分析的时候又一次遇到,大作业被迫写了一千多行,因此本文就是用来记录一下 Souffle 编程的经验。
本文的代码可以在 Souffle 的在线编译器中运行。
For English version of this post, see this.
For English version of this post, see here.
一般来说,一个用 C 写的库可能会暴露接收一个函数指针作为回调函数,比如:
1 | typedef void (*callback_t)(void* data); |
然后我们可能会这样使用这个接口:
1 | typedef struct Context { |
但是这样仍然不太方便,因为我们需要手动管理 data 指针的生命周期,一不小心就有可能会内存泄漏。
最近研究 Chromium 和 HTML 标准,不可避免的就接触到了 Web IDL,这里就总结性的聊聊吧,也当是学习笔记了。
本文几乎就是照搬现在 Web IDL 的标准,但也不是简单的翻译也翻译不准。
最近用旧笔记本装了个 ESXi 当 NAS 用,其中有一个功能是我期待很久的:离线下载,但是当我挂公网 bt 的时候发现速度实在感人,然而由于某种原因 ESXi 的物理网卡接口上又拿不到 ipv6 但是我可以控制的某台机器有一段 /64
,所以就开始琢磨着怎么偷一段回来了。