CAREER: On the Foundations of Semantic Code Search

职业:语义代码搜索的基础

基本信息

  • 批准号:
    1749936
  • 负责人:
  • 金额:
    $ 50万
  • 依托单位:
  • 依托单位国家:
    美国
  • 项目类别:
    Continuing Grant
  • 财政年份:
    2018
  • 资助国家:
    美国
  • 起止时间:
    2018-08-01 至 2025-07-31
  • 项目状态:
    未结题

项目摘要

During software development, programmers frequently use search to find code to reuse. At minimum, code reuse requires that the behavior of the found code satisfies the needs of the programmer. Current search tools consume a textual description of the desired code as a query, which ignores the behavior of the source code. Semantic code search finds code based on behavior, and recent research has demonstrated its potential to find source code to reuse code as well as repair software faults. Challenges arise when 1) the desired code does not exist; 2) there are too many results to navigate efficiently; or 3) it is difficult to differentiate between similar code snippets. These challenges are especially pronounced for programmers in languages that are less supported, such as those used by end-user programmers. This research uses an approach to semantic search that leverages a constraint solver as the matching engine. Code fragments are indexed using symbolic analysis to obtain a constraint representation of the code behavior. Given a query in the form of input and output behavior examples, and constraints that represent the code's behavior, the solver determines if the code satisfies the query. This research develops novel techniques to 1) find approximate solutions to semantic queries; 2) enable richer query models; 3) use the constraints to characterize the differences and similarities in behavior between code snippets; and 4) efficiently navigate the space of potential solutions. The broader impact of this research is on the millions of end-user programmers and professional programmers, allowing them to more effectively reuse code.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
在软件开发过程中,程序员经常使用搜索来查找要重用的代码。代码重用至少要求找到的代码的行为满足程序员的需要。当前的搜索工具使用所需代码的文本描述作为查询,这忽略了源代码的行为。语义代码搜索基于行为来查找代码,最近的研究已经证明了它在查找源代码以重用代码以及修复软件故障方面的潜力。当1)所需的代码不存在; 2)有太多的结果无法有效导航;或3)难以区分相似的代码片段时,就会出现挑战。这些挑战对于使用不太受支持的语言的程序员来说尤其明显,例如最终用户程序员使用的语言。本研究使用的方法,语义搜索,利用约束求解器作为匹配引擎。使用符号分析来索引代码片段以获得代码行为的约束表示。给定输入和输出行为示例形式的查询以及表示代码行为的约束,求解器确定代码是否满足查询。这项研究开发了新的技术,以1)找到语义查询的近似解决方案; 2)实现更丰富的查询模型; 3)使用约束来表征代码片段之间行为的差异和相似性;以及4)有效地导航潜在解决方案的空间。 这项研究对数百万最终用户程序员和专业程序员产生了更广泛的影响,使他们能够更有效地重用代码。该奖项反映了NSF的法定使命,并通过使用基金会的知识价值和更广泛的影响审查标准进行评估,被认为值得支持。

项目成果

期刊论文数量(17)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
How Graduate Computing Students Search When Using an Unfamiliar Programming Language
An Experience Report on Introducing Explicit Strategies into Testing Checklists for Advanced Beginners
关于将显式策略引入高级初学者测试清单的经验报告
Understanding Similar Code through Comparative Comprehension
通过比较理解来理解相似的代码
Exploring Regular Expression Evolution
探索正则表达式的演变
  • DOI:
    10.1109/saner.2019.8667972
  • 发表时间:
    2019
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Wang, Peipei;Bai, Gina R.;Stolee, Kathryn T.
  • 通讯作者:
    Stolee, Kathryn T.
SLACC: Simion-based Language Agnostic Code Clones
{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

Kathryn Stolee其他文献

Kathryn Stolee的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('Kathryn Stolee', 18)}}的其他基金

