2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)最新文献

筛选
英文 中文
PADLA: A Dynamic Log Level Adapter Using Online Phase Detection PADLA:使用在线相位检测的动态日志级别适配器
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00029
Tsuyoshi Mizouchi, Kazumasa Shimari, T. Ishio, Katsuro Inoue
{"title":"PADLA: A Dynamic Log Level Adapter Using Online Phase Detection","authors":"Tsuyoshi Mizouchi, Kazumasa Shimari, T. Ishio, Katsuro Inoue","doi":"10.1109/ICPC.2019.00029","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00029","url":null,"abstract":"Logging is an important feature for a software system to record its run-time information. Although detailed logs are helpful to identify the cause of a failure in a program execution, constantly recording detailed logs of a long-running system is challenging because of its performance overhead and storage cost. To solve the problem, we propose PADLA (Phase-Aware Dynamic Log Level Adapter) that dynamically adjusts the log level of a running system so that the system can record irregular events such as performance anomalies in detail while recording regular events concisely. PADLA is an extension of Apache Log4j, one of the most popular logging framework for Java. It employs an online phase detection algorithm to recognize irregular events. It monitors run-time performance of a system and learns regular execution phases of a program. If it recognizes a performance anomalies, it automatically changes the log level of a system to record the detailed behavior. In the case study, PADLA successfully recorded a detailed log for performance analysis of a server system under high load while suppressing the amount of log data and performance overhead.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"21 1","pages":"135-138"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87296111","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
CCSpec: A Correctness Condition Specification Tool CCSpec:正确性条件规范工具
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00041
Christina L. Peterson, P. Laborde, D. Dechev
{"title":"CCSpec: A Correctness Condition Specification Tool","authors":"Christina L. Peterson, P. Laborde, D. Dechev","doi":"10.1109/ICPC.2019.00041","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00041","url":null,"abstract":"Concurrent libraries provide data structures whose operations appear to execute atomically when invoked individually. Although these libraries guarantee safety for the data structure operations, the composition of operations may be vulnerable to undefined behavior. The difficulty of reasoning about safety properties in a concurrent environment has led to the development of tools to verify that a concurrent data structure meets a correctness condition. The disadvantage of these tools is that they cannot verify that the composition of concurrent data structure operations respects the intended semantics of the algorithm. Formal logic has been proposed to enable the verification of correctness specifications for a concurrent algorithm. However, a large amount of manual labor is required to fully mechanize the correctness proofs of the concurrent algorithm and each concurrent data structure invoked in the algorithm. In this research, we propose Correctness Condition Specification (CCSpec), the first tool that automatically checks the correctness of a composition of concurrent multi-container operations performed in a non-atomic manner. In addition to checking the correctness of a composition of data structure operations in a concurrent algorithm, CCSpec also checks the correctness of each concurrent data structure utilized in the algorithm. A reference to a container is associated with each method called in a concurrent history to enable the evaluation of correctness for a composition of multiple containers. We develop a lightweight custom specification language that allows the user to define a correctness condition associated with the concurrent algorithm and a correctness condition associated with the concurrent data structures. We demonstrate the practical application of CCSpec by checking the correctness of a concurrent depth-first search utilizing a non-blocking stack, a concurrent breadth-first search utilizing a non-blocking queue, a concurrent shortest path algorithm utilizing a non-blocking priority queue, and a concurrent adjacency list utilizing non-blocking sets.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"12 1","pages":"220-230"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80287476","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
srcPtr: A Framework for Implementing Static Pointer Analysis Approaches 一个实现静态指针分析方法的框架
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00031
Vlas Zyrianov, Christian D. Newman, Drew T. Guarnera, M. Collard, J. Maletic
{"title":"srcPtr: A Framework for Implementing Static Pointer Analysis Approaches","authors":"Vlas Zyrianov, Christian D. Newman, Drew T. Guarnera, M. Collard, J. Maletic","doi":"10.1109/ICPC.2019.00031","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00031","url":null,"abstract":"A lightweight pointer-analysis framework, srcPtr, is presented to support the implementation and comparison of points-to analysis algorithms. It differentiates itself from existing tools by performing the analysis directly on the abstract syntax tree, as opposed to an intermediate representation (e.g., LLVM IR), by using srcML, an XML representation of source code. Working with srcML and the abstract syntax allows easy access to the actual source code as the programmer views it, thus better supporting comprehension. Currently the framework provides example implementations for both Andersen's and Steensgaard's pointer-analysis algorithms. It also allows for easy integration of other points-to algorithms for comparison of accuracy/speed. The approach is very scalable and can generate pointer dependencies for a 750 KLOC program in less than a minute.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"90 1","pages":"144-147"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84994161","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Negative Results Track Program Committee 消极结果跟踪计划委员会
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/icpc.2019.00007
Haipeng Cai, Ghizlane El Boussaidi, Takashi Kobayashi
{"title":"Negative Results Track Program Committee","authors":"Haipeng Cai, Ghizlane El Boussaidi, Takashi Kobayashi","doi":"10.1109/icpc.2019.00007","DOIUrl":"https://doi.org/10.1109/icpc.2019.00007","url":null,"abstract":"Haipeng Cai, Washington State University, Pullman, USA Ghizlane El Boussaidi, École de Technologie Supérieure, Montréal, Canada Takashi Kobayashi, Tokyo Institute of Technology, Tokyo, Japan Hafedh Mili, Université du Québec à Montréal, Montréal, Canada Annibale Panichella, Delft University of Technology, Delft, Netherlands Sebastian Proksch, University of Zurich, Zürich, Switzerland Xin Xia, Monash University, Melbourne, Australia Vadim Zaytsev, Raincode Labs, Brussels, Belgium","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"35 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75850536","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Measuring Interprocess Communications in Distributed Systems 测量分布式系统中的进程间通信
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00051
Xiaoqin Fu, Haipeng Cai
{"title":"Measuring Interprocess Communications in Distributed Systems","authors":"Xiaoqin Fu, Haipeng Cai","doi":"10.1109/ICPC.2019.00051","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00051","url":null,"abstract":"Due to the increasing demands for computational scalability and performance, more distributed software systems are being developed than single-process programs. As an important step in software quality assurance, software measurement provides essential means and evidences in quality assessment hence incentives and guidance for quality improvement. However, despite the rich literature on software measurement in general, existing measures are mostly defined for single-process programs only or limited to conventional metrics. In this paper, we propose a novel set of metrics for common distributed systems, with a focus on their interprocess communications (IPC), a vital aspect of their run-time behaviors. We demonstrated the practicality of characterizing IPC dynamics and complexity via the proposed IPC metrics, by computing the measures against nine real-world distributed systems and their varied executions. To demonstrate the practical usefulness of IPC measurements, we extensively investigated how the proposed metrics may help understand and analyze various quality factors of distributed systems, ranging from maintainability and stability to security and performance, on the same nine distributed systems and their executions. We found that higher IPC coupling tended to be generally detrimental to most of the quality aspects while interprocess sharing of common functionalities should be promoted due to its understandability and security benefits.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"27 1","pages":"323-334"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76034580","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Does BLEU Score Work for Code Migration? BLEU评分是否适用于代码迁移?
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00034
Ngoc M. Tran, H. Tran, S. Nguyen, H. Nguyen, T. Nguyen
{"title":"Does BLEU Score Work for Code Migration?","authors":"Ngoc M. Tran, H. Tran, S. Nguyen, H. Nguyen, T. Nguyen","doi":"10.1109/ICPC.2019.00034","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00034","url":null,"abstract":"Statistical machine translation (SMT) is a fast-growing sub-field of computational linguistics. Until now, the most popular automatic metric to measure the quality of SMT is BiLingual Evaluation Understudy (BLEU) score. Lately, SMT along with the BLEU metric has been applied to a Software Engineering task named code migration. (In) Validating the use of BLEU score could advance the research and development of SMT-based code migration tools. Unfortunately, there is no study to approve or disapprove the use of BLEU score for source code. In this paper, we conducted an empirical study on BLEU score to (in) validate its suitability for the code migration task due to its inability to reflect the semantics of source code. In our work, we use human judgment as the ground truth to measure the semantic correctness of the migrated code. Our empirical study demonstrates that BLEU does not reflect translation quality due to its weak correlation with the semantic correctness of translated code. We provided counter-examples to show that BLEU is ineffective in comparing the translation quality between SMT-based models. Due to BLEU's ineffectiveness for code migration task, we propose an alternative metric RUBY, which considers lexical, syntactical, and semantic representations of source code. We verified that RUBY achieves a higher correlation coefficient with the semantic correctness of migrated code, 0.775 in comparison with 0.583 of BLEU score. We also confirmed the effectiveness of RUBY in reflecting the changes in translation quality of SMT-based translation models. With its advantages, RUBY can be used to evaluate SMT-based code migration models.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"9 1","pages":"165-176"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87810209","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 29
On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level 基于信息检索的方法级第三方Java库迁移自动化检测
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00053
Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni
{"title":"On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level","authors":"Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni","doi":"10.1109/ICPC.2019.00053","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00053","url":null,"abstract":"The migration process between different third-party libraries is hard, complex and error-prone. Typically, during a library migration, developers need to find methods in the new library that are most adequate in replacing the old methods of the retired library. This process is subjective and time-consuming as developers need to fully understand the documentation of both libraries' Application Programming Interfaces, and find the right matching between their methods, if it exists. In this context, several studies rely on mining existing library migrations to provide developers with by-example approaches for similar scenarios. In this paper, we introduce a novel mining approach that extracts existing instances of library method replacements that are manually performed by developers for a given library migration to automatically generate migration patterns in the method level. Thereafter, our approach combines the mined method-change patterns with method-related lexical similarity to accurately detect mappings between replacing/replaced methods. We conduct a large scale empirical study to evaluate our approach on a benchmark of 57,447 open-source Java projects leading to 9 popular library migrations. Our qualitative results indicate that our approach significantly increases the accuracy of mining method-level mappings by an average accuracy of 12%, as well as increasing the number of discovered method mappings, in comparison with existing state-of-the-art studies. Finally, we provide the community with an open source mining tool along with a dataset of all mined migrations at the method level.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"44 1","pages":"347-357"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86475615","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 28
Towards Automated Testing of Blockchain-Based Decentralized Applications 迈向基于区块链的去中心化应用的自动化测试
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00048
Jianbo Gao, Han Liu, Yue Li, Chao Liu, Zhiqiang Yang, Qingshan Li, Zhi Guan, Zhong Chen
{"title":"Towards Automated Testing of Blockchain-Based Decentralized Applications","authors":"Jianbo Gao, Han Liu, Yue Li, Chao Liu, Zhiqiang Yang, Qingshan Li, Zhi Guan, Zhong Chen","doi":"10.1109/ICPC.2019.00048","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00048","url":null,"abstract":"Blockchain-based decentralized applications (DApp) have been widely adopted in different areas and trusted by more and more users due to the fact that the back end code of a DApp is publicly run on the blockchain and cannot be modified implicitly. However, there are few effective methods and tools for testing DApps and bugs can be easily introduced by inexperienced developers. The existing testing techniques either focus on testing front-end programs or back-end code but ignore the interaction between them, which makes it difficult to apply the techniques directly on DApp. In this paper, we present an automated testing technique for DApps which works in a two-phase manner. First, we employ random events to infer an abstract relation between browser-side events and blockchain-side contracts. Second, our technique generates a set of test cases under the guidance of inferred relations and orders the test cases based on a read-write graph. We also use taint analysis to track data flow of the smart contract and feed it to the generation procedure for following test cases. We have developed a tool called Sungari to implement our approach, and evaluated it on representative real-world DApps. The preliminary evaluation results demonstrated the potential of Sungari in achieving a significant optimization compared to random testing approaches.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"1 1","pages":"294-299"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84830716","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 21
Removal of Design Problems through Refactorings: Are We Looking at the Right Symptoms? 通过重构消除设计问题:我们是否看到了正确的症状?
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00032
Andre Eposhi, W. Oizumi, Alessandro F. Garcia, L. Sousa, R. Oliveira, Anderson Oliveira
{"title":"Removal of Design Problems through Refactorings: Are We Looking at the Right Symptoms?","authors":"Andre Eposhi, W. Oizumi, Alessandro F. Garcia, L. Sousa, R. Oliveira, Anderson Oliveira","doi":"10.1109/ICPC.2019.00032","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00032","url":null,"abstract":"A design problem is the result of design decisions that negatively impact quality attributes. For example, a stakeholder introduces a design problem when he decides to addresses multiple unrelated responsibilities in a single class, impacting the modifiability and reusability of the system. Given their negative consequences, design problems should be identified and refactored. The literature still lacks evidence on which symptoms' characteristics can be used as strong indicators of design problems. For example, it is unknown if the density and diversity of certain symptoms (e.g., violations of object-oriented principles) are correlated with the occurrence of design problems. Thus, in this paper, we report a case study involving two C# systems. We evaluated the impact of refactoring, focused on removing design problems, on the density and diversity of symptoms. Results indicate that refactored classes usually present higher density and diversity of symptoms. However, the density and diversity of some symptoms, such as the violation of object-oriented principles, was not predominantly higher in refactored classes. Moreover, contrary to our expectations, refactorings caused almost no positive impact on the density and diversity of symptoms.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"5 1","pages":"148-153"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88254986","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 16
The Untapped Potential of Analyzing Complete Developer Workflows 分析完整开发人员工作流的未开发潜力
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-01 DOI: 10.1109/ICPC.2019.00036
Liane Praza
{"title":"The Untapped Potential of Analyzing Complete Developer Workflows","authors":"Liane Praza","doi":"10.1109/ICPC.2019.00036","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00036","url":null,"abstract":"Individual software tools are often well analyzed both academically and commercially. But, developers interact with many, many tools over the course of a day. We constantly build tools for ourselves to make our own development faster, and large development organizations have shared tools that number in the thousands. Large-scale analysis of entire workflows, especially in context of a developer's day which is filled with interruptions, distractions, and business-critical non-coding tasks is an exciting area. If we understand this area well, we can do prediction and modeling of behaviors outside of individual tools, and we can tackle incredibly interesting problems. These opportunities include reduction of defects through workflow analysis, automatic documentation for even infrequent tasks, UX improvements that span multiple tools, and even predicting outages that impact developers. Machine learning has opened up analyses of data at a scale in this space that were previously too opaque or expensive to consider.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"46 1","pages":"178-178"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87541407","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信