有很多矛盾的信息。 虽然有人说C#编译(因为它被编译成IL,然后运行时本地代码),其他人说,它的解释,因为它需要.NET。 EN维基说: 许多解释型语言首先被编译成某种forms的虚拟机代码,然后在运行时解释或编译为本机代码。 所以我很困惑。 谁能解释清楚吗? 非常感谢
为什么HTML / JavaScript / CSS没有成为编译语言(或者甚至可能合并成单一的编译语言)? 如果浏览器运行“浏览器虚拟机”,html / javascript / css源代码可以编译成“浏览器字节码”。 它不会帮助开发者和用户很多吗? 我可以看到一些挑战: 如何处理现有网页的无数? 使这个编译可选,所以如果你想你可以使用普通的旧的HTML。 如果你想喂一个浏览器与编译页面只使用.chtml例如。 search引擎如何索引页面? 创build一个反编译器,将字节码反编译成精确的原始资源(例如像flash一样可以被反编译)。 或者search提供者可以使用相同的虚拟机并从那里获取他们需要的数据。 如何使它与所有浏览器兼容? 有一个集中的开发人员(可以说w3c)开发这个虚拟机,然后每个浏览器将embedded它。 但是好处呢? 速度。 尺寸。 没有更多的“宽松”和“半正确”的HTML。 这是正确的或不会编译。 每个(支持的)浏览器看起来都一样。 如果不是字节码,那么至less有一些本地压缩,html可能不是最有效的数据存储方式。 我知道有gzip,但为什么每次在服务器上压缩页面,并在浏览器解压缩,如果我们可以压缩一次,并将其提供给浏览器? 那么是什么阻止我们走上这条路?(除此之外,还有很大的努力来完成这一切)?
我只是不知道,这是否有任何技术原因? 对于input较弱的语言,实现编译器更难吗? 它是什么?
从我的理解: 解释型语言是一种高级语言,由移动装置(一种将高级语言转换为机器码然后执行的程序)执行并执行; 它一次处理程序一点点。 编译语言是一种高级语言,其代码首先由编译器(将高级语言转换为机器码的程序)转换为机器码,然后由执行器(用于运行代码的另一程序)执行。 纠正我,如果我的定义是错误的。 现在回到Python,我有点困惑。 你到处学习Python是一种解释型语言,但是它被解释为一些中间代码(比如字节代码或者IL),而不是机器代码。 那么哪个程序执行IM代码呢? 请帮我理解Python脚本是如何处理和运行的。