标签:redhat 提升 3.0 操作 就会 二进制 pandas 新浪 系统运维
编程语言即语言,语言的本质就是沟通,因而编程语言与英语 、法语、日语等所有语言并无区别,只不过英语是人与人之间沟通的介质,而编程语言则是程序员与计算机沟通的介质。
程序员把自己想要说的话用编程的语言写到文件里,这其实就开发了一个程序,接下来让计算机按照文件里说的内容去做事情,这就是程序的执行。
一:机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
优点:灵活、直接执行和速度快。
缺点:不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。 二:汇编语言:汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的,标识符更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
优点:能完成一般高级语言所不能实现的操作,而且源程序经汇编生成的可执行文件比较小,且执行速度很快。
缺点:源程序比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。 三:高级语言:明确地讲,高级语言就是说人话,用人类能读懂的(比如英文)字符编程。高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等。
优点:大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
缺点:高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。
按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(如python程序,先翻译/编译成字节码,然后由解释器解释执行,这个过程程序员都无需关心了,享受这种便利即可),一边执行
优点:这种方式比较灵活,调试程序极为方便,程序一旦出错,立即调试立即就可以测试结果
缺点:效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器。只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
编译类:编译是指在程序执行之前,就将程序源代码“翻译”成机器指令,并保存成二进制文件 优点:编译后的代码可以直接在机器上运行,运行速度比解释型要高。 缺点:调试程序麻烦,程序一旦需要修改,必须先修改源代码,再重新编译后才能执行。
总结:编程语言经历了:机器语言-------->汇编语言------------>高级语言(java,C#,php,ruby,python)
1:开发效率从低到高
2:执行效率从高到低
3:掌握难度从难到易
注解:执行效率不是问题,硬件已经足够用,于是开发效率成了关键,因而高级语言在当今世界大行其道。
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言(由Guido参加设计的一种教学语言,是专门为非专业程序员设计的,优美强大但是流产了,非开源)的一种继承。
最新的TIOBE排行榜,Python跃居第五!!!
摘自http://www.tiobe.com/tiobe-index/
由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!
由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
目前Python主要应用领域:
Python在一些公司的应用:
编译型vs解释型
编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
注解:java代码号称一次编译到处运行,因为java代理需要先编译成字节码(一种中间格式的代码),然后拿着字节码到处运行,每次运行都需要交给jvm去编译成机器指令后才能执行,因而java是混合型
而有的人会有疑问,python代码也是先编译成字节码然后交给python解释器去执行的啊,难道python不是混合型吗?当然不是
1. 首先需要知道,只有在import导入py文件时,才会产生pyc字节码文件,该字节码文件是可以代替源文件而直接执行的
2. 但每次执行py文件,产生的字节码并不会保留下来,也就是说,每次执行py文件,都是要重新经历一遍:py文件->字节码-->python解释器-->机器码,每次都是一个重新解释执行的过程。
C 和 Python、Java、C#等
C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作
其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行
CPython解释器是由C语言开发的
对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,绝逼是慢了
Python 和 Java、C#等
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
对于速度:Python在速度上可能稍显逊色
1.速度永远不是关键
对大多数的应用程序来说,并不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
2.加密也不是关键
对于编译型语言如C语言来说,可以将编译后的代码发给用户,用户反解几乎是不可能的,相当于自带加密功能了。而解释型语言如python只能发布源码给用户,但其实这没什么问题,现在主流的思想是软件开源,千万别意淫你的软件有多么大的商业价值。
python是一门语言,用这门语言写出的代码,需要由python的解释器去解释执行,解释器有如下分类:
以上除PyPy之外,其他的Python的对应关系和执行流程如下:
PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!
标签:redhat 提升 3.0 操作 就会 二进制 pandas 新浪 系统运维
原文地址:http://www.cnblogs.com/zzn91/p/6980269.html