编程语言分类及区别

编程语言分类及区别

一、按历代分类
编程语言分为三大类:机器语言、汇编语言、高级语言
  • 第一代语言(1GL):机器语言 特征:面向机器的指令,机器可以直接执行。
  • 第二代语言(2GL):汇编语言 特征:使用助记符代替机器指令。
  • 第三代语言(3GL):高级语言 特征:是设计更容易被人们所理解的程序语言,告诉计算机执行什么任务和执行任务的步骤,是过程化的,最重要的作用是此时已经脱离了机器硬件系统,具有代码可移植性
  • 第四代语言(4GL):应用语言 特征:只需要告诉计算机要执行什么任务,而不需要指定执行步骤,是非过程化的,最典型的代表就是数据库语言SQL

注意:

1、机器语言
  计算机能识别的唯一语言,机器语言是用二进制代码(由0和1组成,每个0/1与高低电频对应)表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
2、汇编语言
  为了解决机器语言难以记忆、阅读、修改等问题,汇编语言对机器语言的指令用字符代替,通过汇编编译器可以把汇编代码编译成机器语言指令。
  汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
3、高级语言
  为了使代码更通用,具有不同硬件平台的可移植性,更加方便人类理解和使用。可以通过高级语言对应的编译器把代码编译成汇编语言(一般不会直接把高级语言编译成机器语言,因为机器有汇编编译器可以把汇编代码转换成机器代码,并且汇编代码更易调试和优化)。
  高级语言是一种指令集的体系,在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。
代表:java,c,c++,C#等
4、应用语言
   这种是高度封装型语言,大多数情况下,是一些应用级软件自定义的使用规则/语法标准,例如:数据库编程语言,如各种数据库的SQL语言,使用者只需要传输SQL语句给数据库服务器,数据库服务器内部负责解析执行。
代表:SQL
二、按编译及运行方式分类
编译型和解释型
一、编译型
  编译型语言是将代码一次性全部编译成二进制码,然后运行。
代表语言:C/C++/go
二、解释型
  解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。(编译  	一行,运行一行)
  代表语言:Java、Python、Perl、JavaScript、VBScript

注意

编译型和解释型的定义是对立存在的,但也可以在一个语言中同时存在。比如 java 语言同时兼有编译型和解释型特点。整个流程如下:
  将源代码(.java 文件)编译生成字节码(.class 文件),再通过 JVM(java 虚拟机)运行生成机器指令,由机器运行机器码。注意,此处生成机器语言前的操作是解释型,每次运行都要重新解释。因此,此处表明 java 是解释型。
  但是,部分 JVM(java 虚拟机)有一种 JIT(Just in time)机制,能够将部分已经解释翻译的常用机器指令保存。下次不需要解释,直接运行即可。此时 java 是编译型。

编译性语言不如解释性语言跨平台性好
  编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新编译。(如windows编译成ext文件,linux编译成erp文件)。
三、按数据类型的确认时间段分类
动态语言和静态语言
  • 一、动态类型语言

    • 动态类型语言,是指在代码运行阶段对数据类型进行确认。用动态类型语言编程时,不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部记录数据类型。
    • 动态类型语言的优点是不需要写多种数据类型的代码,代码相对简洁一些,方便代码阅读。缺点是不方便调试,代码命名也容易混淆;
        代表:JavaScript、Python、Perfl
  • 二、静态类型语言

    • 静态类型语言,是指在代码编译阶段对数据类型进行确认
    • 静态类型语言的优点是方便调试,代码相对规范。缺点是需要写很多数据类型相关的代码,代码不够简洁。
        代表:Java、C/C++
四、编程语言、脚本语言、标记语言
  • 一、编程语言

    • 是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动
    • 代表语言:C/C++,Java,Perl等
  • 二、脚本语言

    • 是为了缩短编程语言的“编写、编译、链接、运行”等过程而创建的计算机编程语言。是一种用来解释某些东西的语言,又被称为扩建的语言,或者动态语言,用来控制软件应用程序,脚本通常以文本保存,只在被调用时进行解释或编译。
    • 代表语言:php,js,asp,Python,ruby等
  • 三、标记语言

    • 是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标识。标记语言不仅仅是一种语言,就像许多语言一样,它需要一个运行时环境,使其有用。
    • 代表语言:xml, html, xhtml ( xml 和 html 的合体 )等,(可以看出它们都是以 "ml"尾的)
五、按照数据类型的定义方式分类
  • 一、强类型语言

      强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了,强类型语言包括Java、.net 、Python、C++等语言。
    
      举个例子:定义了一个整数,如果不进行强制的类型转换,则不可以将该整数转化为字符串。
    
  • 二、弱类型语言

      弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括vb 、PHP、javascript等语言。
    

