汇编语言、高级语言(系统语言)、脚本语言的异同
汇编语言、高级语言(系统语言)、脚本语言的异同
高级语言主要指需要编译的语言。如C/C++,Java,C#。脚本语言主要指解释型语言,编写的代码无需编译器编译,直接使用解释器放入虚拟机执行。
高级语言
相比汇编语言来讲,有两点不同,一为在更高的抽象等级,二为是强类型的。
- 更高的抽象等级
意味着屏蔽了许多的底层细节,主要包括寄存器内存管理、过程调用、简单的标识符,比如while、for。
平均来讲,一行高级语言的代码对应于五行汇编语言代码,汇编语言和机器指令几乎是一一对应的。实验表明,完成同样的工作,汇编语言需要的时间为高级语言的3-6倍。所以编写高级语言的效率是高于汇编语言的。
- 强类型
从以下几个方面体现:每个变量都必须声明其类型,数据和代码分离,变量可以被数据结构或者函数管理。
脚本语言
脚本语言多为无类型的,比如一个变量可能现在为字符串,下一刻又变为整型。
平均每行脚本语言代码执行成百上千条机器指令,高级语言则大约为五条。其中的原因之一是脚本语言使用了解释器,更大的原因是脚本语言的操作更加强大。
脚本语言的代码量和编程时间都少于高级语言。
不同的语言对应不同的任务
脚本语言并非要替代高级语言,他们都有适用的场景。
对于拥有复杂的数据结构和算法的程序,高级语言更容易去管理。因为高级语言不需要类型检查,运行时间比脚本语言快10-20倍。
当面对选择脚本语言还是高级语言时,考虑以下几个问题:
- 程序的主要任务是链接已有的内容吗
- 程序是否要控制大量的不同的事物
- 程序有GUI吗
- 程序需要对字符串做大量操作吗
- 程序的功能的发展是否迅速
- 程序需要可扩展吗
回答是越多越建议使用脚本语言,反之同意以下的说法则建议使用高级语言
- 程序包括复杂的数据结构和算法吗
- 程序需要管理大量的数据集吗,比如一张图片中的每一个像素;执行速度是否很重要
- 程序的功能是否已经定义好了并且很少改变
在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是脚本语言中的解释型和动态类型的先驱者。
参考:
- OUSTERHOUT J.K.. Scripting: higher level programming for the 21st Century[J]. Computer,1998,31(3):23-30.
汇编语言、高级语言(系统语言)、脚本语言的异同相关推荐
- 编程语言——标记语言——脚本语言之间的比较
首先说一下,什么是编程语言,标记语言跟脚本语言: 编程语言(programming language):是用来定义计算机程序的形式语言.它是一种被标准化的交流技巧,用来向计算机发出指令.一种计算机语言 ...
- 标记语言,脚本语言,编译语言的定义与区别
一.标记语言 标记语言,是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码.与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在 ...
- Linux系统 Shell脚本语言
Shell脚本编程 Shell 是系统的用户界面,提供用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行,实际上 Shell 是一个命令解释器,解释由用户输入的命令,并且把它们 ...
- 脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua
今天一直在研究脚本语言语言之类的问题,上午正好有机会和大家共享一下. 脚本语言:Shell , JavaScript.VBScript.Perl.PHP.Python.Ruby.Lua 工作控制语言和 ...
- 标记语言/脚本语言/
标记语言->具描述性的数据,还有层次可设计性 如:html,xml 脚本语言->实现简单的.特定环境下的应用逻辑,主要看解释引擎的功能--如javascript,perl,python 其 ...
- 计算机语言分类:机器语言、汇编语言、标记语言、脚本语言、编程语言
一.计算机语言分类: 1. 机器语言 机器语言是计算机最原始的语言,是由0和1的代码构成,cpu在工作的时候只认识机器语言,即0和1的代码. 2. 汇编语言 汇编语言,即为一种低级语言,它用人类容易记 ...
- 动态语言、静态语言、脚本语言、解释型语言、编译型语言
本人是php程序员,也做过一年java的开发,学习过c语言,会JavaScript,再回想起来,感觉语言之间的区别有点迷惑,所以整理一下. 1.动态语言 动态语言是在运行时才确定数据类型的语言.变量使 ...
- 编译性语言、解释性语言和脚本语言的区别
计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 一.翻译和解释的不同 翻译的方式有两种 ...
- Python--详解脚本语言|编译语言|胶水语言的区别
1.什么是脚本语言? 脚本语言:脚本语言是一种介于标记语言和编程语言之间的语言,没有编程语言复杂.严谨的语法和规则. 脚本语法比较简单,比较容易掌握,与编程语言也有许多相似之处,其函数与编程语言比较相 ...
最新文章
- SQL查询语句 select 详解
- java字典写实例,基于JAVA的新华字典接口调用代码实例
- flyme禁止系统更新_魅族Flyme更新8.1.2.3A:重要系统更新!
- java 1..0 openjdk_java-1.7.0-openjdk-i386和java-7-openjdk-i386有什么区别
- 倒叙输出 php,php foreach正序倒序输出示例代码
- java基础—方法重载(overload)
- Python 操作redis 常用方法
- 将redis加入到Windows服务开机启动
- still a week before on board
- 李开复清华演讲:为什么今天是人工智能的黄金时代?
- 花飞花落花飘谢,红绡香断有谁怜!
- 【解决】Android 腾讯地图 选点定位组件,获取当前位置有偏差所遇到的坑!!
- 使用云效 修改 layui 环境变量
- python实训小队项目总结
- Python软件编程等级考试三级——20210905
- 求9、99、999、......、999999999相加的和
- FEBE恢复Firefox配置方法[Z]
- 如何实现文件断点续传功能
- @NotNull, @NotEmpty和@NotBlank之间的区别是什么?
- He4Hook 使用指南
热门文章
- linux centos7 iso镜像下载,CentOS Linux 7.9 (2009) iso镜像下载
- 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(以第十次为例)
- 修改时序约束改变slack_改变我们使用Slack的方式解决了我们的透明度和筒仓问题
- SPU、SKU、ID,它们都是什么意思,三者又有什么区别和联系呢?
- UE5学习笔记(五)——地形及地表材质
- Matlab放烟花 带音效哟 祝大家新年快乐
- 百度站长工具之 流量与关键词
- Modelsim添加altera仿真库
- hive3.x异常- return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
- # cmake --version -bash: /usr/bin/cmake: Too many levels of symbolic links