编译型语言与解释型语言

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。

  1. 编译型语言

如果把程序的执行比喻成考试,那么编译型语言类似于一个已经提前知道试题答案的人,一口气将试卷全部写完。程序执行前将我们所编写的代码(即高级语言)转化为机器所能理解的语言(机器语言),比如windows下的exe文件。以后就可以直接运行而不需要编译了。

特点:

  1. 编译型语言最大的优势之一就是其执行速度。用C/C++编写的程序运行速度要比用Java编写的相同程序快30%-70%。,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。
  2. 编译型程序比解释型程序消耗的内存更少。
  3. 由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它。
  4. 编译型程序不支持代码中实现安全性——例如,一个编译型的程序可以访问内存的任何区域,并且可以对你的PC做它想做的任何事情(大部分病毒是使用编译型语言编写的由于松散的安全性和平台依赖性,编译型语言不太适合开发因特网或者基于Web的应用。
  5. 编译型语言不容易发现错误在哪,你也许要花几小时才能发现错误的具体位置
  1. 解释型语言

解释型语言则是一个小白,只能看一题做一题。只有在程序运行时,才会将高级语言转化为机器语言,并且是一句一句翻译。这样解释型语言每执行一次就要翻译一次。

特点:

  1. 平台独立性,以及严密的安全性是使解释型语言成为适合互联网和Web应用的理想语言的2个最重要的因素。
  2. 解释性语言更容易发现错误。例如:由于Java运行环境不仅指明了异常的性质,而且给出了异常发生位置具体的行号和函数调用顺序,因此一名Java程序员只需要几分钟就可以定位并修复一个“空指针异常”。

 

  1. 动态类型语言

动态类型语言在编译时不需要刻意去为某个变量定义它的类型数据,它会在你第一次给变量赋值的时候将数据类型记录下来。它只有才运行时才会去检查数据类型。如python

特点:可以简便代码,但变量过多会难以理解,

  1. 静态类型语言

静态类型语言需要在编译时注意变量的数据类型,在写程序时要声明所有变量的数据类型,它的数据类型是在编译期间检查的。如C/C++。

特点:结构规范,便于调试,方便类型安全

 

  1. 强类型语言

强制数据类型定义的语言。当一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

  1. 弱类型语言

弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

 

静态类型语言和动态类型语言的区别_DDB-CSDN博客

https://blog.csdn.net/qq_39226755/article/details/88600694?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160060163819195188313387%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160060163819195188313387&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-1-88600694.pc_first_rank_v2_rank_v28&utm_term=%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E8%AF%AD%E8%A8%80%E4%B8%8E%E9%9D%99%E6%80%81%E7%B1%BB%E5%9E%8B%E8%AF%AD%E8%A8%80&spm=1018.2118.3001.4187

编译型语言和解释型语言之间的区别及特点_weixin_44022374的博客-CSDN博客

https://blog.csdn.net/weixin_44022374/article/details/102637241?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160060227719725250331698%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160060227719725250331698&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-1-102637241.pc_first_rank_v2_rank_v28&utm_term=%E7%BC%96%E8%AF%91%E5%9E%8B%E8%AF%AD%E8%A8%80%E5%92%8C%E8%A7%A3%E9%87%8A%E5%9E%8B%E8%AF%AD%E8%A8%80%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2118.3001.4187

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值