Compilers that Preserve and Enforce Invariants and Proofs

保留并强制执行不变量和证明的编译器

基本信息

  • 批准号:
    RGPIN-2019-04207
  • 负责人:
  • 金额:
    $ 2.4万
  • 依托单位:
  • 依托单位国家:
    加拿大
  • 项目类别:
    Discovery Grants Program - Individual
  • 财政年份:
    2019
  • 资助国家:
    加拿大
  • 起止时间:
    2019-01-01 至 2020-12-31
  • 项目状态:
    已结题

项目摘要

The goal of this program is to make software more reliable by designing new software development tools that provide guarantees about the machine code used to implement all programs. We rely on software to control everything from spacecraft to pacemakers. This means even simple software errors, such as mistaking a number in imperial units for a number in metric, cause millions of dollars in damages and cost lives. The field of high-assurance software seeks to prevent software errors, but the process is costly and time consuming. This research program will simplify high-assurance software development by creating new tools that automatically rule out whole classes of errors in machine code.******Machine code is usually generated from programming languages that simplify software development by hiding the details of how computers execute 0s and 1s. For example, we think about numbers in decimal, the digit 0--9, while computers represent numbers as sequences of 0 and 1 such as "101" (the number "5"). A compiler is a program generates machine code, e.g., translates "5" into "101".******Languages often provide tools for reasoning about invariants---properties of a program that must always be true for the program to be correct. For example, some languages can prevent a program from using the imperial unit "5 ft" when a metric unit "5 m" is expected (which would have prevented the Mars Climate Orbiter disaster and saved $300 million). In these languages, the compiler checks that the invariant holds before trying to generate machine code.******A few languages, such as so-called dependently typed languages, allow the programmer to encode program invariants and proofs of correctness. Writing invariants and proofs requires extra work at first, but allows the programmer to prove that their program is safe, secure, and correct. This is necessary since, in general, we cannot automatically check arbitrary invariants, but we can check programmer provided proofs. Unfortunately, compilers for dependently typed languages do not preserve all the invariants programmers can express. So for example, while "5 ft" and "5 m" are different, the compiler will translate both to "101", allowing errors like "5 ft + 5 m = 10" even in a "proven correct" program.******This research program will design and develop new compilers that translate dependently typed programs into machine code while preserving invariants and proofs. By making compilers preserve more of what a programmer is thinking, we improve the reliability of all programs. In the short-term, this research can reduce the cost of high-assurance software, such as the software running in cars and medical devices, by providing tools to automatically rule out classes of errors. In the long-term, this work can reduce the cost and improve the performance of a broad range of software, from games to scientific computations, by allowing developers to better communicate with the compiler as it generates efficient machine code.
本程序的目标是通过设计新的软件开发工具来保证用于实现所有程序的机器码,从而使软件更加可靠。我们依靠软件来控制从航天器到心脏起搏器的一切。这意味着即使是简单的软件错误,比如把英制单位的数字误认为公制单位,也会造成数百万美元的损失和生命损失。高保证软件领域寻求防止软件错误,但是这个过程是昂贵和耗时的。该研究计划将通过创建自动排除机器代码中所有类型错误的新工具来简化高保证软件开发。******机器代码通常由编程语言生成,通过隐藏计算机如何执行0和1的细节来简化软件开发。例如,我们考虑十进制数字0- 9,而计算机将数字表示为0和1的序列,例如“101”(数字“5”)。编译器是生成机器码的程序,例如,将“5”翻译成“101”。******语言通常提供工具来推理不变量——程序的属性必须始终为真才能使程序正确。例如,某些语言可以阻止程序在使用公制单位“5米”时使用英制单位“5英尺”(这将防止火星气候轨道器的灾难并节省3亿美元)。在这些语言中,编译器在尝试生成机器码之前检查不变量是否成立。******一些语言,比如所谓的依赖类型语言,允许程序员对程序不变量和正确性证明进行编码。编写不变量和证明一开始需要额外的工作,但允许程序员证明他们的程序是安全的、可靠的和正确的。这是必要的,因为一般来说,我们不能自动检查任意不变量,但我们可以检查程序员提供的证明。不幸的是,依赖类型语言的编译器不能保留程序员可以表达的所有不变量。例如,虽然“5英尺”和“5米”是不同的,但编译器会将两者翻译为“101”,即使在“证明正确”的程序中也会出现“5英尺+ 5米= 10”这样的错误。******该研究计划将设计和开发新的编译器,将依赖类型的程序转换为机器代码,同时保留不变量和证明。通过让编译器更多地保留程序员的想法,我们提高了所有程序的可靠性。在短期内,这项研究可以通过提供自动排除各类错误的工具,降低高保证软件的成本,例如在汽车和医疗设备中运行的软件。从长远来看,这项工作可以降低成本,提高从游戏到科学计算的各种软件的性能,因为它允许开发人员在编译器生成高效的机器码时更好地与编译器通信。

项目成果

期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)

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

{{ 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 }}

