PYTHON之计算机语言基础知识 —— 编程语言的分类

一、计算机语言分类

  低级语言、高级语言、专用语言、脚本语言

  1、低级语言:机器语言、汇编语言和符号语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令(机器码)的合集,他是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能;汇编语言(亦称符号语言)用助记符代替机器指令的操作码,汇编语言源程序必须经过汇编生成目标文件,然后执行。

  2、高级语言:主要是相对汇编语言而言,它更接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序,编写的程序称为源程序。高级语言并不是特指某一具体语言,而是包括很多编程语言,如流行的java,C/C++,C#,pascal,python,lisp,prolog,FoxPro,易语言等。

  3、专用语言:CAD系统中的绘图语言和DBMS的数据库查询语言。

  4、脚本语言:又被称为扩建的语言或者动态语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。一个脚本通常是解释运行而非编译。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。一个脚本可以使得本来要用键盘进行的相互式操作自动化。

二、高级语言分类

  编译型语言、解释型语言、混合型语言

  1、编译型语言:编译型语言首先将源代码“翻译”生成目标代码(机器语言),再由机器运行机器码(二进制),其目标程序可以脱离其语言环境独立执行。编译只需一次,以后要运行就不需要重新编译,所以编译型语言执行效率高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。编译由编译器完成。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Object   file)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已经是可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工作由另一个程序负责完成,由于此过程好像是把包含可执行代码的目标文件连接装配起来,所以又称为链接(Link),而负责链接的程序就叫……就叫链接程序(Linker)。链接程序除了链接目标文件外,可能还有各种资源,像图标文件啊、声音文件啊什么的,还要负责去除目标文件之间的冗余重复代码,等等。链接完成之后,一般就可以得到我们想要的可执行文件了。

  2、解释型语言:解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行。一般来说,现有的解释性语言都是采用的逐行解释一句,执行一句这样的方式来构建的。这样解释性语言每执行一次就要翻译一次,效率比较低 。解释型程序中,由于程序总是以源代码的形式出现,因此只要有相应的解释器,移植几乎不成问题。释程序的优点是当语句出现语法错误时,可以立即引起程序员注意,而程序员在程序开发期间就能进行校正。

  3、混合型:Java很特殊,Java程序也需要编译,但是没有直接编译称为机器语言,而是 编译称为字节码,然后在Java虚拟机上用解释方式执行字节码。Python 的也采用了类似Java的编译模式,先将Python程序编译成Python字节码,然后由一个专门的 Python字节码解释器负责解释执行字节码。

编译型vs解释型

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。

缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

三、动态语言和静态语言

  通常我们所说的动态语言、静态语言是指动态类型语言和静态类型(数据类型)语言。

  1、动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

  2、静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

四、强类型定义语言和弱类型定义语言

  1、强类型定义语言强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

  2、弱类型定义语言数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

  强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
  例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

原文地址:https://www.cnblogs.com/yz9110/p/8125120.html

时间: 2024-11-02 14:52:19

PYTHON之计算机语言基础知识 —— 编程语言的分类的相关文章

PYTHON之计算机语言基础知识 —— 字符编码

