编写编译器时为什么需要运行时库?

时间:2016-07-05 23:46:37

标签: compiler-construction runtime

我正在关注编译器教程。现在我正在尝试实现Vector(或数组)。作者提供了一个C文件,包括打印整数,初始化数组(malloc)等函数,并让我在我的编译器生成的x86代码中调用这些函数。

我的问题是:为什么我们需要它?我们不能使用x86系统调用或中断吗?

是否因为使用运行时库,它使编写编译器更容易?但最终的可执行文件将更慢

1 个答案:

答案 0 :(得分:2)

除非系统中有东西要调用,否则不能使用系统调用或中断,操作系统通常不包含向量库。您可以自己生成所有代码,但之后您必须在使用该功能的每个目标文件中执行此操作,这将是浪费。因此,您提供了一个运行时库,其中包含您希望对象程序调用和排列的内容,以便链接器将对其进行搜索。这是链接时成本,而不是运行时成本。