编程语言分类和Python解释器介绍
主要内容:
一、编程语言分类和介绍
二、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的字节码。
编程语言分类和Python解释器介绍的更多相关文章
- day02-操作系统、编程语言分类及python安装
目录 操作系统 编程语言分类 安装python解释器 操作系统 操作系统有什么用 操作系统能接受外部指令转化成0和1,并把一些对硬件的复杂操作简化成一个个简单的接口,作为中间人连接硬件和软件 计算机三 ...
- 编程语言分类及python所属类型
编程语言分类及python所属类型 编程语言主要从以下几个角度为进行分类:编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 编译和解释的区别是什么? 编译器是把源程序的每一条语句都 ...
- python解释器介绍以及Pycharm的破解
python语言是弱类型解释型语言,弱类型指的是没有强制规定它的类型. 由于是解释型语言,则必有解释器与其匹配,根据不同的工作环境以及需求,python的解释器有很多种, 官方推荐的是CPython, ...
- Python 解释器介绍
举个栗子: -c cmd用法 python -c ' import os ; print ("is ok ") ' 或者(注意引号形式) python -c "impor ...
- 【2022-06-16】Python解释器的下载安装与使用
一.Python解释器介绍 什么是Python解释器? Python是一门解释型语言,解释器是Python运行必不可少的一种工具.所以,我们搭建Python环境,本质上就是对Python进行配置和定制 ...
- 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用
2018年3月19日 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5 ...
- day02编程语言,Python语言介绍,Python解释器安装,环境变量,Python代码执行,pip,应用程序使用文件的三步骤,变量,变量的三大组成,比较,pycharm
复习 重点: 1.进制转换:二进制 与十六进制 2.内存分布:栈区 与堆区 # 二进制1111转换十六进制 => 8 4 2 1 => f 10101100111011 => 2a7 ...
- 编程语言分类,安装python解释器,变量
1.编程语言分类 机器语言:直接使用二进制指令去编写程序,直接操作硬件 优点:执行效率高 缺点:开发效率低 汇编语言:用英文标签取代二进制指令去编写程序,直接进操作硬件 优点:开发效率高于机器语言 缺 ...
- 编程语言分类 + python解释器的安装 + jupyter的使用(day 02整理)
目录 一.昨日内容回顾 一 计算机基础之编程 (一) 什么是编程语言 (二) 什么是编程 (三) 为什么编程 二 计算机组成 (一) CPU (二) 存储器 (三) I/O设备 (四) 多核CPU ( ...
随机推荐
- JavaScript运算符:递增和递减(++i,--i 和 i++,i-- 的区别)
递增和递减操作符直接借鉴自C,而且各有两个版本:前置型 (递增 ++i ,递减 --i )和 后置型 (递增 i++ ,递减 i-- ).书本上对两者的定义是:前置型应该位于要操作的变量之前,而后置型 ...
- 彻底弄懂jQuery事件原理二
上一篇说到,我们在最外层API的on,off,tiggler,triggerHandler调用的是event方法的add,remove和tirgger方法,本篇就来介绍event辅助类 \ 先放个图, ...
- 内存泄漏 之 MAT工具的使用
1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 : · heap 查看堆的分配情况 · ...
- python list添加元素的几种方法
1. 加单个, append 2. 加个list, expend 3, 最简单的, 两个list可以用"+" (加号)
- lerna基本试用
安装 yarn global add lerna or npm install -g lerna 基本项目 初始化 git init platform cd platform lerna init 效 ...
- Spring线程池ThreadPoolTaskExecutor配置及详情
Spring线程池ThreadPoolTaskExecutor配置及详情 1. ThreadPoolTaskExecutor配置 <!-- spring thread pool executor ...
- hadoop之 YARN配置参数剖析—RM与NM相关参数
参数均需要在yarn-site.xml中配置: 1. ResourceManager相关配置参数 (1) yarn.resourcemanager.address 参数解释:ResourceManag ...
- bzoj3191卡牌游戏
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3191 原本想模拟过程,从t个人推到1个人: 但是怎么转移呢?想状压,可是50位压不到角标里. ...
- 全是干货!UI设计的30条黄金准则!
http://www.wex5.com/portfolio-items/js-1/ 全是干货!UI设计的30条黄金准则! 总的来说,好的UI界面有几个特征:简洁.便利.目标明确.人性化.字面上看这 ...
- Asp.net 页面传值的方法
ASP.NET页面传值的方法 From:Refresh-air 在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用.但是要全面的回答ASP.NET中页面传值的方 ...