SHF: Medium: Collaborative Research: Program Analytics: Using Trace Data for Localization, Explanation and Synthesis

SHF:媒介:协作研究:程序分析:使用跟踪数据进行本地化、解释和综合

基本信息

项目摘要

Formal program analyses have long held out the promise of lowering the cost ofcreating, maintaining and evolving programs. However, many crucial analysistasks, such as localizing the sources of errors or suggesting code repairs, areinherently ambiguous: there is no unique right answer. This ambiguityfundamentally restricts the wider adoption of formal tools by limiting users tothose with enough expertise to effectively use such ambiguous results. The keyinsight is that data-driven machine-learning approaches, which have provedsuccessful in other domains, can be applied to the data traces generated byprogrammers as they carry out development tasks. This research addresses thechallenge of ambiguity by extending classical program analysis into modernprogram analytics. This extension enhances classical symbolic methods withmodern data-driven approaches to collectively learn from fine-grained traces ofprogrammers interacting with compilers or analysis tools to iteratively modifyand fix software.The research systematically develops program analytics by pursuing researchalong two dimensions: language domains and programming tasks. First, it studiesdifferent language domains, from dynamically typed languages (Python), tostatically typed functional languages with contract systems (Haskell), tointeractive proof assistants (Coq). Second, it targets different programmingtasks, from localizing errors like null-dereferences, assertions or otherdynamic type failures, to static type errors, to completing or fixing code toeliminate an error or to obtain some desired functionality. This approach takesadvantage of a suite of new approaches that harness recent advances instatistical machine learning and fine-grained, domain specific programmerinteractions. These advantages allow the research to address the fundamentalproblem of ambiguity in classical program analysis. This has potential totransform software development by yielding a new generation of program analysistools that are efficient, applicable, and automatically customizable (e.g., to aparticular company, project, group or even individual).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.
正式的程序分析长期以来一直承诺降低创建、维护和发展程序的成本。然而,许多关键的分析任务,例如定位错误源或建议代码修复,本质上是不明确的:没有唯一的正确答案。这种模糊性从根本上限制了正式工具的更广泛采用,因为将用户限制为具有足够专业知识以有效使用此类模糊结果的用户。关键的见解是,数据驱动的机器学习方法在其他领域已被证明是成功的,可以应用于程序员在执行开发任务时生成的数据跟踪。这项研究通过将经典程序分析扩展到现代程序分析来解决模糊性的挑战。该扩展通过现代数据驱动方法增强了经典符号方法,以共同从程序员与编译器或分析工具交互的细粒度痕迹中学习,以迭代地修改和修复软件。该研究通过沿着两个维度进行研究来系统地开发程序分析:语言域和编程任务。首先,它研究不同的语言领域,从动态类型语言(Python),到带有契约系统的静态类型函数语言(Haskell),再到交互式证明助手(Coq)。其次,它针对不同的编程任务,从本地化错误(如空取消引用、断言或其他动态类型故障)到静态类型错误,再到完成或修复代码以消除错误或获得某些所需的功能。这种方法利用了一套新方法,这些新方法利用了统计机器学习和细粒度、特定领域的程序员交互的最新进展。这些优点使得该研究能够解决经典程序分析中模糊性的基本问题。这有可能通过产生高效、适用且可自动定制(例如针对特定公司、项目、团体甚至个人)的新一代程序分析工具来改变软件开发。该奖项反映了 NSF 的法定使命,并被认为是值得的通过使用基金会的智力优势和更广泛的影响审查标准进行评估来提供支持。

项目成果

期刊论文数量(2)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
CirFix: Automated Hardware Repair and Its Real-World Applications
CirFix:自动化硬件修复及其实际应用
  • DOI:
    10.1109/tse.2023.3269899
  • 发表时间:
    2023-04
  • 期刊:
  • 影响因子:
    7.4
  • 作者:
    Santiesteban, Priscila;Huang, Yu;Weimer, Westley;Ahmad, Hammad
  • 通讯作者:
    Ahmad, Hammad
CirFix: Automatically Repairing Defects in Hardware Design Code
CirFix:自动修复硬件设计代码中的缺陷
{{ 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 }}

Westley Weimer其他文献

Exception-Handling Bugs in Java and a Language Extension to Avoid Them
Java 中的异常处理错误以及避免这些错误的语言扩展
  • DOI:
    10.1007/11818502_2
  • 发表时间:
    2006-06-01
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Westley Weimer
  • 通讯作者:
    Westley Weimer
