标题:关于编程语言的种类及运行速度 求大神指导
只看楼主
老实写码
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-30
结帖率:50%
已结贴  问题点数:10 回复次数:2 
关于编程语言的种类及运行速度 求大神指导
本人之前的学习中是编程语言从机器代码到汇编语言(Assembly)到高级语言的执行速度从快到慢,但是最近听说有更多的分类像python一样的脚本语言,求大神用白话讲讲脚本语言是怎么运作的,大部分高级语言好像都是靠编译器从源代码编译成机器的操作二进制命令的吧,网上查了说脚本语言是不用编译的,难道不是所有高级语言都需要编译这样电脑才能理解命令的吗?


还有人把高级语言分类成为编译类和解释类,据说编译类都是把源代码先转换成可执行文件,就是电脑已经可以理解的命令了 那既然都是转化过去了怎么还有运行速度的快慢之分呢,不应该只是转化的快慢吗?转换之后执行不应该都是同样的机器命令这样就执行速度基本相同吗,为什么还说c语言运行速度比其他语言像java什么的要运行速度快呢?

如果有理解的偏差求大神纠错。。。
搜索更多相关主题的帖子: 编程语言 执行文件 源代码 python 编译器 
2017-05-31 15:59
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
编程语言从机器代码汇编语言(Assembly)到高级语言的执行速度从快到慢
------ 机器代码 和 汇编语言 是一一对应的,执行时一模一样的东西竟然能有快有慢?!

汇编语言 和 C语言:
C语言没法控制最终生成的汇编质量,因此谁快谁慢,就取决于 写汇编的那个人 和 写C优化器的那个人 哪个本事高了。一般而言,绝大部分自己优化的汇编质量,不如C编译器生成的汇编质量。
(你写汇编代码时,考虑过cache命中率,考虑过指令乱序发射,考虑过几十种CPU架构的不同吗?而C编译器都会考虑)

C语言 和 Java:
Java需要运行时生成执行代码,这只是一方面。影响其效率的主要是
a. 因为语法粒度太粗糙,没法生成高质量的汇编质量
b. 因为狗屎的GC,没法生成高效的算法

纯解释型的语言:
大部分时间都耗在解释器自身上了


2017-05-31 16:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:5 
回复 楼主 老实写码
暂不说不同的编程语言,就用同一种编译语言来说。
虽然都是编译成机器代码,但并不是都一样的,不一样的代码运行速度又怎会是一样?
就算是同一个源程序用同一个编译器编译,如果编译器版本不同,编译出来的机器代码也有可能不一样。
可见同一个源程序用不同的编译器编译,更难编译出同一样的机器代码。
如果编译器或连接库的内容不同,差别就更大。

[此贴子已经被作者于2017-6-1 06:09编辑过]

2017-06-01 06:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477496-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.153802 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved