首页 > 编程语言 >编程语言分类

编程语言分类

时间:2022-11-07 18:01:30浏览次数:44  
标签:语言 编程语言 代码 分类 数据类型 编译 机器语言

编程语言分类及区别

一、按历代分类

编程语言分为三大类:机器语言、汇编语言、高级语言
  • 第一代语言(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 是 动态 解释型 的 强类型定义 的 脚本 语言

标签:语言,编程语言,代码,分类,数据类型,编译,机器语言
From: https://www.cnblogs.com/tkzc2013/p/16866864.html

相关文章

  • 编程语言分类
    概念描述静态全部或者几乎全部的类型检查是在编译期进行的动态类型的检查是在运行期进行的强类型类型一旦声明就不能改变弱类型变量在运行期时可以改变......
  • html标签分类
    html标签可以分为行内元素和块元素一、行内元素可以和其他行内元素处在同一行。a、input、img、span(没有任何样式的行内元素)二、块元素自己独占一行。p、h、div(没有......
  • 在二分类问题中Sigmoid函数是否越训练梯度越小。
    背景二分类问题,最后一层的输出函数为sigmoid函数。随着训练是否会出现梯度衰减的情况。训练时模型为了降低损失函数,会尽可能提高正类的置信度降低负类的置信度。代码:f......
  • R语言使用逻辑回归Logistic、单因素方差分析anova、异常点分析和可视化分类iris鸢尾花
    摘要本文将探讨Fisher和Anderson ​​鸢尾花​​数据集中呈现的三个变量之间的关系,特别是virginica和versicolor级别的因变量变量物种对预测变量花瓣长度和花瓣宽度......
  • 添加分类累计列(Power Query)
    问题:各产品有不同批次,为每个产品按批次计算累计销量的列。let源=Excel.CurrentWorkbook(){[Name="表1"]}[Content],分组的行=Table.Group(源,{"品名"},{......
  • PTA甲级题目分类
    题目考察点A1001A+BFormat数字相加格式化输出 简单模拟A1002A+BforPolynomials多项式相加 简单模拟A1003Emergency救援最短路径和最大救援部队 Dijkstra算法A100......
  • CSS选择器分类大全
    选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用。简单来说,就是选择标签用的目录一、基础选择器二、复合选择器三、CSS3选择器补充:(一)层级选择......
  • 11个常见的分类特征的编码技术
    机器学习算法只接受数值输入,所以如果我们遇到分类特征的时候都会对分类特征进行编码,本文总结了常见的11个分类变量编码方法。1、ONEHOTENCODING最流行且常用的编码方......
  • Redis Desktop Manager连不上服务器的redis; Java 死锁; 泛型; 事务; servlet; Spring事务;
    RedisDesktopManager连不上服务器的redis1、首先有没有设置密码,输入的密码是否正确2、那个IP是内网IP嘛?外网的要加SSH总结一下无论是连MySQL、MongoDB、还是redisip如果......
  • 文件操作以及IO流原理及流的分类
    文件1、什么是文件?文件是我们保存数据的地方。2、文件流文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到......