大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。

编译型语言

很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。

运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(object code)非常接近计算机底层,因此执行效率很高,这是编译型语言的优点。

但是,由于编译型语言多半运作于底层,所处理的是字节、整数、浮点数或是其他机器层级的对象,往往实现一个简单的功能需要大量复杂的代码。例如,在C++里,就很难进行“将一个目录里所有的文件复制到另一个目录中”之类的简单操作。

解释型语言

解释型语言也被称作“脚本语言”。执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降。

使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象;缺点是它们的效率通常不如编译型语言。不过权衡之下,通常使用脚本编程还是值得的:花一个小时写成的简单脚本,同样的功能用C或C++来编写实现,可能需要两天,而且一般来说,脚本执行的速度已经够快了,快到足以让人忽略它性能上的问题。脚本编程语言的例子有awk、Perl、Python、Ruby与Shell。

Shell脚本语言与编译型语言的差异相关推荐

  1. Shell脚本语言笔记

    Shell脚本语言笔记 一.shell是什么? 二.Shell 是一种脚本语言 1.定义变量 2.单引号和双引号的区别: 3.将命令的结果赋值给变量,常见的有以下两种方式: 4.只读变量 5.删除变量 ...

  2. SHELL/SSH基础知识(入门篇)-包含 shell 脚本语言的基本用法、 shell 脚本语言的基本用法、流程控制、函数 function、其它脚本相关工具、数组 array(欢迎留言交流)

    目录 1 shell 脚本语言的基本用法 1.1 shell 脚本注释规范 1.1.1 shell 脚本注释规范 1.1.2 执行(5种) 1.1.3 在远程主机运行本地脚本 1.1.4 检查shel ...

  3. linux命令和shell语言的区别,shell脚本语言与linux命令的联系与区别

    使用linux确定是要会使用命令的,就算提供有用户界面,绝大部分功能仍是要经过命令行去操做的.而shell脚本语言也是运行在linux上的脚本语言,对于服务器运维人员也是几乎必需要掌握的.而shell ...

  4. linux脚本语言求累加和,Linux Shell脚本语言与数学表达式

    当你理解了Shell脚本,每当需要时都能流畅编写时,那种感觉很爽的.本章中,我们将教你用脚本语言进行比较复杂的数学运算. 让我们从斐波那契数列开始吧. 斐波那契数列,又称黄金分割数列,指的是这样一个数 ...

  5. linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?

    当我们学习Linux技术的时候,会涉及各种各样的知识和内容,比如说shell脚本语言,我想很多人都会疑惑shell脚本语言有什么优势?为何学习Linux的时候必须学习呢?我们来看看吧. 当命令和程序语 ...

  6. 在linux中写php语言吗,将PHP作为Shell脚本语言使用

    我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短--).但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有P ...

  7. 将PHP作为Shell脚本语言使用

    我们都知道.PHP是一种非常好的动态网页开发语言(速度飞快.开发周期短--).可是仅仅有非常少数的人意识到PHP也能够非常好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并 ...

  8. linux命令行开头是sh,shell脚本语言的使用(超全超详细)

    1.shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又 ...

  9. shell脚本语言(超全超详细)

    shell脚本语言 1.shell的概述 2.脚本的调用形式 打开终端时系统自动调用:/etc/profile 或 ~/.bashrc 3.shell语法初识 3.1.定义以开头:#!/bin/bas ...

最新文章

  1. 并发编程之Synchronized
  2. 对c++primer 16.6.1的第4小节的代码说明
  3. input输入数字验证
  4. MyBatis框架学习笔记03:利用MyBatis实现关联查询
  5. 全国省份、城市、地区全数据(SQL版与XML版)包括各城市邮编
  6. iOS下微信语音播放之切换听筒和扬声器的方法解决方案
  7. 计算机装机 基础知识,电脑diy硬件基础知识 菜鸟装机必看! (全文)
  8. ae渲染出现错误是什么问题_AE 渲染输出 “H264”时出现这个错误是什么意思?...
  9. Java——聊聊JUC中的线程中断机制 LockSupport
  10. 关于BandiZip的bug,linux解压下不友好情况
  11. 如何给一小段视频添加音乐
  12. 原创 | DDD领域驱动设计第一话
  13. Phalanx 动态规划
  14. LTO助推磁带大容量存储技术超越磁盘HDD
  15. java list转json报错_一个fastjson转换JSON字符串的报错排查
  16. Linux创建自启动服务
  17. VC的IP控件的用法
  18. ZT:幽兰操(韩愈)
  19. 通过Feign调用接口,返回数据时出现数据乱码
  20. Winform中DataGridView中添加数据并且拖动整行

热门文章

  1. Log4j的自定义logger
  2. thymeleaf语法介绍
  3. Response_案例1_路径_绝对路径
  4. 树莓派3 mysql端口_树莓派3 之 安装Mysql服务
  5. SpringCloud学习笔记:服务注册与发现Eureka(2)
  6. 单多晶之争:光伏技术要靠市场检验
  7. 基于接缝裁剪的图像压缩 算法导论
  8. 深入分析 Java 方法反射的实现原理
  9. redis维护问题总结
  10. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月30日-8月5日)