汇编语言、高级语言(系统语言)、脚本语言的异同

高级语言主要指需要编译的语言。如C/C++,Java,C#。脚本语言主要指解释型语言,编写的代码无需编译器编译,直接使用解释器放入虚拟机执行。

高级语言

相比汇编语言来讲,有两点不同,一为在更高的抽象等级,二为是强类型的。

  1. 更高的抽象等级

意味着屏蔽了许多的底层细节,主要包括寄存器内存管理、过程调用、简单的标识符,比如while、for。

平均来讲,一行高级语言的代码对应于五行汇编语言代码,汇编语言和机器指令几乎是一一对应的。实验表明,完成同样的工作,汇编语言需要的时间为高级语言的3-6倍。所以编写高级语言的效率是高于汇编语言的。

  1. 强类型

从以下几个方面体现:每个变量都必须声明其类型,数据和代码分离,变量可以被数据结构或者函数管理。

脚本语言

脚本语言多为无类型的,比如一个变量可能现在为字符串,下一刻又变为整型。

平均每行脚本语言代码执行成百上千条机器指令,高级语言则大约为五条。其中的原因之一是脚本语言使用了解释器,更大的原因是脚本语言的操作更加强大。

脚本语言的代码量和编程时间都少于高级语言。

不同的语言对应不同的任务

脚本语言并非要替代高级语言,他们都有适用的场景。

对于拥有复杂的数据结构和算法的程序,高级语言更容易去管理。因为高级语言不需要类型检查,运行时间比脚本语言快10-20倍。

当面对选择脚本语言还是高级语言时,考虑以下几个问题:

  1. 程序的主要任务是链接已有的内容吗
  2. 程序是否要控制大量的不同的事物
  3. 程序有GUI吗
  4. 程序需要对字符串做大量操作吗
  5. 程序的功能的发展是否迅速
  6. 程序需要可扩展吗

回答是越多越建议使用脚本语言,反之同意以下的说法则建议使用高级语言

  1. 程序包括复杂的数据结构和算法吗
  2. 程序需要管理大量的数据集吗,比如一张图片中的每一个像素;执行速度是否很重要
  3. 程序的功能是否已经定义好了并且很少改变

在1980年代的unix操作系统时代,sh作为脚本语言,C作为高级语言

在1990年代的个人电脑时代,C作为高级语言,Visual Basic作为脚本语言

在当今互联网时代,Java作为系统语言,javascript,TCL,Perl等作为脚本语言

GUI出现在1980年代的早期,其目的不是创造新的功能,而是为内部功能和图形操作之间搭建桥梁。

互联网的出现极大的推动了脚本语言的发展,因为互联网本身就是一个粘合的工具。它并没有创造新的东西,而只是将已有的东西连接起来,更容易访问到。对互联网而言,最理想的语言就是可以让已连接的事物共同地工作,那就是脚本语言。比如javascript在网页中非常流行。

脚本语言可以很好的粘合软件中的各部分,如果没有它,会让架构失去一些特性。

脚本语言发展迅速,TCL、Perl等比起早期的脚本语言如JCL(Job Control Language)有很大的提升,比如JCL甚至没有迭代器,早期的unix shell也不支持过程调用。

随着计算机变得更快,越来越大的程序会使用脚本语言。

随着个人电脑的普及,越来越多的业余程序员加入,他们的主要工作并不是程序员,而只是通过程序来帮助主工作的完成,脚本语言通过几个小时的学习便可以写出一些有用的程序,而系统语言则需要好几个月,所以他们会更青睐脚本语言。

LISP是脚本语言中的解释型和动态类型的先驱者。

参考:

  1. OUSTERHOUT J.K.. Scripting: higher level programming for the 21st Century[J]. Computer,1998,31(3):23-30.

