什么是编程语言
人可以通过直接输二进制,相关标签打包输入到后来一步步发展的高级语言这种跟机器用本质二进制方式进行指挥操作电脑的硬件的方式
编程语言发展史
机器语言(站在奴隶的角度)
直接用二进制与计算机直接沟通交流
ps:为什么是二进制,是由于计算机是基于电工作的,而电信号只有高低电频
汇编语言(站在奴隶的角度)
用简单的英文标签代替二进制直接操作硬件
高级语言(站在奴隶主的角度)
同人类能够识别的语言与计算机进行沟通交流
机器语言
优点:执行效率高
缺点:开发的效率低
机器语言编程
于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
尽管机器语言好像是很复杂的,然而它是有规律的。
汇编语言
汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词。因此你不需要去记住二进制数,而是需要去记住一个一个英文单词,这同样是一个大工程
优点(较于机器语言):开发效率高
缺点(较于机器语言):执行效率低
汇编语言编程
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
汇编打印一句hello world,需要写十多行代码,也是醉了。
; hello.asm
section .data ; 数据段声明
msg db "Hello, world!", 0xA ; 要输出的字符串
len equ $ - msg ; 字串长度
section .text ; 代码段声明
global _start ; 指定入口函数
_start: ; 在屏幕上显示一个字符串
mov edx, len ; 参数三:字符串长度
mov ecx, msg ; 参数二:要显示的字符串
mov ebx, 1 ; 参数一:文件描述符(stdout)
mov eax, 4 ; 系统调用号(sys_write)
int 0x80 ; 调用内核功能
; 退出程序
mov ebx, 0 ; 参数一:退出代码
mov eax, 1 ; 系统调用号(sys_exit)
int 0x80 ; 调用内核功能
高级语言
高级语言的问世,高级语言直接用人能理解的语言和语法风格编写程序,程序猿无序再去考虑复杂的硬件操作。
优点(较于汇编语言):开发效率高(学了python你就会发现显而易见)
缺点(较于汇编语言):执行效率低(不再和硬件直接交互)
我们用高级语言编写的程序归根结底还是要给计算机执行,但是计算机只认识二进制指令。这就涉及到一个翻译的过程,我们需要把人用高级语言编写的程序翻译成计算机所能理解的二进制指令才执行,按照翻译方式的不同,高级语言又分为编译型和解释型两大类。
编译型
编译型专业解释为:使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式,并且只需要编译一次,以后再也不用编译。
优点(较解释型):执行效率高
缺点(较解释型):开发效率低
解释型
解释型专业解释为:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行,它不需要事先编译,直接将代码解释称机器码直接运行,也就是说只要某一平台提供了相应的解释器即可运行代码。其实可以理解成同声传译,我们需要翻译的时候,找一个翻译员,对方说一句翻译员翻译一句,下次翻译还是需要一个翻译员一句一句的翻译。
缺点(较编译型):执行效率低(我滴个乖乖,写一次翻译一次)
缺点(较编译型):开发效率高(写一行翻译一行,错了马上就知道,妈妈再也不用担心我找不到bug了)
高级语言编程
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为解释型和编译型。
编译型语言编程
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。
解释型语言编程
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。
主流编程语言
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。GO由其擅长并发编程。
Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛,已是全球第4大最流行的语言。
more and more, 面向百度谷歌查找把!