一、主体不同
1.编译执行:由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序。
2.解释执行:将源语言直接作为源程序输入,解释执行,解释一句后就提交计算机执行一句,并不形成目标程序。
二、优势不同
1.编译执行:相比解释执行编译执行效率高,占用资源小,适合复杂程序。
2.解释执行:开发速度快,出现严重BUG的几率小。
三、缺点不同
1.编译执行:兼容性差,例如在windows平台上写的程序一般不可以在unix平台上运行。
2.解释执行:解释需要时间,不生成目标程序而是一句一句的执行的方式会造成计算机资源的浪费,即执行效率低。
四、编译型语言,例如C/C++,是传统的编译型语言;解释型语言,例如shell/perl,这些都是纯解释型语言。
相关文章
- 编译执行和解释执行有什么区别
- 解释执行与编译执行语言有什么区别?
- Redis --- redis事务和分布式事务锁-事务过程中失败有两种可能: Redis 命令只会因为错误的语法而失败(并且这些问题不能在入队时发现),或是命令中用在了错误类型的键上面,所以如果在生产环境中你使用的正常命令,那么在 Redis 事务中,是不会出现错误而导致回滚的。 来自文档:Redis commands can fail only if called with a wrong syntax... 事务执行一半,Redis宕机。如果 Redis 服务器因为某些原因被管理员杀死,或者遇上某种硬件故障,那么可能只有部分事务命令会被成功写入到磁盘中。如果 Redis 在重新启动时发现 AOF 文件出了这样的问题,那么它会退出,并汇报一个错误。使用redis-check-aof程序可以修复这一问题:它会移除 AOF 文件中不完整事务的信息,确保服务器可以顺利启动 注意: 若在事务队列中存在命令性错误(类似于java编译性错误),则执行EXEC命令时,所有命令都不会执行 若在事务队列中存在语法性错误(类似于java的1/0的运行时异常),则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。 Redis 官网也解释了自己为啥不支持回滚。简单来说就是 Redis 开发者们觉得没必要支持回滚,这样更简单便捷并且性能更好(回滚还需要解决回滚事务覆盖的问题)。Redis 开发者觉得即使命令执行错误也应该在开发过程中就被发现而不是生产过程中。
- Java的解释执行与编译执行
- Python程序的执行过程原理(解释型语言和编译型语言)
- Python程序的执行过程 解释型语言和编译型语言
- 编译成release版本与debug版本的程序有何执行上的区别?
- 关于Java的编译执行与解释执行