Improving Software Testing Education through Lightweight Explicit Testing Strategies and Feedback
通过轻量级显式测试策略和反馈改进软件测试教育
  • 批准号:
    2141923
  • 财政年份:
    2022
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
SHF: SMALL: Automated Discovery of Cross-Language Program Behavior Inconsistency
SHF:SMALL:跨语言程序行为不一致的自动发现
  • 批准号:
    2006947
  • 财政年份:
    2020
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
SHF: Small: Supporting Regular Expression Testing, Search, Repair, Comprehension, and Maintenance
SHF:小型:支持正则表达式测试、搜索、修复、理解和维护
  • 批准号:
    1714699
  • 财政年份:
    2017
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
SHF: Medium: Collaborative Research: Semi and Fully Automated Program Repair and Synthesis via Semantic Code Search
SHF:媒介:协作研究:通过语义代码搜索进行半自动化和全自动程序修复和合成
  • 批准号:
    1645136
  • 财政年份:
    2016
  • 资助金额:
    $ 50万
  • 项目类别:
    Continuing Grant
SHF: EAGER: Collaborative Research: Demonstrating the Feasibility of Automatic Program Repair Guided by Semantic Code Search
SHF:EAGER:协作研究:展示语义代码搜索引导的自动程序修复的可行性
  • 批准号:
    1646813
  • 财政年份:
    2016
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
SHF: Medium: Collaborative Research: Semi and Fully Automated Program Repair and Synthesis via Semantic Code Search
SHF:媒介:协作研究:通过语义代码搜索进行半自动化和全自动程序修复和合成
  • 批准号:
    1563726
  • 财政年份:
    2016
  • 资助金额:
    $ 50万
  • 项目类别:
    Continuing Grant
SHF: EAGER: Collaborative Research: Demonstrating the Feasibility of Automatic Program Repair Guided by Semantic Code Search
SHF:EAGER:协作研究:展示语义代码搜索引导的自动程序修复的可行性
  • 批准号:
    1446932
  • 财政年份:
    2014
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant

相似海外基金

SHF: Small: Collaborative Research: Semantic Foundations for Hole-Driven Development
SHF:小型:协作研究:空洞驱动开发的语义基础
  • 批准号:
    1817145
  • 财政年份:
    2018
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
SHF: Small: Collaborative Research: Semantic Foundations for Hole-Driven Development
SHF:小型:协作研究:空洞驱动开发的语义基础
  • 批准号:
    1814900
  • 财政年份:
    2018
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
Semantic Foundations for Interactive Programs
交互式程序的语义基础
  • 批准号:
    EP/N02706X/1
  • 财政年份:
    2016
  • 资助金额:
    $ 50万
  • 项目类别:
    Research Grant
Semantic Foundations for Interactive Programs
交互式程序的语义基础
  • 批准号:
    EP/N02706X/2
  • 财政年份:
    2016
  • 资助金额:
    $ 50万
  • 项目类别:
    Research Grant
Disagreement in Philosophy. Semantic and Epistemological Foundations
哲学上的分歧。
  • 批准号:
    283100111
  • 财政年份:
    2015
  • 资助金额:
    $ 50万
  • 项目类别:
    Research Grants
Semantic Foundations for Gradual Typing
渐进打字的语义基础
  • 批准号:
    482312-2015
  • 财政年份:
    2015
  • 资助金额:
    $ 50万
  • 项目类别:
    University Undergraduate Student Research Awards
Semantic Foundations for Real-World Systems
现实世界系统的语义基础
  • 批准号:
    EP/H005633/1
  • 财政年份:
    2010
  • 资助金额:
    $ 50万
  • 项目类别:
    Fellowship
Semantic Foundations for Composition and Interoperation of Open Systems
开放系统的组成和互操作的语义基础
  • 批准号:
    9633363
  • 财政年份:
    1996
  • 资助金额:
    $ 50万
  • 项目类别:
    Continuing Grant
Semantic Foundations for Composition and Interoperation of Open Systems
开放系统的组成和互操作的语义基础
  • 批准号:
    9633419
  • 财政年份:
    1996
  • 资助金额:
    $ 50万
  • 项目类别:
    Standard Grant
Semantic foundations of concurrent systems
并发系统的语义基础
  • 批准号:
    104873-1989
  • 财政年份:
    1991
  • 资助金额:
    $ 50万
  • 项目类别:
    Discovery Grants Program - Individual
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了