《程序的编译,链接,运行》读书笔记
来源:互联网 发布:第三方辅助软件 编辑:程序博客网 时间:2024/05/16 23:33
《程序的编译,链接,运行》读书笔记
这本书主要介绍的是一个程序员编写的源代码如何变成一堆01010101010.。。。。。。。的计算机指令的。想详细了解请查看相关的知识。
1.对于人来说:
程序员编写程序时是类型(int ,double,float,char ,void*,struct,class)变量名,操作符,控制流语句。
对于编译器来说类型是用来解析数据块的,变量名是虚拟内存地址,变量的值是存储在变量名对应的虚拟地址上的01010101.。。。。编译器通过变量的类型来处理和解析变量名对应的数据00101001001.。。。。。的。
计算机中存储的都是010101001100110010.。。。。。。。。。。。的数据,它要对这些数据解析给人们可读,它就要根据对应文件的相关信息进行解析,从而达到人类可读,否则计算机就给你0010110100110。。。。。你一个看不懂。
2.人类看世界:
人们看世界的时候,会通过肤色来判断这个人是老外,通过是否会动来区分动物和植物,通过兔子的尾巴短,猴子的尾巴长等等来解析这些世界上看到的东西,描述出来实现交流。世界上的任何东西都有各自的特性,这些特性,而这些特性就是各个物质的自我描述信息,而人类通过这些字描述信息来通过人们公认的标准来解析成为了百科全书。
3.计算机看计算机中的文:
计算机中的文件的存储都是0101010100110000.。。。。。。。。。的文件,每个文件都有自己的描述信息,这些描述信息就是计算机科学建立的标准,例如图片有各种类型,它们的描述信息怎么存储在文件的什么部位,它包含了图片的那些描述信息才能让计算机解析出图片并渲染到显示器上让人们可读。视频,音乐的文件存储也要遵从计算机科学设定的标准,都要有自描述信息上下文,这样,计算机对应的文件的应用程序通过这些字描述上下文才能很好的解析对应的不同类型的文件。例如计算机应用程序通过图片的自描述信息上下文知道了图片的宽高,是否压缩,它的像素点信息是怎么存储的,通过这些信息计算机就能把一张完整的图片呈现给人们,毕竟计算机是为我们服务的。
4.其实程序文件并不神奇:
应用程序可执行文件和别的计算机文件都是一样的,计算机对它的存储也是010101010010101.。。。。。。。。的形式。它也有自我描述的上下文,源代码被编译器编译之后得到的是应用程序的自描述上下文加上居于虚拟内存地址的CPU指令。当你点击应用程序运行应用程序时,计算机就会去读取应用程序的自描述上下文的信息,看改应用程序是否是可运行的,是否是完整的,是否是支持改平台的应用程序,是否是该CPU框架的执行指令,该应用程序的入口地址在什么地方,当计算机通过上下文得到改程序符合运行条件,于是它就新建这个应用程序的运行环境-应用程序进程,应用程序进程建立完成之后就会去读取应用程序的入口函数地址作为起点运行改程序,知道应用程序运行结束,或者进程被系统关闭。
5.小结
编译器通过类型解析数据块,对于人来说变量名是可读的字符串,对于编译器来说是虚拟内存地址,每个计算机文件都有字描述上下文,这些自描述上下文都是计算机科学定义的标准或者是行业内部标准,不同文件都有不同应用程序处理,对应的应用程序通过这些自描述信息对数据进行解析,使解析出来的东西能够被人们所认知,实现计算机服务人类的目的。
- 《程序的编译,链接,运行》读书笔记
- 程序的处理步骤——预处理、编译、链接、运行
- 简图记录-程序的生命周期:编译链接装载运行
- 程序的处理步骤-------预处理、编译、链接、运行
- 程序的编译,链接
- 程序的编译、链接
- 程序编译链接运行深入剖析
- 第一个C程序-编译、链接、运行
- c程序从编译链接到运行
- C++命令行方式编译、链接、运行程序
- 程序编译链接运行深入剖析
- 程序编译链接运行深入剖析
- 深入程序编译链接和运行
- 程序编译、链接、运行时头文件或动态链接库的查找
- 程序的编译和链接
- c 程序的编译链接
- 程序的 编译 && 链接 && 装载
- 程序的编译和链接
- 数据库原理第二章作业
- p51,8
- 计数排序
- 一些常用字符串操作函数的内部实现
- 用CSS实现水平方向菜单&竖直方向菜单&下拉菜单
- 《程序的编译,链接,运行》读书笔记
- Java 中按值传递和引用传递的区别
- 转载自廖雪峰的网站,只是为了便于保存,---gita安装
- 初识OC 面向对象OPP(MS)
- 用 FileChannel 拷贝文件
- 编程范式随课笔记(二)
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- 第三只眼看费城自由钟---旅美散记之四
- 详解java类的生命周期