路飞学城Python-Day1

1.什么是编程?
编程就是写代码,代码是计算机理解的语言,编程就是通过计算机理解的语言实现一些事件,计算机能理解的就是二进制,就是0和1的两个值
计算机底层是电路,如何表达0和1?就像灯只能表示开灯和关灯,做成多个灯,就有很多种组合,多种组合就能实现多种状态对应的事件
总结理解的就是计算机就是二进制
假设你是BOSS,你有starffs,来自不同地域,理解的是不同的语言,需要一个共同的翻译工作来做交互
计算机能从二进制演化为能读懂英文的演变,古老的计算机就是只能读懂二进制的标志,像纸带一样做标记,现在为止底层还是机器语言,但是使用者不涉及底层了


【机器语言】:由于计算机内只能接收二进制代码,因此,用二进制代码0和1的描述的指令成为机器指令,全部机器指令的集合构成计算机的机器语言【机器语言属于低级语言】
输出的程序全是0和1的指令代码,直观性差,还容易出错,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了
机器语言是微处理器理解和使用的,尽管机器语言好像是很复杂的,然而它是有规律的,存在着很多种机器语言的指令,这意味着不能把这些种类全部列出来

路飞学城Python-Day1


【汇编语言】:和机器语言相比没有多大的提高,汇编语言的实质和机器语言是相同的,都是直接对硬件进行操作,只不过指令采用了应为缩写的标识符,更容易识别和记忆
它同样需要编程者将每一步具体的操作用命令的形式写出来,汇编程序的每一个指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,
因此汇编程序一般比较冗长、复杂、容易出错,而且使用汇编语言需要有更多的计算机专业知识
但是汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序汇编生成的可执行文件不仅比较小,而且执行速度快。

开发CPU是调用的汇编语言

 路飞学城Python-Day1

【高级语言】:简化的现代的使用便捷的语言,高级语言是大多数编程者的选择,和汇编语言相比,它不但将许多相关的机器指令合称为单条指令,并且去掉了与具体操作有关的但与完成工作无关的细节,
例如使用堆栈、寄存器等,这样就大大简化了程序中的指令,同时,由于省略了许多细节,编程者也需要大量的专业知识
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如C/C++,JAVA,PHP,Python,GO,C#等都属于高级语言
相比机器语言和汇编语言,高级语言对开发人员更友好,在开发效率上大大提升

市面上都是用高级语言来进行编程
高级语言之间的本质上的区别:C运行效率特别快,Java其次,Python更次,高级语言分类特别清楚,
区分高级语言的本质区别的原因:高级语言本质就是要转换为二进制,实际就行各种高级语言对二进制语言转换的速度的快慢
时间成本高:全部完成后发布
效率高:读一句翻译一句,同时翻译,花更长的时间才能完成

 路飞学城Python-Day1

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行!
人读懂的代码>>编译[翻译]>>机器能读懂的二进制>>Cpu运行

【编译类】:编译类指在应用源程序执行之前,就将程序源代码“翻译”为目标代码,因此其目标过程程序可以脱离其语言环境独立执行(编译后的生成可执行文件,是CPU可以理解的二进制的机器码组成)
使用比较方便,效率较高,但是应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的文件(也就是.obj文件),只有目标文件而没有源代码修改起来不方便
编译后程序运行不需要重新翻译,直接使用编译的结果就行了,程序执行效率高,依赖编译器,跨平台差些,如C、C++、Delphi等

【解释类】:效率不高,有什么好处呢?为什么要用解释型语言,解释型语言就可以适用所有的平台,可以相对的减少时间成本
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件
应用程序不能脱离解释器(想运行,必须要先装上解释器),但是这种方式比较灵活,可以动态的调整,修改应用程序,如Python,Java,PHP,Ruby等语言
所有的linux就已经配置了python,直接就能运行,windows上是不支持python的
一味的追求速度,就是需要消耗开发时间


【小结】
机器语言:优点是最底层,速度最快,缺点是最复杂,开发效率低
汇编语言:优点是底层,速度最快,缺点是最复杂,开发效率低
高级语言:编译型语言执行速度快,不依赖语言环境运行,跨平台差
解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行