首页 > 最新文献

WRT '13最新文献

英文 中文
Scalable, example-based refactorings with refaster 可扩展的、基于实例的重构,使用更快的速度
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541355
L. Wasserman
We discuss Refaster, a tool that uses normal, compilable before-and-after examples of Java code to specify a Java refactoring. Refaster has been used successfully by the Java Core Libraries Team at Google to perform a wide variety of refactorings across Google's massive Java codebase. Our main contribution is that a large class of useful refactorings can be expressed in pure Java, without a specialized DSL, while keeping the tool easily accessible to average Java developers.
我们将讨论Refaster,这是一种工具,它使用普通的、可编译的前后Java代码示例来指定Java重构。Refaster已经被谷歌的Java核心库团队成功地用于在谷歌的大量Java代码库中执行各种各样的重构。我们的主要贡献是,大量有用的重构可以用纯Java表示,而不需要专门的DSL,同时使普通Java开发人员可以轻松访问该工具。
{"title":"Scalable, example-based refactorings with refaster","authors":"L. Wasserman","doi":"10.1145/2541348.2541355","DOIUrl":"https://doi.org/10.1145/2541348.2541355","url":null,"abstract":"We discuss Refaster, a tool that uses normal, compilable before-and-after examples of Java code to specify a Java refactoring. Refaster has been used successfully by the Java Core Libraries Team at Google to perform a wide variety of refactorings across Google's massive Java codebase. Our main contribution is that a large class of useful refactorings can be expressed in pure Java, without a specialized DSL, while keeping the tool easily accessible to average Java developers.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123385530","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
Using refactoring techniques for visual editing of hybrid languages 使用重构技术对混合语言进行可视化编辑
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541353
Niklas Fors, G. Hedin
In this paper we describe how techniques for refactoring can be used for visual editing of hybrid languages, that is, languages that have both a visual and a textual syntax. Textual languages have name rules that define how name uses are bound to name declarations. These bindings often correspond to connections in the visual language, and need to be taken into account in order to implement the visual edit operations correctly. We use inverse lookup functions, originally devised for renaming, for implementing visual editing operations for hybrid languages.
在本文中,我们描述了如何将重构技术用于混合语言的可视化编辑,即同时具有可视化和文本语法的语言。文本语言的名称规则定义了如何将名称使用绑定到名称声明。这些绑定通常与可视化语言中的连接相对应,为了正确地实现可视化编辑操作,需要考虑这些绑定。我们使用最初为重命名而设计的逆查找函数来实现混合语言的可视化编辑操作。
{"title":"Using refactoring techniques for visual editing of hybrid languages","authors":"Niklas Fors, G. Hedin","doi":"10.1145/2541348.2541353","DOIUrl":"https://doi.org/10.1145/2541348.2541353","url":null,"abstract":"In this paper we describe how techniques for refactoring can be used for visual editing of hybrid languages, that is, languages that have both a visual and a textual syntax. Textual languages have name rules that define how name uses are bound to name declarations. These bindings often correspond to connections in the visual language, and need to be taken into account in order to implement the visual edit operations correctly. We use inverse lookup functions, originally devised for renaming, for implementing visual editing operations for hybrid languages.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114721762","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}
引用次数: 3
Befactoring: preserving non-functional properties under behavioural change 重构:在行为改变的情况下保留非功能属性
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541354
F. Steimann
We define befactoring as the converse of refactoring, and discuss some issues concerning befactoring tool support as well as how both refactoring and befactoring are comprised under the more general notion of a controlled change.
我们将重构定义为重构的反面,并讨论了一些与重构工具支持有关的问题,以及重构和重构如何在更一般的受控变更概念下组合在一起。
{"title":"Befactoring: preserving non-functional properties under behavioural change","authors":"F. Steimann","doi":"10.1145/2541348.2541354","DOIUrl":"https://doi.org/10.1145/2541348.2541354","url":null,"abstract":"We define befactoring as the converse of refactoring, and discuss some issues concerning befactoring tool support as well as how both refactoring and befactoring are comprised under the more general notion of a controlled change.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124145182","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
Upgrading fortran source code using automatic refactoring 使用自动重构升级fortran源代码
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541356
Dominic A. Orchard, A. Rice
Many of the computer models used in scientific research have been developed in Fortran over many years. This evolutionary process means these models often use deprecated language features and idioms that impede software maintenance, understandability, extension, and verification. To mitigate this, we built CamFort, an open-source automatic refactoring tool for upgrading Fortran source code. We describe functionality in CamFort for removing equivalence statements and common blocks, and for introducing structured data types, and give examples of how these transformations can benefit codebase robustness.
许多用于科学研究的计算机模型都是多年来用Fortran开发的。这种进化过程意味着这些模型经常使用不受欢迎的语言特性和习惯用法,从而妨碍软件维护、可理解性、扩展和验证。为了缓解这种情况,我们构建了CamFort,一个用于升级Fortran源代码的开源自动重构工具。我们描述了在CamFort中删除等价语句和公共块的功能,以及引入结构化数据类型的功能,并给出了这些转换如何有利于代码库健壮性的示例。
{"title":"Upgrading fortran source code using automatic refactoring","authors":"Dominic A. Orchard, A. Rice","doi":"10.1145/2541348.2541356","DOIUrl":"https://doi.org/10.1145/2541348.2541356","url":null,"abstract":"Many of the computer models used in scientific research have been developed in Fortran over many years. This evolutionary process means these models often use deprecated language features and idioms that impede software maintenance, understandability, extension, and verification. To mitigate this, we built CamFort, an open-source automatic refactoring tool for upgrading Fortran source code. We describe functionality in CamFort for removing equivalence statements and common blocks, and for introducing structured data types, and give examples of how these transformations can benefit codebase robustness.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121037099","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}
引用次数: 18
Can undergraduates script their own refactorings? 本科生可以编写自己的重构吗?
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541351
Jongwook Kim, D. Batory, Danny Dig
We present a status report on a project to build a refactoring engine whose primary goal is to allow undergraduate students to write classical and neo-classical refactorings (pull-up, class partitioning) and design patterns (visitor, framework) as parameterized refactoring scripts in Java. We explain the first step of our work that creates a reflection-like interface to expose the structure of an Eclipse JDT application as Java objects; methods of these objects are refactorings. Doing so hides the complexity of JDT refactoring code and tools, so that refactoring scripts can be written as compact Java methods. We present preliminary performance results of scripting JDT refactorings and sketch the next steps of our work.
我们提交了一份关于构建重构引擎项目的状态报告,该引擎的主要目标是允许本科生在Java中以参数化重构脚本的形式编写经典和新古典重构(上拉、类划分)和设计模式(访问者、框架)。我们解释了工作的第一步,即创建一个类似反射的接口,将Eclipse JDT应用程序的结构公开为Java对象;这些对象的方法是重构的。这样做隐藏了JDT重构代码和工具的复杂性,因此重构脚本可以编写为紧凑的Java方法。我们介绍了脚本化JDT重构的初步性能结果,并概述了我们下一步的工作。
{"title":"Can undergraduates script their own refactorings?","authors":"Jongwook Kim, D. Batory, Danny Dig","doi":"10.1145/2541348.2541351","DOIUrl":"https://doi.org/10.1145/2541348.2541351","url":null,"abstract":"We present a status report on a project to build a refactoring engine whose primary goal is to allow undergraduate students to write classical and neo-classical refactorings (pull-up, class partitioning) and design patterns (visitor, framework) as parameterized refactoring scripts in Java. We explain the first step of our work that creates a reflection-like interface to expose the structure of an Eclipse JDT application as Java objects; methods of these objects are refactorings. Doing so hides the complexity of JDT refactoring code and tools, so that refactoring scripts can be written as compact Java methods. We present preliminary performance results of scripting JDT refactorings and sketch the next steps of our work.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128747553","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
Towards automated cross-language refactorings between Java and DSLs used by Java frameworks 实现Java和Java框架使用的dsl之间的自动跨语言重构
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541350
Philip Mayer, Andreas Schroeder
Today, software applications are usually not written in just one programming language. In many cases, a general-purpose language such as Java is combined with multiple domain-specific languages (DSLs) for diverse purposes such as system configuration, UI description, or database querying. The artifacts defined in those different languages reference each other, often by name; in most cases these references are essential for the functionality of the overall system. This introduces problems if an artifact is refactored in any single language, since most current refactoring tools are not aware of language-external uses of the artifact. What is therefore needed is extended refactoring support across language boundaries. In this work, we explore the area of cross-language linking and refactoring, and present an approach and tool which we evaluate in a systematic fashion using automated renaming and unit testing on an open-source case study.
今天,软件应用程序通常不是只用一种编程语言编写的。在许多情况下,像Java这样的通用语言与多个特定于领域的语言(dsl)结合使用,用于系统配置、UI描述或数据库查询等不同目的。用这些不同语言定义的工件通常通过名称相互引用;在大多数情况下,这些引用对于整个系统的功能是必不可少的。如果用任何一种语言重构工件,这就会带来问题,因为大多数当前的重构工具都不知道工件的语言外部使用。因此需要的是跨语言边界的扩展重构支持。在这项工作中,我们探索了跨语言链接和重构领域,并提出了一种方法和工具,我们在一个开源案例研究中使用自动重命名和单元测试以系统的方式进行评估。
{"title":"Towards automated cross-language refactorings between Java and DSLs used by Java frameworks","authors":"Philip Mayer, Andreas Schroeder","doi":"10.1145/2541348.2541350","DOIUrl":"https://doi.org/10.1145/2541348.2541350","url":null,"abstract":"Today, software applications are usually not written in just one programming language. In many cases, a general-purpose language such as Java is combined with multiple domain-specific languages (DSLs) for diverse purposes such as system configuration, UI description, or database querying. The artifacts defined in those different languages reference each other, often by name; in most cases these references are essential for the functionality of the overall system. This introduces problems if an artifact is refactored in any single language, since most current refactoring tools are not aware of language-external uses of the artifact. What is therefore needed is extended refactoring support across language boundaries. In this work, we explore the area of cross-language linking and refactoring, and present an approach and tool which we evaluate in a systematic fashion using automated renaming and unit testing on an open-source case study.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124512540","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}
引用次数: 8
OpenRefactory/C: an infrastructure for building correct and complex C transformations OpenRefactory/C:用于构建正确和复杂的C转换的基础设施
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541349
M. Hafiz, J. Overbey, Farnaz Behrang, Jillian Hall
OpenRefactory/C is a refactoring tool and, more generally, an infrastructure that resolves the challenges of building C program transformations. In this paper, we describe its architecture, extensibility features, and the transformations implemented. We also discuss features that will make OpenRefactory/C attractive to researchers interested in collaborating to build new C program analyses and transformations.
OpenRefactory/C是一个重构工具,更一般地说,它是一个解决构建C程序转换挑战的基础设施。在本文中,我们描述了它的体系结构、可扩展性特性和实现的转换。我们还讨论了一些特性,这些特性将使OpenRefactory/C对有兴趣合作构建新的C程序分析和转换的研究人员具有吸引力。
{"title":"OpenRefactory/C: an infrastructure for building correct and complex C transformations","authors":"M. Hafiz, J. Overbey, Farnaz Behrang, Jillian Hall","doi":"10.1145/2541348.2541349","DOIUrl":"https://doi.org/10.1145/2541348.2541349","url":null,"abstract":"OpenRefactory/C is a refactoring tool and, more generally, an infrastructure that resolves the challenges of building C program transformations. In this paper, we describe its architecture, extensibility features, and the transformations implemented. We also discuss features that will make OpenRefactory/C attractive to researchers interested in collaborating to build new C program analyses and transformations.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131053831","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}
引用次数: 12
Active support for clone refactoring: a perspective 主动支持克隆重构:一个透视图
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541352
Norihiro Yoshida, Eunjong Choi, Katsuro Inoue
Clone refactoring (merging duplicate code) is a promising solution to improve the maintainability of source code. In this position paper, we discuss directions towards the advancement of clone refactoring, and show a perspective of active support based on online analysis of code modification on an editor of IDE.
克隆重构(合并重复代码)是改善源代码可维护性的一种很有前途的解决方案。在这篇意见书中,我们讨论了克隆重构的发展方向,并展示了一个基于IDE编辑器在线分析代码修改的积极支持的观点。
{"title":"Active support for clone refactoring: a perspective","authors":"Norihiro Yoshida, Eunjong Choi, Katsuro Inoue","doi":"10.1145/2541348.2541352","DOIUrl":"https://doi.org/10.1145/2541348.2541352","url":null,"abstract":"Clone refactoring (merging duplicate code) is a promising solution to improve the maintainability of source code. In this position paper, we discuss directions towards the advancement of clone refactoring, and show a perspective of active support based on online analysis of code modification on an editor of IDE.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125155101","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
What programmers say about refactoring tools?: an empirical investigation of stack overflow 程序员对重构工具有什么看法?堆栈溢出的实证研究
Pub Date : 2013-10-27 DOI: 10.1145/2541348.2541357
G. Pinto, F. Kamei
Programmers often use forums, such as StackOverflow, to easily and quickly solve their issues. Researchers then investigate those questions to better understand the state-of-use of software engineering techniques. Also, due to the quality and the great number questions and answers, the results found using such method might be difficult, or even impossible, to find using common survey techniques. In this study, we conducted a qualitative and quantitative research in order to categorize questions about refactoring tools. As a result, we presented a comprehensive classification of flaws and desirable features in refactoring tools. We also reported that programmers do not often rely on refactoring tools, but, at the same time, they are desiring number of unimplemented features.
程序员经常使用论坛,比如StackOverflow,来轻松快速地解决他们的问题。然后研究人员调查这些问题,以更好地理解软件工程技术的使用状态。此外,由于质量和大量的问题和答案,使用这种方法发现的结果可能很难,甚至不可能找到使用普通调查技术。在这项研究中,我们进行了定性和定量研究,以便对重构工具的问题进行分类。因此,我们对重构工具中的缺陷和需要的特性进行了全面的分类。我们还报道过,程序员并不经常依赖重构工具,但是,与此同时,他们需要大量未实现的特性。
{"title":"What programmers say about refactoring tools?: an empirical investigation of stack overflow","authors":"G. Pinto, F. Kamei","doi":"10.1145/2541348.2541357","DOIUrl":"https://doi.org/10.1145/2541348.2541357","url":null,"abstract":"Programmers often use forums, such as StackOverflow, to easily and quickly solve their issues. Researchers then investigate those questions to better understand the state-of-use of software engineering techniques. Also, due to the quality and the great number questions and answers, the results found using such method might be difficult, or even impossible, to find using common survey techniques. In this study, we conducted a qualitative and quantitative research in order to categorize questions about refactoring tools. As a result, we presented a comprehensive classification of flaws and desirable features in refactoring tools. We also reported that programmers do not often rely on refactoring tools, but, at the same time, they are desiring number of unimplemented features.","PeriodicalId":131474,"journal":{"name":"WRT '13","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126631825","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}
引用次数: 47
期刊
WRT '13
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1