汇编语言、高级语言(系统语言)、脚本语言的异同相关推荐

  1. 编程语言——标记语言——脚本语言之间的比较

    首先说一下,什么是编程语言,标记语言跟脚本语言: 编程语言(programming language):是用来定义计算机程序的形式语言.它是一种被标准化的交流技巧,用来向计算机发出指令.一种计算机语言 ...

  2. 标记语言,脚本语言,编译语言的定义与区别

    一.标记语言 标记语言,是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码.与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在 ...

  3. Linux系统 Shell脚本语言

    Shell脚本编程 Shell 是系统的用户界面,提供用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行,实际上 Shell 是一个命令解释器,解释由用户输入的命令,并且把它们 ...

  4. 脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua

    今天一直在研究脚本语言语言之类的问题,上午正好有机会和大家共享一下. 脚本语言:Shell , JavaScript.VBScript.Perl.PHP.Python.Ruby.Lua 工作控制语言和 ...

  5. 标记语言/脚本语言/

    标记语言->具描述性的数据,还有层次可设计性 如:html,xml 脚本语言->实现简单的.特定环境下的应用逻辑,主要看解释引擎的功能--如javascript,perl,python 其 ...

  6. 计算机语言分类:机器语言、汇编语言、标记语言、脚本语言、编程语言

    一.计算机语言分类: 1. 机器语言 机器语言是计算机最原始的语言,是由0和1的代码构成,cpu在工作的时候只认识机器语言,即0和1的代码. 2. 汇编语言 汇编语言,即为一种低级语言,它用人类容易记 ...

  7. 动态语言、静态语言、脚本语言、解释型语言、编译型语言

    本人是php程序员,也做过一年java的开发,学习过c语言,会JavaScript,再回想起来,感觉语言之间的区别有点迷惑,所以整理一下. 1.动态语言 动态语言是在运行时才确定数据类型的语言.变量使 ...

  8. 编译性语言、解释性语言和脚本语言的区别

    计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 一.翻译和解释的不同 翻译的方式有两种 ...

  9. Python--详解脚本语言|编译语言|胶水语言的区别

    1.什么是脚本语言? 脚本语言:脚本语言是一种介于标记语言和编程语言之间的语言,没有编程语言复杂.严谨的语法和规则. 脚本语法比较简单,比较容易掌握,与编程语言也有许多相似之处,其函数与编程语言比较相 ...

最新文章

  1. SQL查询语句 select 详解
  2. java字典写实例,基于JAVA的新华字典接口调用代码实例
  3. flyme禁止系统更新_魅族Flyme更新8.1.2.3A:重要系统更新!
  4. java 1..0 openjdk_java-1.7.0-openjdk-i386和java-7-openjdk-i386有什么区别
  5. 倒叙输出 php,php foreach正序倒序输出示例代码
  6. java基础—方法重载(overload)
  7. Python 操作redis 常用方法
  8. 将redis加入到Windows服务开机启动
  9. still a week before on board
  10. 李开复清华演讲:为什么今天是人工智能的黄金时代?
  11. 花飞花落花飘谢,红绡香断有谁怜!
  12. 【解决】Android 腾讯地图 选点定位组件,获取当前位置有偏差所遇到的坑!!
  13. 使用云效 修改 layui 环境变量
  14. python实训小队项目总结
  15. Python软件编程等级考试三级——20210905
  16. 求9、99、999、......、999999999相加的和
  17. FEBE恢复Firefox配置方法[Z]
  18. 如何实现文件断点续传功能
  19. @NotNull, @NotEmpty和@NotBlank之间的区别是什么?
  20. He4Hook 使用指南

热门文章

  1. linux centos7 iso镜像下载,CentOS Linux 7.9 (2009) iso镜像下载
  2. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(以第十次为例)
  3. 修改时序约束改变slack_改变我们使用Slack的方式解决了我们的透明度和筒仓问题
  4. SPU、SKU、ID,它们都是什么意思,三者又有什么区别和联系呢?
  5. UE5学习笔记(五)——地形及地表材质
  6. Matlab放烟花 带音效哟 祝大家新年快乐
  7. 百度站长工具之 流量与关键词
  8. Modelsim添加altera仿真库
  9. hive3.x异常- return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
  10. # cmake --version -bash: /usr/bin/cmake: Too many levels of symbolic links