本人是php程序员,也做过一年java的开发,学习过c语言,会JavaScript,再回想起来,感觉语言之间的区别有点迷惑,所以整理一下。

1.动态语言

动态语言是在运行时才确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。 例如PHP、ASP、Python、SQL、JavaScript、Unix Shell等等。

动态语言的优势:思维不受束缚,可以任意发挥,把更多的精力放在产品本身上。

2.静态语言

静态语言是在编译时变量的数据类型就可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C、C++、Golang、Java、C#等。

静态语言优势:由于类型的强制声明,使得IDE有很强的代码感知能力,所以在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中,依托IDE对系统的开发很有保障;由于静态语言相对比较封闭,使得第三方开发包对代码的侵害性可以降到最低。

3.解释型语言

我们都知道能让机器识别的是机器语言,也就是01这样的二进制代码,高级语言机器是不能识别的。解释型语言是不需要在运行前进行编译成机器语言,而是程序在运行时先翻译成中间代码,再由解释器对中间代码进行解释运行。这样解释型语言每执行一次就要翻译一次,效率比较低。

常见的解释型语言包括:Java、C#、PHP、JavaScript、Python、VBScript、Perl、Ruby、MATLAB等。

解释型语言的优点

①解释型语言提供了极佳的调试支持。

②解释器比编译器容易实现。

③中间语言代码的大小比编译型可执行代码小很多。例如,C/C++的.exe文件要比同样功能的Java的.class文件大很多。

④可移植性好,只要有解释环境,可以在不同的操作系统上运行。比如在解释执行时可以动态改变变量的类型、对程序进行修改以及在程序中插入良好的调试诊断信息等,而将解释器移植到不同的系统上,则程序不用改动就可以在移植了解释器系统上运行。

⑤解释型语言也可以保证高度的安全性——这是互联网应用迫切需要的。

解释型语言的缺点

①运行需要解释环境,程序严重依赖平台。

②运行起来比编译的要慢,占用的资源也要多一些,代码效率低。因为不仅要给用户程序分配空间,解释器本身也占用了宝贵的系统资源。

③由于解释型应用的decode-fetch-execute(解码-抓取-执行)的周期,它们比编译型程序慢很多。

4.编译型语言

运行编译型语言是相对于解释型语言存在的,编译型语言首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。

常见的编译型语言有:C、C++等。

编译型语言的优点:运行速度快,代码效率高,编译后程序不可以修改,保密性好。

编译型语言的缺点

①代码需要经过编译方可运行,可移植性差,只能在兼容的操作系统上运行。

②安全性不如解释性语言,一个编译型的程序可以访问内存的任何区域,并且可以对你的PC做它想做的任何事情(大部分病毒是使用编译型语言编写的)。

5.脚本语言

脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本保存,只在被调用时进行解释或编译。

脚本语言有:PHP、Python、JavaScript、Lua、Scala、VBScript,ActionScript,MAXScript,ASP,JSP,SQL,Perl,Shell,Ruby,JavaFX,AutoIt等

脚本语言是一种解释性的语言,它不象c/c++等可以编译成二进制代码,以可执行文件的形式存在,脚本语言不需要编译,可以直接用,由解释器来负责解释。

参考资料:

http://baijiahao.baidu.com/s?id=1581982663991093225&wfr=spider&for=pc

https://baike.baidu.com/item/%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80/1379708

https://blog.csdn.net/u014647208/article/details/78329187

https://blog.csdn.net/GIRLDWH0715/article/details/70228553

