惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Martin Fowler
Martin Fowler
Last Week in AI
Last Week in AI
罗磊的独立博客
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园_首页
人人都是产品经理
人人都是产品经理
量子位
美团技术团队
The Cloudflare Blog
小众软件
小众软件
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
博客园 - Franky

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
编译器和解释器的区别-互联网IT百科
2020-03-07 · via 老董笔记

  编译器和解释器的区别其实编译型语言和解释型语言的区别,我们到处可见相关的言论,网上不乏学识渊博之人但有时候解释不够透彻,解释不到关键的点。本文参考其他文章把不够透彻的地方补充下。

  概括:CPU最终只能执行二进制指令,视觉上人类可读的编程语言最终都会变成CPU可执行的二进制指令,编译器和解释器的区别体现在人类可读的编程语言变成二进制指令的过程。

  编译类语言

  源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

  前面的步骤是靠人来做的,最后拿到可执行程序可以在相同的CPU和系统下随便发给人用,不用去装什么乱七八糟的环境。每个CPU都有自己的指令集,每个系统都有自己的库文件,如果在不同CPU的机器或系统上运行源代码,就需要针对不同的CPU和操作系统进行编译使之变成该平台能运行的指令!

  你可以想象你是万能编译器,精通各国语言,一段中文你可以把他变成英文交给英国人(英国CPU)执行,如果是法国人(法国CPU)你就把他变成发问让法国佬执行。

  编译型语言要运行就得先编译成可执行的程序,从这个角度来看,编译型语言不适合跨平台,因为A平台上的可执行程序拿到B平台不一定能用。如果某平台有自己对于该语言的编译器那么就可以将源代码编译运行。

  解释性语言

  源代码 (source code) → 解释器 (interpreter)

  解释性语言要运行,解释器会读取一句源代码之后进行词法分析和语法分析,再将源代码转换为解释器能够执行的中间代码(字节码),最后,由解释器将中间代码解释为可执行的机器指令,这个过程给人的感觉是“源代码本身就是可执行程序一样”。因为只需编写好源代码,其他的就不管了!背后的事情解释器给你干了。

  在当前的计算机世界里,解释型语言在不同的平台有不同的解释器,windows上可以安装python.exe,linux上可以安装python,同一份py文件,拿到windows上或者linux上都可以运行。

  从上面2点看,所谓的解释性语言是跨平台必须有个前提就是把你得把源代码本身当做“可执行程序”,在这个认知的前提下,进而每个平台有自己的解释器,该解释器把源代码解释执行!这样说解释性语言跨平台才顺理成章

  写解释型语言的程序,开发人员不用考虑每个平台如何编译,只需要关注代码的编写,编写完的代码在任何平台都能无需修改(或少量修改:python的fork函数在windows上不能用)就能正确执行。

  编译器和解释器的区别大家知道了吧。

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会