ASCII字符集:ASCII码于1961年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码.标准ASCII码为7位,扩充为8位. ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码.其中96个字符可打印字符,包括常用的字母.数字.标点符号等,另外32个不可以显示的控制字符. 字母和数字的 ASCII 码的记忆是非常简单的.我们只要记住了一个字母或数字的 ASCII 码(例如记住 A 为 65 ,

Python网络爬虫基础知识学习

对Python有一些简单了解的朋友都知识Python编程语言有个很强大的功能,那就是Python网络爬虫(http://www.maiziedu.com/course/python/645-9570/),一提到Python,就会想到相关的Python爬虫和scrapy等等,今天就来简单认识学习Python爬虫的基础知识,有了一定的相关爬虫知识,以后学习scrapy.urllib等等知识时,会相对轻松些. 爬虫: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组

python的一些基础知识1(共计10)

python现在很热门,我们公司是一个教育机构也对这个很热门的东西情有独钟,我打算从今天开始用十节课的内容给大家讲解一下pathon的基础知识. 首先需要记住一些必备的尝试: 1:退出python交互式解释器的快捷键是CTRL+D 2:如果熟悉其他计算机语言,可能习惯性的在每行后以分号结束,python则不用,一行就是一行,不管多少,如果喜欢的话可以加上分号,但是不会起到任何作用. 3:在python中参与出发运算的两个数如果有一个是浮点数则运算结果就是浮点数,两个数如果都是整数则运算结果也为整

Python之编程基础(编程语言分类)

一.编程语言简介 编程语言主要从以下几个角度进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 1.编译型跟解释型 编译型,其实他和汇编语言是一样的,也是有一个负责翻译的程序来对问我们的源码进行转换,生成相对应的可执行代码.这个过程说的专业点儿就称为编译(Compile),而负责编译的程序自然称为编译器(Compile).如果我们写的程序代码包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了.但对于一个比较发杂的项目,为了方便管理,我

菜鸟的Python之路--基础知识

刚刚开始自学Python,整理一下自己的学习感悟 刚刚开始学习Python,代码之路才刚刚开始第一个差距就感受到了.Python的标点符号与其他语言的差别,它每句后面都没有":". 变量的命名规则    1. 要具有描述性    2. 变量名只能_,数字,字母组成,不可以是空格或特殊字符(#?<.,¥$*!~)    3. 不能以中文为变量名    4. 不能以数字开头    5. 保留字符是不能被使用 常量 :不变的量 pie = 3.141592653....     在py

Python学习心得——基础知识(七)

一.冒泡排序 1.要求 把列表中无序的字符按小到大排序:[9,6,15,11,36,28] 2.思路 把列表中相邻的字符值进行排序,值的放到右侧,逐个比较直到满足要求,类似水中的气泡朝水面移动. 3.样例 针对列表[9,236,1,7,5,18]按从小到大排序 1 #!usr/bin/env python 2 # -*- coding: utf-8 3 4 lis=[9,236,1,7,5,18] 5 for i in range(1,len(lis)): #判断有几次大循环数据比较 6 for

python相关的基础知识分享

今日面试,,才发现lambda和fibonacci都忘了怎么写,一年半载没有频繁的用py,以往的兴趣因生活的忙碌而显得生疏了,还好,之前学习整理的文档都放在了网站上,以备查验. 分享出来解决方案: http://www.pcswo.com/static/file/python/basis/function/generator-eg.py >>> m = lambda x,y,z: (x-y)*z >>> print(m(3,1,2)) 4 >>> de

python科学计算基础知识

1.导入基本函数库 import numpy as np 2.获取矩阵元素字节数 1 a=np.array([1,2,3],dtype=np.float32) 2 a.itemsizeoutput: 4 3.获取数组维数A.shape 例如 1 a=np.array([[1,2,3],[4,5,6]]); 2 3 a.shape 4 5 output:(2,3) 4.选取某一行或某一列元素, 注意numpy中数组起始坐标是0开始的,跟matlab中有区别.matlab中是从1开始的. pytho

python的一些基础知识

什么是算法? 算法就是计算机执行时的步骤,对于某一件事的详细描述.(事无巨细,全部考虑到,务必做到无遗漏,但是这是不可能的) 交互式解释器 python在启动是用于用户输入和程序返回结果的程序就是交互器. 十六进制,二进制 此处不做详细赘述,会更新整篇文章对此概念进行概述. 变量 变量就是一些数值的名字,也可以理解为容器.变量的命名不能使用数字开头,不能使用关键字,不能以下划线开头,在工作使用中,一般把大写字母命名的变量定义为全局变量,不能更改.变量在命名的时候遵循意义明显的原则的,名字就能代表