A MapReduce framework to improve template matching uncertainty
改善模板匹配不确定性的MapReduce框架
To read or to rotate? comparing the effects of technical reading training and spatial skills training on novice programming ability
阅读还是旋转?
Dynamic witnesses for static type errors (or, ill-typed programs usually go wrong)
静态类型错误的动态见证(或者,类型错误的程序通常会出错)
  • DOI:
  • 发表时间:
    2016
  • 期刊:
  • 影响因子:
    1.1
  • 作者:
    Eric L. Seidel;Ranjit Jhala;Westley Weimer
  • 通讯作者:
    Westley Weimer
InFix: Automatically Repairing Novice Program Inputs
InFix:自动修复新手程序输入

Westley Weimer的其他文献

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

{{ truncateString('Westley Weimer', 18)}}的其他基金

Collaborative Research: SHF: Medium: Near-Hardware Program Repair and Optimization
合作研究:SHF:中:近硬件程序修复和优化
  • 批准号:
    2211749
  • 财政年份:
    2022
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
SHF: Small: Collaborative Research: Understanding and Evolving Search-based Software Improvement
SHF:小型:协作研究:理解和发展基于搜索的软件改进
  • 批准号:
    1908633
  • 财政年份:
    2019
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
SHF: Small: Synthesizing Human-Readable Documentation
SHF:小型:综合人类可读的文档
  • 批准号:
    1116289
  • 财政年份:
    2011
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
Travel Grant to ESEC/FSE Doctoral Symposia
ESEC/FSE 博士研讨会旅费资助
  • 批准号:
    1138306
  • 财政年份:
    2011
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
CAREER: Scalable and Trustworthy Automatic Program Repair
职业:可扩展且值得信赖的自动程序修复
  • 批准号:
    0954024
  • 财政年份:
    2010
  • 资助金额:
    $ 30万
  • 项目类别:
    Continuing Grant
SHF: Medium: Collaborative Research: Fixing Real Bugs in Real Programs Using Evolutionary Algorithms
SHF:媒介:协作研究:使用进化算法修复实际程序中的实际错误
  • 批准号:
    0905373
  • 财政年份:
    2009
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant

相似国自然基金

基于机器学习和经典电动力学研究中等尺寸金属纳米粒子的量子表面等离激元
  • 批准号:
    22373002
  • 批准年份:
    2023
  • 资助金额:
    50 万元
  • 项目类别:
    面上项目
基于挥发性分布和氧化校正的大气半/中等挥发性有机物来源解析方法构建
  • 批准号:
    42377095
  • 批准年份:
    2023
  • 资助金额:
    49 万元
  • 项目类别:
    面上项目
中等质量黑洞附近的暗物质分布及其IMRI系统引力波回波探测
  • 批准号:
    12365008
  • 批准年份:
    2023
  • 资助金额:
    32 万元
  • 项目类别:
    地区科学基金项目
复合低维拓扑材料中等离激元增强光学响应的研究
  • 批准号:
    12374288
  • 批准年份:
    2023
  • 资助金额:
    52 万元
  • 项目类别:
    面上项目
中等垂直风切变下非对称型热带气旋快速增强的物理机制研究
  • 批准号:
    42305004
  • 批准年份:
    2023
  • 资助金额:
    30 万元
  • 项目类别:
    青年科学基金项目

相似海外基金

Collaborative Research: SHF: Medium: Enabling Graphics Processing Unit Performance Simulation for Large-Scale Workloads with Lightweight Simulation Methods
合作研究:SHF:中:通过轻量级仿真方法实现大规模工作负载的图形处理单元性能仿真
  • 批准号:
    2402804
  • 财政年份:
    2024
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Medium: Enabling GPU Performance Simulation for Large-Scale Workloads with Lightweight Simulation Methods
合作研究:SHF:中:通过轻量级仿真方法实现大规模工作负载的 GPU 性能仿真
  • 批准号:
    2402806
  • 财政年份:
    2024
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Medium: Enabling GPU Performance Simulation for Large-Scale Workloads with Lightweight Simulation Methods
合作研究:SHF:中:通过轻量级仿真方法实现大规模工作负载的 GPU 性能仿真
  • 批准号:
    2402805
  • 财政年份:
    2024
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Medium: Differentiable Hardware Synthesis
合作研究:SHF:媒介:可微分硬件合成
  • 批准号:
    2403135
  • 财政年份:
    2024
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Medium: Toward Understandability and Interpretability for Neural Language Models of Source Code
合作研究:SHF:媒介:实现源代码神经语言模型的可理解性和可解释性
  • 批准号:
    2423813
  • 财政年份:
    2024
  • 资助金额:
    $ 30万
  • 项目类别:
    Standard Grant
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了