程序是什么?在编程的世界,我们平时所见到的程序,是指以某种逻辑组织起来的指令序列,通过这些指令序列达到一些特定的效果,一个可执行程序呢,它的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,通常的格式是ELF段的二进制文件,CPU 可以直接看到,识别,但是,若是对于程序员来说呢,这些二进制文件就显得晦涩难懂,看得人头皮发麻。
而在windons中呢,我们所说的程序,就是那些平时双击就可以直接运行的程序了,他们不需要安装,而是可以直接执行,这样的程序呢被称为可执行程序,英文名字是Executable Program,所以我们一般平时看到的exe文件呢就是可执行程序名字的一个缩写。在 Windows 下,可执行程序的后缀一般有 .exe 和 .com(其中 .exe 比较常见);而在类 UNIX 系统(Linux、Mac OS 等操作系统)下,可执行程序并没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序,一般格式为ELF文件。
例如,在我们的电脑屏幕上输出“hello world”,C语言的写法为:
puts("hello world");或者printf("hello world");
二进制的写法为:
如果你是程序员,你可以感受一下,直接使用二进制写程序感觉是不是想撞墙?而在计算发展的初期,程序员就是使用这样的二进制指令来编写程序的,因为在那个年代还没有编程语言。
直接使用二进制指令编程对程序员来说简直是噩梦,尤其是当程序比较大的时候,不但编写麻烦,需要频繁查询指令手册,而且除错会异常苦恼,要直接面对一堆二进制数据,让人眼花缭乱。另外,用二进制指令编程步骤繁琐,要考虑各种边界情况和底层问题,开发效率十分低下。
这种情况下,这就逼得程序员开发出了编程语言,提高自己的生产力,例如汇编语言、C语言、C++、Java、Python、Go语言等,逐步提高开发效率。从此,C语言代码由固定的词汇按照固定的格式组织起来,简单直观,便于程序员识别和理解,但是对于CPU,C语言代码是什么东西?根本不认识好吧!CPU只认识一些二进制形式的指令。所以呢!这个时候就需要这么一个工具,将C语言代码转换成CPU能够识别的二进制文件,也就是将代码加工成 .exe 程序;这个工具是一个特殊的软件,叫做编译器(Compiler)。编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译英文是Compile。
编译也可以理解为“翻译”,它是一个复杂的过程,大致包括词法分析、语法分析、语义分析、性能优化、生成可执行文件五个步骤,期间涉及到复杂的算法和硬件架构。然后将人们写的各种c语言或其他语言的语句,翻译成系统才能够理解的语句,进一步进行运算。Windows 下常用的是微软编译器(cl.exr),它被集成在 Visual Studio 或 Visual C++ 中,一般不单独使用;Linux 下常用的是 GUN 组织开发的 GCC,也叫GNU C Compile,很多 Linux 发行版都自带 GCC编译软件。
你的代码语法正确与否,编译器说了才算,编译器可以 100% 保证你的代码从语法上讲是正确的,因为哪怕有一点小小的错误,编译也不能通过,编译器会告诉你哪里错了,那你就是错了,这样以便于你对自己代码的更改。
网友评论