博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译原理:引论
阅读量:4979 次
发布时间:2019-06-12

本文共 531 字,大约阅读时间需要 1 分钟。

阅读的教材为:编译原理(张素琴等编著,清华大学出版社)

编译过程就是将高级语言翻译为低级语言

编译过程分为前段(front end)和后端(back end)

阅读过程中遇到的疑问是:解释程序和编译程序的区别?

1、编译程序直接生成目标代码,解释程序在运行时才将中间代码编译成目标代码。故执行效率低

2、编译过程生成的目标代码,逆翻译难度非常大,基本不可能。解释程序只是将程序生成为中间代码,易读,相当开放源码。故无保密性

3、编译过程从中间代码到目标代码需要考虑到不同系统,相反解释程序只是翻译到中间代码,执行过程中可根据不同系统做后续编译。故跨平台

4、为了便于用户调试和修改程序,又能保证程序高效运行,很多程序设计语言配置两个加工系统,一个用于调试,一个用于有效地运行。故调试效率高

 联想到,python为什么效率相对低,是不是因为解释程序,然而并不是?

引:像Python这样就不好分了,可以直接解释源代码运行,也可以编译为虚拟机指令然后再运行。

引:https://www.zhihu.com/question/21486706  余天升 回答

转载于:https://www.cnblogs.com/jackherrick/p/7076254.html

你可能感兴趣的文章
python爬某个网站的图片
查看>>
SDN第二次上机作业
查看>>
关于行和列的算法
查看>>
机器学习方法(七):Kmeans聚类K值如何选,以及数据重抽样方法Bootstrapping
查看>>
【Linux 运维】 安装PHP工具Composer
查看>>
深度学习笔记之目标检测算法系列(包括RCNN、Fast RCNN、Faster RCNN和SSD)
查看>>
机器学习概念之特征转换(Feature conversion)
查看>>
全网最详细的一个超级好用的命令行工具【Cmder】的优点有哪些?
查看>>
Elasticsearch的前后台运行与停止(rpm包方式)
查看>>
再谈spark部署搭建和企业级项目接轨的入门经验(博主推荐)
查看>>
Spark Tachyon的命令行使用
查看>>
weekend110(Hadoop)的 第五天笔记
查看>>
系统网络概述
查看>>
css定位relative,absolute
查看>>
字符串操作
查看>>
ios 利用Reveal来调试界面2--真机调试(步骤详解)
查看>>
python中getpass模块
查看>>
Seaborn 的示例数据集(load_dataset)
查看>>
PHP 正则表达式
查看>>
Linux之磁盘挂载
查看>>