动态语言、静态语言、脚本语言、解释型语言、编译型语言相关推荐

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

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

  2. 脚本语言与非脚本语言

    脚本语言(Script languages)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言,脚本语言是编程语言的子集. 一个脚本通常是解 ...

  3. 游戏c#脚本语言,C#作为脚本语言执行解密

    背景 我们知道Unity3d是通过C#脚本语言的形式来实现游戏的逻辑代码编写,同样SCOTT服务器也设置了通过C#脚本来实现游戏逻辑,但是本文并不是想真正分析解密他们的运行机制,只是想通过自己的一个需 ...

  4. 服务器端脚本语言和客户端脚本语言

    转自网易--Jenna (一)常见的服务器端脚本语言,php,jsp,asp. 像我们普通浏览网页基于一种BS模式,其实它也只是一种统一于Browser(浏览器)的CS模式.我们的浏览器作为客户端,在 ...

  5. linux下c 编译脚本,Linux下编译C语言与makefile脚本语言

    GCC 1.Source CRT 软件:可以控制linux的终端. 2.FileZilla 软件: windows 远程传文件到linux. 使用sourceinsight 文本编辑器 一linux编 ...

  6. c调用lua脚本语言入门,Lua脚本语言入门及魔兽争霸中的Lua函数调用

    在这篇文章中,我想向大家介绍如何进行Lua程序设计及魔兽争霸中的Lua函数调用.我假设大家都学过至少一门编程语言,比如Basic或C,特别是C.因为Lua的***用途是在宿主程序中作为脚本使用的. L ...

  7. JavaScript——基于原型编程、多范式的动态脚本语言

    目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2.1 ...

  8. 静态语言和脚本语言的区别

    在计算机编程语言中,可以将编程语言分为静态语言和脚本语言两类,这两类编程语言最主要的区别是执行方式的不同.想要区分静态语言和脚本语言的区别,首先需要区分编译和解释. 编译和解释 编译是指将源代码一次性 ...

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

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

  10. 揭秘!用标准Go语言能写脚本吗?

    导语 | Go作为一种编译型语言,经常用于实现后台服务的开发.由于Go初始的开发大佬都是C的老牌使用者,因此Go中保留了不少C的编程习惯和思想,这对C/C++ 和PHP开发者来说非常有吸引力.作为编译 ...

最新文章

  1. java 读出数字声音_【求助】已经计算出的数字结果,想用声音播放出来。怎么弄!!!...
  2. airtest web 录制滑块_Airtest 录屏总结,这不是一个简单的 recording!
  3. BSCI—9:配置OSPF认证
  4. mysql db python_python下的MySQLdb使用
  5. Qt configure 参数不完全说明
  6. 在查询语句中使用 NOLOCK 和 READPAST
  7. C mysql批量写入_使用JDBC在MySQL数据库中快速批量插入数据
  8. Centos7安装部署Zabbix3.4
  9. java peer_Java PeerConnection.getStats方法代码示例
  10. opencv源码查看
  11. 重新复习数据结构-------ArrayList
  12. python爬虫之数据提取Xpath(爬取起点中文网案例)
  13. sqliteman安装时出现The following packages have unmet dependencies: libqtgui4 : Depends: libpng12-0错误
  14. 模型转换:pth转onnx
  15. glassfish java环境_CentOS安装JDK和安装Glassfish
  16. Self-paced and auto-weighted multi-view clustering 阅读笔记
  17. 第7章第26节:三图排版:三张图片并列排版 [PowerPoint精美幻灯片实战教程]
  18. js判断两个时间是否超过一年
  19. Spring Boot多模块项目打包
  20. Golang的高并发

热门文章

  1. 互联网日报 | 6月6日 星期日 | 教育部发布高考防骗预警;数字人民币红包登陆上海;万亿资管机构招商基金更换“掌门人”...
  2. 那些触动人心的产品细节
  3. mongoDB centos安装与客户端
  4. 开源 API 管理工具 v 1.6.0 发布:切换 tab 不再担心数据丢失
  5. Emscripten简介及初体验
  6. SAP无序列号与批次管理的库龄计算
  7. Java实现以太坊空投工具
  8. java数组查找指定元素_Java 实例 - 在数组中查找指定元素
  9. 基于STM32的MC20模块GPRS+GPS的C语言驱动程序
  10. execjs回调python_python-execjs(调用js)