Bowman, William其他文献

Atomic-resolution Observations of Grain Boundary Segregation in Multiphase Ceramics by Aberration-corrected STEM
通过像差校正 STEM 对多相陶瓷中的晶界偏析进行原子分辨率观察
  • DOI:
    10.1017/s1431927620017432
  • 发表时间:
    2020
  • 期刊:
  • 影响因子:
    2.8
  • 作者:
    Syed, Komal;Xu, Mingjie;Kok, David;Ohtaki, Kenta;Bowman, William;Mecartney, Martha
  • 通讯作者:
    Mecartney, Martha

Bowman, William的其他文献

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

{{ truncateString('Bowman, William', 18)}}的其他基金

Compilers that Preserve and Enforce Invariants and Proofs
保留并强制执行不变量和证明的编译器
  • 批准号:
    RGPIN-2019-04207
  • 财政年份:
    2022
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Discovery Grants Program - Individual
Compilers that Preserve and Enforce Invariants and Proofs
保留并强制执行不变量和证明的编译器
  • 批准号:
    RGPIN-2019-04207
  • 财政年份:
    2021
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Discovery Grants Program - Individual
Compilers that Preserve and Enforce Invariants and Proofs
保留并强制执行不变量和证明的编译器
  • 批准号:
    RGPIN-2019-04207
  • 财政年份:
    2020
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Discovery Grants Program - Individual
Compilers that Preserve and Enforce Invariants and Proofs
保留并强制执行不变量和证明的编译器
  • 批准号:
    DGECR-2019-00061
  • 财政年份:
    2019
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Discovery Launch Supplement

相似海外基金

Using Spatial Ethnography to Preserve the Legacy and Memory of Survivors from the Fukushima Nuclear Disaster
利用空间民族志保存福岛核灾难幸存者的遗产和记忆
  • 批准号:
    24K21050
  • 财政年份:
    2024
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Grant-in-Aid for Early-Career Scientists
Digital Archiving and its Use to Preserve Awa Ningyo Joruri for the Future
数字存档及其用于保护未来阿波人形净琉璃的用途
  • 批准号:
    23K11769
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
CAREER: Does long-term topography preserve details of the seismic cycle? Seeing through, and exploiting, the diverse forcings influencing actively deforming landscapes.
职业:长期地形是否保留了地震周期的细节?
  • 批准号:
    2237437
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Standard Grant
Equipment: Helium Recovery Equipment: Critical Helium Recycling System for CSUN to Preserve NMR Access for Research and Teaching
设备:氦气回收设备:CSUN 的关键氦气回收系统,以保留 NMR 用于研究和教学的通道
  • 批准号:
    2304705
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Standard Grant
THE NIH NEUROBIOBANK BRAIN AND TISSUE REPOSITORY (NBTR) TO PROVIDE SERVICES THAT WILL ACTIVELY ACQUIRE, RECEIVE, STORE, CURATE, PRESERVE, AND DISTRIBU
NIH NEUROBIOBANK 大脑和组织存储库 (NBTR) 提供积极获取、接收、存储、管理、保存和分发的服务
  • 批准号:
    10916992
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
THE NIH NEUROBIOBANK BRAIN AND TISSUE REPOSITORY (NBTR) TO PROVIDE SERVICES THAT WILL ACTIVELY ACQUIRE, RECEIVE, STORE, CURATE, PRESERVE, AND DISTRIBUTE CNS AND RELATED BIOLOGICAL SPECIMENS TO QUALIFI
NIH NEUROBIOBANK 大脑和组织存储库 (NBTR) 提供积极获取、接收、存储、整理、保存和分发 CNS 及相关生物样本的服务,以确保符合资格
  • 批准号:
    10948523
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
Creatine supplementation and resistance training to preserve muscle mass and attenuate cancer progression: A double-blind randomized controlled trial
肌酸补充剂和阻力训练可保持肌肉质量并减缓癌症进展:一项双盲随机对照试验
  • 批准号:
    10712432
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
Assessing the potential to transform our 'Just A Minute' of bone specific activity finding into a population level intervention to help preserve bone
评估将“只需一分钟”的骨特异性活动发现转化为人群水平干预措施以帮助保护骨骼的潜力
  • 批准号:
    ES/Y00793X/1
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Research Grant
A novel genetic switch with an optimal ON/OFF ratio to preserve growth performance prior to Escherichia coli autolysis for enhanced plasmid release
一种具有最佳开/关比的新型基因开关,可在大肠杆菌自溶之前保持生长性能,从而增强质粒释放
  • 批准号:
    2881246
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Studentship
Publishing People – Investigating AI’s ability to preserve - and facilitate interaction with - the knowledge, experience and specialism of industry experts
出版人员 — 调查人工智能保存并促进与行业专家的知识、经验和专业知识互动的能力
  • 批准号:
    10079562
  • 财政年份:
    2023
  • 资助金额:
    $ 2.4万
  • 项目类别:
    Collaborative R&D
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了