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

Compiler construction 编写编译器时为什么需要运行库?,compiler-construction,runtime,Compiler Construction,Runtime,我正在学习编译器教程。现在我正在尝试实现向量(或数组)。作者提供了一个C文件,其中包含打印整数、初始化数组(malloc)等函数,并要求我在编译器生成的x86代码中调用这些函数 我的问题是:我们为什么需要这个?我们不能使用x86系统调用或中断吗 是因为使用运行库,编写编译器更容易吗?但是最终的可执行文件将变慢?除非系统中有东西要调用,否则不能使用系统调用或中断,并且操作系统通常不包含向量库。您可以自己生成所有的代码,但是您必须在使用该功能的每个对象文件中这样做,这将是浪费。因此,您提供了一个运行

我正在学习编译器教程。现在我正在尝试实现向量(或数组)。作者提供了一个C文件,其中包含打印整数、初始化数组(malloc)等函数,并要求我在编译器生成的x86代码中调用这些函数

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


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

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

谢谢。但是C首先是如何实现这些特性的呢?