×

运行时专门化中动态优化的可移植方法。 (英语) Zbl 0994.68041号

摘要:本文提出了一种运行时字节码专用化(BCS)技术,该技术可以分析程序并在运行时用中间语言生成专用程序。通过使用中间语言生成代码,后端系统可以在专门化后优化专门化的程序。该系统使用Java虚拟机语言(JVML)作为中间语言,这使得系统能够轻松实现实际的可移植性,并使用现有的复杂的实时Just-In-Time(JIT)编译器作为其后端。绑定时分析算法基于类型系统,涵盖了JVML的非面向对象子集。专门化程序以指令为基础生成程序,并可以在运行时执行方法内联。我们的性能测量表明,BCS在运行时专门设计的非普通应用程序的运行速度大约是非专用程序的3-4倍。尽管JIT编译专用代码的开销很大,但我们观察到应用程序的总体性能可以提高。

MSC公司:

68N20型 编译与解释理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] ACM公司。进程中。编程语言设计和实现会议(PLDI’96),ACM SIGPLAN通告31.5,宾夕法尼亚州费城,1996年5月。
[2] Asai,Kenichi,静态和动态表达式的绑定时间分析,117-133(1999),柏林,海德堡·doi:10.1007/3-540-48294-68
[3] Auslander,J.、Philipose,M.、Chambers,C.、Eggers,S.J.和Bershad,B.N.,《快速有效的动态编译》,inProc。编程语言设计与实现会议(PLDI’96),第1页,149-159页。
[4] Benton,N.、Kennedy,A.和Russell,G.,“将标准ML编译为Java字节码”,《Proc》。第三届ACM SIGPLAN功能编程国际会议,马里兰州巴尔的摩,1998年9月·Zbl 1428.68096号
[5] Berlin,A.A.和Surati,R.J.,“科学计算的部分评估:超级计算机工具包经验”,摘自《部分评估和基于语义的程序操作》,第133-141页,佛罗里达州奥兰多,1994年6月。ACM SIGPLAN。作为技术报告94/9出版,墨尔本大学计算机科学系。
[6] Bertelsen,P.,“JVM核心语言的绑定时间分析”ftp://ftp.dina.kvl.dk/pub/Staff/Peter.Bertelsen/bta-core-jvm.ps.gz1999年4月。
[7] Bothner,P.“Kawa-为Java虚拟机编译动态语言”,收录于USENIX,新奥尔良,1998年6月。
[8] Choi,J.-D.,Gupta,M.,Serrano,M.、Sreedhar,V.C.和Midkiff,S.,《Java逃逸分析》,摘自Proc。《面向对象编程系统、语言和应用(OOPSLA’99)》(Northrop,L.M.,ed.),ACM SIGPLAN通告第34、10页,第1-19页,美国科罗拉多州丹佛,1999年10月。ACM公司。
[9] Consel,C.和Noöl,F.,“运行时专业化的一般方法及其在C语言中的应用”,摘自《编程语言原理研讨会会议记录》(POPL'96),第145-170页,佛罗里达州圣彼得堡海滩,1996年1月,ACM SIGPLAN-SIGACT。
[10] 第二届程序作为数据对象研讨会(PADO II)(Danvy,O.和Filinski,A.编辑),2053计算机科学讲稿,丹麦奥胡斯,Springer-Verlag,2001年5月·Zbl 0961.00027号
[11] Engler,D.R.,“VCODE:一个可重定向、可扩展、非常快速的动态代码生成系统”,inProc。编程语言设计和实现会议(PLDI’96),ACM SIGPLAN通知31,5,宾夕法尼亚州费城,1996年5月。第160-170页。
[12] 福建省。;Leroy,X.(编辑);Ohori,A.(编辑),使用运行时代码生成确定动态方法调度,253-271(1998),日本京都·doi:10.1007/BFb0055522
[13] Futamura,Y.,“计算过程的部分评估——编译器的方法”,《高阶和符号计算》,第12、4页,第381-3911999页。转载自《系统、计算机、控制》,2,5,第45-50页,1971年·Zbl 1009.68504号 ·doi:10.1023/A:101095604496
[14] Grant,B.、Philipose,M.、Mock,M.,Chambers,C.和Eggers,S.J.,《DyC中阶段运行时优化的评估》。进程中。编程语言设计与实现会议(PLDI),1999年。
[15] Guenter,B.、Knoblock,T.B.和Ruf,E.,“专用着色器”,摘自SIGGRAPH’95(计算机图形会议论文集,年度会议系列),第343-349页,1995年。
[16] Henglein,F.,“高阶结合时间分析的有效类型推断”,FPCA’91 Proc。《函数编程语言和计算机体系结构》(LNCS 523),《计算机科学讲义》第523页,第448-4721991页。
[17] Hornof,L和Noyé,J.,“祈使语言的精确绑定时间分析:流、上下文和返回敏感性”,inProc。《部分评估和基于语义的程序操作》(PEPM’97),ACM SIGPLAN第32、12页,第63-73页,阿姆斯特丹,1997年6月。ACM公司·Zbl 0951.68058号
[18] 霍诺夫,L。;吉姆·T。;Danvy,O.(编辑),《认证编译和运行时代码生成》,60-74(1999),德克萨斯州圣安东尼奥
[19] Jones,N.D.、Gomard,C.K.和Sestoft,P.,《部分评估和自动程序生成》,普伦蒂斯·霍尔出版社,1993年·Zbl 0875.68290号
[20] Lee,P.和Leone,M.,“使用运行时代码生成优化ML”,inProc。编程语言设计和实现会议(PLDI’96),ACM SIGPLAN通知31,5,宾夕法尼亚州费城,1996年5月。第137-148页。
[21] Lindholm,T.和Yellin,F.,Java虚拟机规范,Addison Wesley,1997。
[22] Masuhara,H。;Yonezawa,A。;Jul,E.(编辑),并发反射语言元对象的设计和部分评估,418-439(1998),比利时布鲁塞尔·doi:10.1007/BFb0054102
[23] Masuhara,H。;Yonezawa,A。;Danvy,O.(编辑);Filinski,A.(编辑),《运行时字节码专用化:生成优化专用码的可移植方法》,138-154(2001),丹麦奥尔胡斯·Zbl 0984.68670号 ·doi:10.1007/3-540-44978-79
[24] Noöl,F.,Hornof,l.,Consel,C.和Lawall,J.l.,“基于模板的自动运行时专业化:实现和实验研究”,IEEE国际计算机语言会议(ICCL'98),第123-142页,美国伊利诺伊州芝加哥,1998年5月。
[25] 小川,H。;Shimura,K。;松冈,S。;Maruyama,F。;Sohda,Y。;木村,Y。;Bertino,E.(编辑),《OpenJIT:Java的开放式、反思性JIT编译框架》,362-387(2000),索菲亚·安蒂波利斯和戛纳,法国·数字对象标识代码:10.1007/3-540-45102-1_18
[26] Poletto,M.,Hsieh,W.C.,Engler,D.R.和Kaashoek,M.F.,“C和tcc:动态代码生成的语言和编译器”,《编程语言和系统学报》,第21期,第2期,第324-369页,1999年3月·数字对象标识代码:10.1145/316686.316697
[27] Pu,C.等人。;奥特雷,T。;黑色,A。;康塞尔,C。;Cowan,C。;Inouye,J。;Kethana,L。;Walpole,J。;Zhang,K.,《乐观的增量专业化:简化商业操作系统》,314-324(1995),美国科罗拉多州
[28] Schultz,U.,《使用部分评估的面向对象软件工程》。雷恩大学博士论文,2000年12月,英文版,IRISA PI 1395。
[29] 美国舒尔茨。;Danvy,O.(编辑);Filinski,A.(编辑),基于类的面向对象语言的部分评估,173-197(2001),丹麦奥胡斯·Zbl 0984.68653号 ·doi:10.1007/3-540-44978-7_11
[30] Schultz,U.P.,Lawall,J.L.,Consel,C.和Muller,G.“Java程序的自动专业化”,欧洲面向对象编程会议(ECOOP’99)(Guerraoui,R.,ed.),1628年《计算机科学体系结构笔记》,第367-390页,葡萄牙里斯本,施普林格出版社,199年6月。
[31] Stata,R.和Abadi,M.《Java字节码子程序的类型系统》,《编程语言和系统学报》,第21期,第1期,第90-137页,1999年1月·doi:10.1145/314602.314606
[32] Volanschi,E.,Consel,C.,Muller,G.和Cowan,C.,《面向对象程序的声明性专业化》,inProc。面向对象编程系统、语言和应用会议(OOPSLA)(Bloom,T.,ed.),ACM SIGPLAN通知32,10,第286-300页,亚特兰大,1997年10月·数字对象标识代码:10.1145/263700.263749
[33] Wickline,P。;李·P。;Pfenning,F.,运行时代码生成和模式ML,224-235(1998),加拿大蒙特利尔
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。