主要内容:
一、编程语言分类和介绍
二、Python解释器分类和介绍
一、编程语言分类和介绍
1、编程语言分类
2、编程语言的介绍
2.1 机器语言
定义:
计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。 机器语言属于低级语言。
特点:
<1>面向最底层,速度最快;
<2>最复杂,开发效率低,直观性差,程序全部由0和1构成。
示例:
指令部分
0000 代表“加载”(LOAD) 0001 代表“存储”(STORE)
存储器部分
000000000000 代表地址为0的存储器
000000000001 代表地址为1的存储器
2.2 汇编语言
定义:
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,不同在于汇编语言采用了英文缩写的标识符,更容易识别和记忆。
编程者需要将每一步具体的操作用命令的形式写出来,汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增等。
特点:
1、比较底层,可执行文件较小,执行速度很快;
2、程序冗长复杂,容易出错,开发效率很低,需要非常专业的计算机知识。
汇编语言示例:用汇编语言编写程序输出“Hello World!”
步骤一:了解汇编语言代码结构
data SEGMENT '数据段,编程者可以把数据都放到这个段里
....数据部分.... '数据格式是: 标识符 db/dw 数据。
data ENDS '数据段结束处。
edata SEGMENT '附加数据段,编程者可以把数据都放到这个段里
....附加数据部分....
edata ENDS '附加数据段结束处。
code SEGMENT '代码段,实际的程序都是放这个段里。
ASSUME CS:code,DS:data,ES:edata '告诉编译程序,data段是数据段DS,code段是代码段CS
start:
//代码区
code ENDS '代码段结束。
END start '整个程序结束,并且程序执行时由start那个位置开始执行。
步骤二:了解中断指令
中断指令:INT 21H
功能号:09H
功能描述:输出一个字符串到标准输出设备上。
输出内容:输出DS中指向的DX指向的内容,如果DX为空,则输出DS首地址指向的内容。
入口参数:AH=09H
DS:DX=待输出字符的地址
说明:待显示的字符串以'$'作为其结束标志
出口参数: 无
步骤三:定义"Hello World!"字符串
data SEGMENT
hello DB 'Hello World!$' ;注意要以$结束
data ENDS
步骤四:编写代码段
code SEGMENT
ASSUME CS:CODE,DS:DATA
start:
MOV AX,data ;将data首地址赋值给AX
MOV DS,AX ;将AX赋值给DS,使DS指向data
LEA DX,hello ;使DX指向hello首地址
MOV AH,09h ;给AH设置参数09H
INT 21h ;执行AH中设置的09H号功能。输出DS指向的DX指向的字符串hello
MOV AX,4C00h ;给AH设置参数4C00h
int 21h ;调用4C00h号功能,结束程序
code ENDS
END start
步骤五:运行
2.3 高级语言
高级语言是相对于机器语言而言的,是高度封装了的编程语言,与低级语言相对。它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序员编写更容易,有较高的可读性。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类,分别是编译型和解释型。
第一类:编译型
定义:
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是CPU可以理解的2进制的机器码组成的),使用方便,效率较高。
特点:
1、源代码编译后程序可直接运行,速度快,程序执行效率高;
2、程序依赖编译器,跨平台性能差,且应用一旦需要修改,必须修改源代码,再重新编译生成新的目标文件(*.obj,也就是OBJ文件)才能执行,当只有目标文件而没有源代码时,修改很不方便。
编译型语言代表:C、C++、GO等。
编译型语言的典型示例:
第二类:解释型
定义:
解释型语言的执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器代码),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,这种方式可以动态调整、修改应用程序。
特点:
1、跨平台,一份代码,到处使用,便于动态调整修改;
2、执行速度相对较慢,依赖解释器运行。
典型的解释型语言:Python、PHP、Java等。
解释型语言的典型示例:
编译型语言和解释型语言的终极对比,见下图:
二、Python解释器分类和介绍
1、Python解释器主要分为Cpython、IPython、PyPy、Jython和IronPython几派,各有特色和绝技。
2、Python解释器的简单介绍
2.1 CPython
CPython是用C语言开发的,所以我们在命令行下运行Python就是启动CPython解释器。
CPython是使用量最广的且被官方推荐的Python解释器。
2.2 IPython
IPython是基于CPython之上的一个交互式解释器,也就是其本质与CPyhton相同,区别在于IPython在交互方式上有所增强,好比国产浏览器虽然外观不同,但内核大都调用了IE。
2.3 PyPy
PyPy形如其名,它是使用Python语言开发的解释器,采用JIT技术,对Python代码进行动态编译(注意,不是解释),可以显著提高Pyhton代码的·执行速度。
目前尚未完全成熟,但以后大有可为。。。
2.4 Jython
Jython是运行在Java平台上的Python解释器,可以直接将Python代码编译成Java字节码执行。
2.5 IronPython
IronPython和Jython类似,只不过IronPython是运行在微软 .Net平台上的Python解释器,可以把Python代码编译成 .Net的字节码。