揭示字节码指令和Java编译器确定的表达式之间的隐式对应关系

I. Kume, Masahide Nakamura, Naoya Nitta
{"title":"揭示字节码指令和Java编译器确定的表达式之间的隐式对应关系","authors":"I. Kume, Masahide Nakamura, Naoya Nitta","doi":"10.1109/ASWEC.2018.00025","DOIUrl":null,"url":null,"abstract":"Most Java debuggers designate a source code line as the executed part in the source code at each step-by-step execution. Such designation is based on compilation results which give line numbers to byte code instructions executed at debugging. Because a source code line contains many expressions in general, debugger users must simulate microscopic executions of such contained expressions in their mind. This kind of internal simulation is one of the causes of inefficiency at debugging. We aim at supporting an implementation of a feature to designate expressions instead of source code lines. As its first step, we propose a method to examine how a given compiler maps bytecode instructions to expressions. The key idea of our method is to decompose lexical tokens in each expression into different source code lines. Because of the one-to-one correspondence between line numbers and tokens obtained by our decomposition, we can reveal hidden intention of a compiler to map bytecode instructions to expressions. In this paper, we introduce our experimental results to apply our method to Java programs compiled by a standard Java compiler. We discuss the feasibility of our method with respect to our goal, which is an implementation of a feature to designate expressions instead of source code lines.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Revealing Implicit Correspondence between Bytecode Instructions and Expressions Determined by Java Compilers\",\"authors\":\"I. Kume, Masahide Nakamura, Naoya Nitta\",\"doi\":\"10.1109/ASWEC.2018.00025\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Most Java debuggers designate a source code line as the executed part in the source code at each step-by-step execution. Such designation is based on compilation results which give line numbers to byte code instructions executed at debugging. Because a source code line contains many expressions in general, debugger users must simulate microscopic executions of such contained expressions in their mind. This kind of internal simulation is one of the causes of inefficiency at debugging. We aim at supporting an implementation of a feature to designate expressions instead of source code lines. As its first step, we propose a method to examine how a given compiler maps bytecode instructions to expressions. The key idea of our method is to decompose lexical tokens in each expression into different source code lines. Because of the one-to-one correspondence between line numbers and tokens obtained by our decomposition, we can reveal hidden intention of a compiler to map bytecode instructions to expressions. In this paper, we introduce our experimental results to apply our method to Java programs compiled by a standard Java compiler. We discuss the feasibility of our method with respect to our goal, which is an implementation of a feature to designate expressions instead of source code lines.\",\"PeriodicalId\":331846,\"journal\":{\"name\":\"2018 25th Australasian Software Engineering Conference (ASWEC)\",\"volume\":\"9 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-11-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2018 25th Australasian Software Engineering Conference (ASWEC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ASWEC.2018.00025\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 25th Australasian Software Engineering Conference (ASWEC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ASWEC.2018.00025","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

大多数Java调试器在每个分步执行时指定源代码行作为源代码中的执行部分。这种指定是基于编译结果的,编译结果为调试时执行的字节码指令提供行号。由于源代码行通常包含许多表达式,调试器用户必须在他们的脑海中模拟这些包含表达式的微观执行。这种内部模拟是导致调试效率低下的原因之一。我们的目标是支持一个特性的实现来指定表达式,而不是源代码行。作为第一步,我们提出一种方法来检查给定编译器如何将字节码指令映射到表达式。我们方法的关键思想是将每个表达式中的词法记号分解到不同的源代码行中。由于行号和分解获得的令牌之间的一一对应关系,我们可以揭示编译器将字节码指令映射到表达式的隐藏意图。在本文中,我们介绍了将我们的方法应用于用标准Java编译器编译的Java程序的实验结果。我们根据我们的目标来讨论我们的方法的可行性,我们的目标是实现指定表达式而不是源代码行的特性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Revealing Implicit Correspondence between Bytecode Instructions and Expressions Determined by Java Compilers
Most Java debuggers designate a source code line as the executed part in the source code at each step-by-step execution. Such designation is based on compilation results which give line numbers to byte code instructions executed at debugging. Because a source code line contains many expressions in general, debugger users must simulate microscopic executions of such contained expressions in their mind. This kind of internal simulation is one of the causes of inefficiency at debugging. We aim at supporting an implementation of a feature to designate expressions instead of source code lines. As its first step, we propose a method to examine how a given compiler maps bytecode instructions to expressions. The key idea of our method is to decompose lexical tokens in each expression into different source code lines. Because of the one-to-one correspondence between line numbers and tokens obtained by our decomposition, we can reveal hidden intention of a compiler to map bytecode instructions to expressions. In this paper, we introduce our experimental results to apply our method to Java programs compiled by a standard Java compiler. We discuss the feasibility of our method with respect to our goal, which is an implementation of a feature to designate expressions instead of source code lines.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信