编程语言的分类

编程语言的分类

计算机编程语言的分类

一 、按照抽象等级分类

  1. 机器语言

计算机直接识别的二进制语言,通过编写一系列的 0,1序列来控制计算机的执行。

机器语言优缺点如下:

缺点:可读性、可移植性差,编程繁杂;

优点:直接执行,速度快,资源占用少。

  1. 汇编语言

通过将相应的二进制序列编写成一系列的符号来通过使用符号来控制计算机的执行。

汇编语言优缺点如下:

优点:能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源,目标代码简短,占用内存少,执行速度快。

缺点:不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性,难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试,使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。

  1. 高级语言

通过将相应的符号指令封装,构成易于学习且易于掌握的语言。

高级语言的优缺点如下:

优点:高级语言接近算法语言,易学、易掌握,高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;高级语言远离机器语言,与具体的计算机硬件关系不大,可移植性好,重用率高;由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。

缺点:运行速度基本上比直接用汇编写的慢,速度和程序大小与编译软件有关。

二、按程序执行方式分类

  1. 解释型语言

对于解释型来说,需要通过解释器来将代码解释成机器码,可以跨平台通信。

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

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

  1. 编译型语言

对于编程性语言来说,需要通过编译器来结合操作系统将代码翻译成相应的机器码。一次编译,到处运行,但是跨平台性差。

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

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

代表语言:C、C++、Pascal、Object-C、swift等。

  1. 混合型语言

结合了解释型语言和编译型语言的优缺点,将代码翻译成中间码,只要安装了相应的运行系统,就能够运行此代码。

三、按照程序设计方式分类

  1. 面向过程的语言

面向过程的语言是以过程和函数为基础的。通过分析问题的解决步骤,从而通过一步步的步骤来编写对应的函数来解决。

例如:五子棋的编写

面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

  1. 面向对象的语言

面向对象的语言,把问题分为各个对象,通过构造各个对象来解决相应的问题。

例如:五子棋的编写

如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值