计算机编程语言分类与区别
文章目录
- 按历代分类
- 机器语言
- 汇编语言
- 高级语言
- 应用语言
- 编译型和解释型
- 编译型
- 解释型
- 编译性语言不如解释性语言跨平台性好
- 动态语言和静态语言
- 动态语言
- 静态语言
- 编程语言、脚本语言、标记语言
- 编程语言
- 脚本语言
- 标记语言
按历代分类
编程语言分为三大类:机器语言、汇编语言、高级语言
- 第一代语言(1GL):机器语言 特征:面向机器的指令,机器可以直接执行。
- 第二代语言(2GL):汇编语言 特征:使用助记符代替机器指令。
- 第三代语言(3GL):高级语言 特征:是设计更容易被人们所理解的程序语言告诉计算机执行什么任务和执行任务的步骤,是过程化的,最重要的作用是此时已经脱离了机器硬件系统,具有代码可移植性。
- 第四代语言(4GL):应用语言 特征:只需要告诉计算机要执行什么任务,而不需要指定执行步骤,是非过程化的,最典型的代表就是数据库语言SQL。
机器语言
计算机能识别的唯一语言,机器语言是用二进制代码(由0和1组成,每个0/1与高低电平对应)表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
汇编语言
为了解决机器语言难以记忆、阅读、修改等问题,汇编语言对机器语言的指令用字符代替,通过汇编编译器可以把汇编代码编译成机器语言指令。
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
高级语言
为了使代码更通用,具有不同硬件平台的可移植性,更加方便人类理解和使用。可以通过高级语言对应的编译器把代码编译成汇编语言(一般不会直接把高级语言编译成机器语言,因为机器有汇编编译器可以把汇编代码转换成机器代码,并且汇编代码更易调试和优化)。
高级语言是一种指令集的体系,在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。
代表:java,c,c++,C#等
应用语言
这种是高度封装型语言,大多数情况下,是一些应用级软件自定义的使用规则/语法标准,例如:数据库编程语言,如各种数据库的SQL语言,使用者只需要传输SQL语句给数据库服务器,数据库服务器内部负责解析执行。
代表:SQL
编译型和解释型
编译型
编译型语言首先是将源代码编译生成机器指令,再由机器运行机器码 (二进制)。
代表语言:C/C++
解释型
解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。
代表语言: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"尾的)
计算机编程语言分类与区别相关推荐
- 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别
原文传送门:http://blog.csdn.net/liuchuo/article/details/52014764 计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言 ...
- 计算机编程语言python-PYTHON之计算机语言基础知识 —— 编程语言的分类
一.计算机语言分类 低级语言.高级语言.专用语言.脚本语言 1.低级语言:机器语言.汇编语言和符号语言.机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令(机器码)的合集,他是计算机的设 ...
- 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的关系
计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言) 高级语言(按转换方式可分为两类:1.编译型语言; 2.解释型语言 || 按照客观系统的描述可分为两类:1.面 ...
- Python基础——计算机组成原理、操作系统概述、编程语言的由来、编程语言分类、python介绍、 安装Cpython解释器、 第一个python程序
文章目录 一 引子: 1.1 什么是语言?什么是编程语言?为何要有编程语言? 1.2 什么是编程?为什么要编程? 二 计算机组成原理 2.1.什么是计算机? 2.2.为什么要用计算机? 2.3.计算机 ...
- 目视判读和计算机分类的区别,遥感图像解译原理
原标题:遥感图像解译原理 1.遥感图像目视解译原理 遥感图像解译(ImageryInterpretation):是从遥感图像上获取目标地物信息的过程: 目视解译: 计算机解译:即遥感图像理解(Remo ...
- 编程语言分类及python所属类型
编程语言分类及python所属类型 编程语言分类及python所属类型 编程语言主要从以下几个角度为进行分类:编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 编译和解释的区别是什 ...
- 计算机编程语言(1)
计算机编程语言(1) 分类: 计算机语言 2009-11-22 13:58 1399人阅读 评论(0) 收藏 举报 Go语言 摘要: Go语言是谷歌2009发布的第二款开源编程语言.Go语言专门针对多 ...
- 计算机编程输入与输出,计算机编程语言的发展与输入输出设备的使用
计算机编程语言的发展与输入输出设备的使用 辽宁大学学报 自然科学版第32卷 第2期 2005年 JOURNALOFLIAONINGUNIVERSITY NaturalSciencesEdition V ...
- 语言翻译成汇编语言_编程语言分类
编程语言分类 一.机器语言 只要是谈到计算机基础,有一个东西是我们无法避免的,那就是编程到底是什么?我只放图,其他的你们自己YY. 现在来想象这样一个场景,如果奴隶来自不同的国家,作为尊贵而又穷逼买不 ...
- 计算机语言怎么学,教你如何学习计算机编程语言
读书使人明智,学习使人进步.任何技术知识的学习,只要长期的坚持都能够获得收获,我们熟知的的一万小时定律就是如此,只要付出精力时间才会有收获,区别在于不同的人收获多少不同而已. 01.选择一门编程语言, ...
最新文章
- 如何在Docker容器中挂载主机目录
- 使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法
- VMware Workstation 14 激活码
- mysql打开的文件描述符限制_linux fopen个数限制的问题(文件描述符限制)
- java动态代理二cglib
- 线性代数与电路学、信号与系统的关系、微分方程--学习笔记
- arm架构linux进程调试,gdb-multiarch + gdbserver调试linux arm应用程序
- javascript服务端编程
- 牛学长苹果数据管理工具
- 华为ax3怎么接光纤sc接口_华为AX3 pro获取原来路由器宽带账号和密码的操作步骤...
- C++对数计算log
- 程序员的第一款 Hello World
- EMC、Pure和NetApp推新品,NAS闪存场景在哪里
- js验证固定电话(座机)、手机号码
- kubernetes 从入门到实践
- 二叉树学习笔记(未完待续)
- 【路径规划】基于头脑风暴优化算法求解带时间窗和同时取送货的车辆路径问题附matlab代码
- 【牛客】快手2020校园招聘秋招笔试--算法A试卷
- 股票、指数、快照、逐笔... 不同行情数据源的实时关联分析应用
- 初来乍到,简单谈谈我对编程的认识
热门文章
- 若变量已正确定义并赋值,不符合c语言语法的表达式是____.,若变量已正确定义并赋值,表达式______不符合C语言语法.A、a*b/c; B、3.14%2 C、2,b D、a/b/...
- python粘贴代码到word_python怎么粘贴代码
- mysql 游标创建_Mysql 游标创建
- Anaconda各版本对应的python版本
- 学习TP5(一):TP5框架下载与快速入门使用
- java编程找异数,异类Outliers_又名异数Malcolm_Gladwell.pdf
- 计算机网络连接图标 红叉,Win10网络图标显示红叉叉 检测不到网卡驱动解决方案...
- sap期初导资产代码_SAP S/4固定资产导入期初科目设置
- Windows操作系统的发展历程
- 在linux下搭建tftp服务器,嵌入式linux常用服务配置之tftp服务器配置