
语言/编译/虚拟机
文章平均质量分 63
qs9816
这个作者很懒,什么都没留下…
展开
-
HHVM 是如何提升 PHP 性能的?
HHVM 是如何提升 PHP 性能的?FROM: http://wuduoyi.com/note/hhvm/ 背景HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快9倍,我很好奇,于是抽空简单了解了一下,并整理出这篇文章,希望能回答清楚两方面的问题:HHVM 到底靠谱么?是否可以用到产品中?它为什么比官方的 PHP 快很多?到底是如转载 2014-03-27 09:16:41 · 653 阅读 · 0 评论 -
TypeScript编译器性能提升
TypeScript团队正在构建一个新的、轻量级的编译器内核,用来取代现有的编译器。初步结果显示,其性能比现有的编译器提升了高达5倍。新的编译器内核起初是作为一项实验,但初步结果促使团队将它发展为新的TypeScript编译器和语言服务:一旦完成,新编译器应该会实现对现有编译器的“可插入式兼容(drop-in compatible)”。其目标不是新的编译器功能,而是更简洁的编译转载 2014-07-31 15:49:37 · 1184 阅读 · 0 评论 -
Oracle宣布了针对Java的Valhalla项目。
Oracle宣布了针对Java的Valhalla项目。这是一个实验性OpenJDK项目,用于开发需要更改Java语法以及VM层支持的主要的Java新特性。Valhalla项目负责人Brian Goetz强调,该项目尚处于早期实验阶段,社区不应该期望任何Valhalla技术会成为JDK 9(计划在2016年发布)的一部分。该项目与一些现有的OpenJDK项目,如Lambda项目和DaVinci Ma转载 2014-08-11 00:53:42 · 895 阅读 · 0 评论 -
语义和语法结构之间的关系
根据语法分析的难度, 可以为所有的上下文无关语法划分一个层次结构, 最常用的即: 任意CFG, LR(1)语法, LL(1) 语法, 正则语法(RG)。相比LR(1) 或 LL(1), 任意CFG需要花费更多的时间进行语法分析, Earley 算法可以在O(n**3) 的时间内解析任意CFG, n为输入流中的单词数目, 相对低效。LR(1) 包含了无歧义CFG的原创 2016-06-06 22:44:56 · 3211 阅读 · 0 评论 -
语法分析的基本概念
语法分析器处理有词法分析器转换生成的程序, 从语法分析器的视角来看, 输入的程序是一个单词流, 其中各个单词都标注了语法范畴, 即词类。 如果语法分析器确定输入流是一个有效程序,它将构建该程序的一个具体模型, 供编译的后续各阶段使用, 否则,语法分析器将向用户报告问题和适当的诊断信息。 对语法分析器来说, 首要职责是识别语法, 即确定被编译的程序在程序设计语言的语法模型中是否是一个有效原创 2016-06-11 23:32:47 · 1353 阅读 · 0 评论 -
Python dis 模块初步使用
Python 代码先被编译为Python字节码后,再由Python虚拟机来执行Python字节码, Python的字节码是一种类似汇编指令的中间语言, 一个Python语句会对应若干字节码指令,虚拟机一条一条执行字节码指令, 从而完成程序执行。Python dis 模块支持对python代码进行反汇编, 生成字节码指令。先来一小段代码:In[6]: def te原创 2016-06-14 02:49:35 · 7173 阅读 · 0 评论 -
C++14标准已获通过
8月18日,C++标准委员会召集人Herb Sutter发表了一篇博客《We have C++14!》。Sutter宣布,经过投票,C++14标准获得一致通过。草案文档经过一定的文字润色和修正之后,将在年内提交给ISO作为正式的C++标准发布。C++之父Bjarne Stroustrup写道:“C++14按时交付了,主要的编译器提供商也已经在提供相应的实现。真是太棒了。对于想把C++当转载 2014-08-21 01:58:08 · 710 阅读 · 0 评论 -
C++14快来了
C++11已经问世两年了,各大编译器也都加紧跟进对C++11的特性和库的实现(这里有一份GCC、MSVC、CLANG对C++11的支持情况表)。在我们还没有来得及消化新的C++的时候,C++标准委员会并没有停下。从C++11正式发布到今天,他们一直在为C++14(以及以后的C++17)努力工作着。 据来自C++标准委员会的网站上的一篇新闻称,用于 C++14 的投票草案已经完成。这意味着转载 2013-05-11 23:42:19 · 578 阅读 · 0 评论 -
GCC4.8发布,完成向C++的迁移
GNU编译器集合(GCC)的最新版本发布,这标志着向C++的迁移已经完成。这一过程持续了多年,GCC团队指出,为了有一个可维护的代码基来吸引并留住新的项目成员,这种迁移是必要的。之所以选择C++,部分原因是它是标准化的语言,而且 "支持更干净的代码,更容易编写并保证清晰的接口……尽管这并非灵丹妙药,但相对于基于C的遗留代码,的确是种改进”。对大部分开发者来说,最终结果不过是,如果有兴趣从源代码转载 2013-04-27 11:10:46 · 1551 阅读 · 0 评论 -
GCC4.9 发布
在GCC 4.8发布一年零一个月之后,GCC 4.9终于发布了。GCC 4.9是一个主要版本,提供了大量新功能。下面我们来看一下:通用的优化器改进AddressSanitizer这款快速的内存错误检查程序已经支持ARM。添加了UndefinedBehaviorSanitizer(ubsan),这是一款快速的未定义行为检查程序,可以通过-fsanitize=undef转载 2014-04-25 19:09:55 · 2240 阅读 · 0 评论 -
Pyston——基于LLVM和现代JIT技术的开源Python实现
本月初,Kevin Modzelewski在Dropbox技术博客上撰文宣布了他们正在开发的一款开源Python实现——Pyston。该项目的目标是开发出一款高性能的Python实现,使Python跻身如C++等传统系统级语言所统治的领域。Dropbox内部有很多项目是用Python编写的。Python之父Guido van Rossum从Google离职后也加入了这家公司。随着业务规模的转载 2014-04-25 19:36:32 · 833 阅读 · 0 评论 -
编译器学习--文法的类型
文法的类型一个文法G[S],S为启始规则,如果它的所有规则符合形如:a=>b其中a和b都是G[S]文法的符号串,但a中至少要有一个非终结符,这时G[S]文法是短语文法。G[语言]为例“宾语张三=>名词张三”是短语文法的规则,“张三编写=>名词张三”则不是短语文法,因为“张三”和“编写”都是终结符规则左则没有非终结符。我们可以看出短语文法是对规则做了一些限制后形成的,下面的文法是对短语文原创 2015-01-15 21:27:21 · 736 阅读 · 0 评论