综上所述,Python 是 动态 解释型强类型定义脚本 语言

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 开放源代码的必要性 在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在巨大的智利浪费,大家把大量的精力用在编写别人已经实现的程序代码上。看看,文本编辑器有多少,看看ftp程序有多少,看看字处理程序有多少,这些程序虽然有差别,但主要的功能都是一样的。要实现个性化的功能,在已有的软件基础上修改会节省多少时间呀!而每个程序各编一套,又浪费多少时间?如果,没有这些重复的工作量,世界上的程序员至少可以节省80%的工作量。同时,开放源代码也方便了大家的交流,阅读源代码应该是最直接最有效的学习途径,尤其是比较专业的领域。 要开放源代码,下面几点比较重要: * 语言要流行。 * 语言的函数和类库统一。 * 语言的语法和编译器要统一。 * 编译器是否开放源代码。 * API是否开放源代码。 语言的可重用性、功能、友好性。 * 语言统一:如果大家都用一种编程语言,都用同样的函数,同样的类库,那么,大家的共同语言就会很多。大家只要学会一种语言,一套函数,一套类库,就可以相互读懂源代码,这样,学习量是最少的;但是语言统一根本是不可能的事,因为各种语言都有其特色,如果取了其中一个优点,通常就会牺牲另一个优点。可是学习新的API浪费程序员大量的时间和精力,尤其是当这个API有大量和其他API重复的功能的时候。 要增加代码的可重用性,要从下面几点着手: * 代码的可读性。如格式、是否接近英语语法和单词。 * 代码的表达能力,也就是简单性,能用最少的语句和单词实现同样的功能。 * 代码的结构性,如函数、模块、类。 语言功能的强大从下面几点来说: * 是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都有强大的库支持。 * 语法功能是否强大,比如是否有出错处理。是否有指针。 语言的友好性: * 语言包的大小,语言包越小,学习越简单。 * 语言是否有友好的编辑调试环境。 * 语言的可视化和集成编程环境。 2. 简介各种程序语言 注︰在程序语言前划有☆号者,表示它有重大影响,但不代表它优良。
### 回答1: STL(Standard Template Library)是C++的一部分,它是一个非常强大的编程库,提供了一系列的模板类和函数,用于处理常见的数据结构和算法。由于其强大的功能和易使用性,STL在C++程序员中广泛应用。 STL编程语言的中文版手册是一个详细介绍STL库的书籍或文档。它包含了关于STL库中各个类和函数的详细说明,指导程序员如何使用它们来解决实际问题。 该手册通常会分为多个章节,每一章节都会介绍一个或多个相关的主题。比如,其中可能包括向量(vector)、链表(list)、映射(map)等数据结构的用法,以及排序、查找、搜索等算法的实现。 在手册中,每个主题通常会给出类或函数的基本概念、语法和用法示例。它还会提供一些使用STL库的最佳实践和常见问题的解答。通过学习这个手册,程序员可以更好地理解和应用STL库,提高自己的编程能力。 STL编程语言的中文版手册对于那些希望学习STL库或提高自己对C++编程的理解的人来说是非常有用的资源。通过阅读该手册,程序员可以快速掌握STL库的使用,提高自己的编程效率和代码质量。同时,也可以更好地理解和应用C++的泛型编程思想。 ### 回答2: STL(标准模板库)是一种用于C++的编程语言库,它提供了丰富的数据结构和算法容器,用于简化和优化代码开发。虽然STL是用英文编写的,但也有许多中文版的手册供开发者参考。 STL的中文版手册通常包含以下内容: 1. 库的简介:介绍STL的基本概念、设计哲学和使用方法,以及为何STL在C++开发中如此重要。 2. 容器类:包括向量(vector)、列表(list)、双端队列(deque)和集合类等。手册会详细介绍每种容器的特性、使用方法以及常见操作的时间复杂度。 3. 迭代器:迭代器是访问STL容器元素的一种方式,不同类型的容器会提供不同类型的迭代器。手册会解释迭代器的分类和使用方法,帮助开发者正确地遍历和操作容器中的元素。 4. 算法:STL提供了众多的算法,用于处理容器中的元素,如查找、排序、合并等。手册会列举并解释这些算法的使用方法和一些示例。 5. 附录:一些额外的信息,如STL函数对象、STL异常处理和一些常用技巧等。 中文版的STL手册可以帮助不太熟悉英文的开发者更好地理解和使用STL库。但需要注意的是,由于STL在国外发展得更早,一些最新的特性可能没有完全翻译成中文,所以开发者也需要查阅英文版手册来获取最新的信息。 总之,STL编程语言的中文版手册是一种非常有用的资源,它能帮助开发者更好地理解和应用STL库,提高代码的效率和可读性。 ### 回答3: STL(Standard Template Library)是C++标准库中的一部分,提供了丰富的数据结构和算法模板,可以帮助我们高效地进行编程。然而,STL本身并没有官方的中文版手册。 不过,我们可以在互联网上找到很多非官方的STL中文版手册,这些手册通常由爱好者或者专业人士根据官方文档翻译而成。这些手册可以帮助我们更好地理解STL的使用方法和相关的数据结构与算法。 STL中文版手册一般会包括STL库的整体介绍、各个容器(如vector、list、set、map等)的用法,以及算法模板(如排序、查找、变换等)的使用示例。手册中通常也会包括一些注意事项和使用技巧,帮助我们更好地理解和运用STL库。 当然,由于STL库非常庞大和复杂,一本中文版手册很难覆盖到所有的内容。因此,在实际编程过程中,我们可能还需要结合官方英文文档、在线教程和其他参考资料,来更深入地学习和掌握STL的使用。 总结起来,尽管STL的官方文档没有中文版手册,但是我们可以通过网上的非官方中文版手册,来学习和了解STL编程语言的使用方法和相关注意事项。这些手册可以作为我们学习STL的参考资料,帮助我们更好地应用STL库进行编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值