• C连载2-编译过程以及语言历史概览


    一、计算机要完成两数相加,可以大致分为如下几个步骤:

    1.从内存位置2000上把一个数字拷贝到寄存器1;

    2.从内存位置2004上把另一个数字拷贝到寄存器2;

    3.把寄存器2里面的内容与寄存器1中的内容相加,把结果储存在寄存器1中。

    4.把寄存器1中的内容拷贝到内存位置2008。

    二、高级语言以更抽象的方式描述行为,不受限于特定CPU或者指令集。

    三、编译器都声称提供完整的K&R实现,与大多数语言相比,C语言比其他语言更加依赖库,因此需要一个标准库,实际上由于缺乏官方的标准,UNIX实现提供的库已成为了标准库。

    四、美国国家标准协会(ANSI)

    C89:ANSI与1989年批准该标准。C90:ISO于1990年批准该标准。

    C99C11

    五、C编译器把源代码转换为中间代码,链接器把中间代码和其他代码合并,生成可执行文件,链接器还将你编写的程序和预编译的库代码合并。

    六、中间文件有多种形式,我们在这里描述的最普遍的一种形式,即把源代码转换为机器语言代码,并把结果放在目标代码文件(或简称目标文件)中(这里假设源代码只有一个文件)。虽然目标文件中包含机器语言代码,但是并不能直接运行该文件,因为该文件中存储的是编译器翻译的源代码,这不是一个完整的程序。

    六、目标代码文件中缺失启动代码(startup code),启动代码充当着程序与操作系统之间的接口,例如:可以在MS Windows或Linux 系统下运行IBM PC兼容机,这两种情况使用的硬件是相同的,所以目标代码相同,但是Windows和Linux所需的启动代码是不同的,因为这些系统处理程序的方式不同。

    七、目标代码中还缺少库函数,几乎所有的C程序都需要使用C标准库中的函数​。

    八、链接器的作用:把编写的目标代码、系统的标准启动代码和库函数这三部分​合并成一个问及那,即:​可执行文件,对于 库代码,链接器只会把程序中要用的库函数​代码提取出来。​

    九、源码:

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包

  • 相关阅读:
    Substrate 为区块链创新而来
    跨链资产原子转移工具包 Decred atomicswap
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12934590.html
Copyright © 2020-2023  润新知