一、计算机语言分类

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

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虚拟机上用解释方式执行字节码。

编译型vs解释型

编译型

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

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

解释型

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

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

三、动态语言和静态语言

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

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

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

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

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

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

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

例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

python计算机语言基础_PYTHON之计算机语言基础知识 —— 编程语言的分类相关推荐

  1. python作品阐述_Python网络编程基础的作品鉴赏-

    Python网络编程基础的作品鉴赏 Python网络编佳入门图书!175个完整,实践出真知,SocketsDNS.Web Service.FTP.Email.SMTP.POP.IMAP.SocketS ...

  2. python 两点曲线_Python已经成为排名第一的编程语言!附带最新Python400集视频教学...

    同样是学习编程语言,当然要选择目前业内最先进.最热门.将来应用最广泛.最有前景的编程语言.在2017年的编程语言排行榜中,Python排名第一. Python拥有海量的开发库,方便控制各种品牌硬件,快 ...

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

    一.计算机语言分类 低级语言.高级语言.专用语言.脚本语言 1.低级语言:机器语言.汇编语言和符号语言.机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令(机器码)的合集,他是计算机的设 ...

  4. python爬虫归纳_Python归纳 | 爬虫基础知识

    1. urllib模块库 Urllib是python内置的HTTP请求库,urllib标准库一共包含以下子包: urllib.error 由urllib.request引发的异常类 urllib.pa ...

  5. 学python先学什么基础_python学完基础学什么

    相信一个python的初学者一定已经学完了基础的编程知识,和其他编程语言差不多,基础的数据类型.判断.循环.函数,或许你还学了面向对象.然而,当你学完这些后,或许一本python的入门书籍你已经学完了 ...

  6. python 函数进阶_Python学习入门基础:一篇文章搞定函数基础、函数进阶

    一.函数基础函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数私信小编001即可获取Python学习资料01. 函数的快速体验 1.1 快速体验 所谓函数,就是 ...

  7. python 循环赋值_Python打牢基础,从19个语法开始!

    Python简单易学,但又博大精深.许多人号称精通Python,却不会写Pythonic的代码,对很多常用包的使用也并不熟悉.学海无涯,我们先来了解一些Python中最基本的内容. Python的特点 ...

  8. python入门指标_Python量化交易基础讲堂-TA-Lib库量价指标分析

    <Python实战-构建基于股票的量化交易系统>小册子主要侧重于 Python 实战讲解,但在内容设计上提供了前置基础章节帮助读者快速掌握基础工具的使用. 同时我们会持续更新一些关于Pyt ...

  9. python入门心得_python入门零基础心得(一)

    现阶段不是三旬吐槽课程安排,作为一名金融专业的大二学生来说除了大一上学期学习一门C语言基础外,XX并没有进行深入教学,三旬只能利用课余时间深入学习程序语言以及Linux操作等等,沉淀时间实现自我增值. ...

最新文章

  1. 京东AI战略宏图展现 不枉挖来这么多AI大牛
  2. .NET开发辅助工具-ANTS Performance Profiler【转载】
  3. LeetCode First Missing Positive
  4. Lua 脚本内部执行 Redis 命令
  5. Cocoapods pod update执行失败报错CocoaPods was not able to update the `master` repo.2019的解决...
  6. 网络安全技术之端口隔离
  7. c3等待加载样式 vue_Vue.js__简易加载等待动画
  8. 【Teradata】系统吞吐量重要参数QPS(TPS)、并发数、响应时间
  9. [入门系列]什么是面向服务的体系结构(SOA)?
  10. 3D点云分割算法汇总
  11. sudo spctl --master-disable_2020推荐聊城灭火器检测--正规企业--【聊城市久安消防】...
  12. 压力测试工具 ab工具
  13. Qt三方库开发技术:Qt应用内部打开PDF文件
  14. keil5安装教程及下载
  15. gitLab 修改文件夹名称
  16. 肿瘤外显子数据分析 -- 20201119
  17. 12个最佳的免费学习编程的游戏网站
  18. 抢购软件能用Java写吗_茅台抢购脚本详细教程!!!另已将茅台抢购做成了一个软件!!!...
  19. dl4j学习参考文章
  20. 电竞新时代 华硕电竞路由新品发布品鉴会成功举办

热门文章

  1. 模拟喷泉码(入门二):Seamless Rate Adaptation for Wireless Networking
  2. 趣图:程序员到底是一群什么样的人?
  3. 文本框输入关键字提示
  4. js变量的重复声明问题总结
  5. python矩阵操作:dot、inv、det、eig
  6. 人大金仓数据库-表的定义
  7. 嵌入式系统开发的基础知识
  8. Vuze(AKA Azureus) 4.5 发布
  9. 图像识别平台建设之路(自建+三方产品)
  10. PLC流程控制类指令(JMP)编程应用