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

编译型语言

很多传统的程序设计语言,例如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. 在web.xml文件中配置Servlet时,主要配置哪些信息?
  2. 导致大量kworker的原因_头上白发越长越多,原因有哪些?
  3. Android OpenGL射线拾取手势旋转(二)
  4. 每天2亿美元投入AI领域,1/10砸向自动驾驶,中国AI论文首超全欧洲 | 斯坦福全球AI年度报告...
  5. 【Java】Servlet 工作原理解析
  6. 从无到有算法养成篇-算法基础常识
  7. 又一个jquery+flash上传插件
  8. 牛客 - lglg说要有题,于是便有了题。(欧拉线性筛+打表+思维)
  9. OCFS2在Linux下配置文档
  10. 数据结构-王道-线性表
  11. mac Sourcetree 账号密码输入错误后, 重新输入的方法
  12. 智慧消防:如何利用智能化手段,精准防控消防风险?
  13. 数据时代建设医疗数据,主要有哪些意义?
  14. 【Shawn-Git】gitlub的使用指导(针对六届软件杯)
  15. English总结(二)--英语常用单词
  16. 关于Hexo写博客时的图片插入问题(OSS对象存储+PicGo搭建图床)
  17. html中加大字体,html字体加大标签与写法介绍
  18. java中的返回值到底有什么用?
  19. 微信小程序之js模块化
  20. njupt Keroro侵略地球

热门文章

  1. 企业微服务:实现crud操作之创建实体类
  2. ES6新特性之函数优化-参数默认值
  3. 解决2次查询User的问题(ThreadLocal)
  4. 单例设计模式-ThreadLocal线程单例
  5. SpringBoot 项目打包部署
  6. 每天一个Linux命令之ps-查看系统进程信息
  7. ASA对FTP的审查抓包测试
  8. 中国移动2016年Web应用防火墙集采:绿盟、深信服中标
  9. nginx $document_uri 参数使用
  10. SCons: A software construction tool