Moebius: Logical Principles for Type-Safe Meta-Programming

Moebius:类型安全元编程的逻辑原理

基本信息

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

项目摘要

Software is everywhere around us and our society increasingly depends on its well-functioning. However, building safe and efficient software often must balance very different competing demands. Good software design practices call for abstractions that separate programs into modular components that can be exchanged, reused, and verified independently from each other. To achieve the desired performance, however, it is critical to customize the code depending on the application domain. These two goals seem at odds. One approach to achieve both is meta-programming -- the art of writing programs that generate and manipulate other programs. This opens the possibility to exploit domain-specific knowledge to build high-performance programs and complements general program optimizations a compiler would employ. Unfortunately, writing safe meta-programs remains very challenging and frustrating, as traditional testing techniques can only be used when eventually running the generated code, but not at the time when the code is generated. To make it easier to write meta-programs, tools that allow us to detect errors during code generation -- instead of when running the generated code -- are essential. Our long-term vision is to introduce a new programming paradigm for safe meta-programming where we statically verify safety guarantees about the code generation and the code itself. Here, almost all debugging is done during code generation instead of when executing and testing the generated code at a later stage. In the long-term, this will make writing and maintaining meta-programs substantially easier. It will allow us to exploit the full potential of meta-programming without sacrificing reliability of and trust in the software we are producing and running. Our long-term goals are: 1) to ensure that we can correctly compose generated code with other programs; 2) to provide programmers with appropriate abstractions that allow them to generate and to smoothly analyze generated code fragments subsequently by pattern matching on code; 3) to make it routine work for programmers to certify functional correctness of generated code. To achieve these goals, we pursue the following short-term objectives: to develop a syntactic and semantic foundation for type-safe meta-programming based on modal logic and to implement and evaluate a proof-of-concept prototype using realistic applications. This research program has the potential to impact a wide range of technologies: from generating optimized code for matrix computations in machine learning to cryptographic message authentication in secure network protocols, which sit at the heart of Google Chrome. These examples illustrate the critical role meta-programming currently plays in research and industrial applications. Our research hence ensures the continued growth of a safe and competitive IT infrastructure and strengthens Canada's leadership in the technology sector.
软件在我们周围无处不在,我们的社会越来越依赖于它的良好运行。然而,构建安全和高效的软件通常必须平衡非常不同的竞争需求。好的软件设计实践需要抽象,将程序分成可以相互独立地交换、重用和验证的模块化组件。然而,要获得所需的性能,根据应用程序域自定义代码是至关重要的。这两个目标似乎并不一致。实现这两个目标的一种方法是元编程--编写生成和操作其他程序的程序的艺术。这打开了利用领域特定知识来构建高性能程序的可能性,并补充了编译器将采用的通用程序优化。不幸的是,编写安全的元程序仍然非常具有挑战性和令人沮丧,因为传统的测试技术只能在最终运行生成的代码时使用,而不是在生成代码的时候使用。为了使编写元程序变得更容易,允许我们在代码生成期间而不是在运行生成的代码时检测错误的工具是必不可少的。我们的长期愿景是为安全的元编程引入一种新的编程范例,其中我们静态地验证代码生成和代码本身的安全保证。在这里,几乎所有的调试都是在代码生成期间完成的,而不是在以后执行和测试生成的代码时完成。从长远来看,这将大大简化元程序的编写和维护。它将允许我们在不牺牲我们正在生产和运行的软件的可靠性和信任的情况下,充分发挥元编程的潜力。我们的长期目标是:1)确保我们可以与其他程序正确地组合生成的代码;2)为程序员提供适当的抽象,使他们能够生成生成的代码片段,并在随后通过对代码进行模式匹配来平滑地分析生成的代码片段;3)使程序员认证生成的代码的功能正确性成为例行公事。为了实现这些目标,我们追求以下短期目标:开发基于模态逻辑的类型安全元编程的语法和语义基础,并使用实际应用程序实现和评估概念验证原型。这项研究计划有可能影响广泛的技术:从为机器学习中的矩阵计算生成优化代码,到安全网络协议中的加密消息身份验证,这些都是Google Chrome的核心。这些例子说明了元编程目前在研究和工业应用中扮演的关键角色。因此,我们的研究确保了安全和有竞争力的IT基础设施的持续增长,并加强了加拿大在技术领域的领导地位。

项目成果

期刊论文数量(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 }}

Pientka, Brigitte其他文献

Fair Reactive Programming
  • DOI:
    10.1145/2535838.2535881
  • 发表时间:
    2014-01-01
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Cave, Andrew;Ferreira, Francisco;Pientka, Brigitte
  • 通讯作者:
    Pientka, Brigitte
Well-founded recursion with copatterns and sized types
  • DOI:
    10.1017/s0956796816000022
  • 发表时间:
    2016-01-01
  • 期刊:
  • 影响因子:
    1.1
  • 作者:
    Abel, Andreas;Pientka, Brigitte
  • 通讯作者:
    Pientka, Brigitte
Contextual modal type theory
  • DOI:
    10.1145/1352582.1352591
  • 发表时间:
    2008-01-01
  • 期刊:
  • 影响因子:
    0.5
  • 作者:
    Nanevski, Aleksandar;Pfenning, Frank;Pientka, Brigitte
  • 通讯作者:
    Pientka, Brigitte

Pientka, Brigitte的其他文献

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

{{ truncateString('Pientka, Brigitte', 18)}}的其他基金

Beluga: Building Trustworthy Software Systems through Programming Proofs
Beluga:通过编程证明构建值得信赖的软件系统
  • 批准号:
    RGPIN-2017-03895
  • 财政年份:
    2021
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Beluga: Building Trustworthy Software Systems through Programming Proofs
Beluga:通过编程证明构建值得信赖的软件系统
  • 批准号:
    RGPIN-2017-03895
  • 财政年份:
    2020
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Beluga: Building Trustworthy Software Systems through Programming Proofs
Beluga:通过编程证明构建值得信赖的软件系统
  • 批准号:
    RGPIN-2017-03895
  • 财政年份:
    2019
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Beluga: Building Trustworthy Software Systems through Programming Proofs
Beluga:通过编程证明构建值得信赖的软件系统
  • 批准号:
    RGPIN-2017-03895
  • 财政年份:
    2018
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Beluga: Building Trustworthy Software Systems through Programming Proofs
Beluga:通过编程证明构建值得信赖的软件系统
  • 批准号:
    RGPIN-2017-03895
  • 财政年份:
    2017
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Proofware: establishing trustworthy computing through programming with proofs
Proofware:通过证明编程建立可信计算
  • 批准号:
    298177-2012
  • 财政年份:
    2016
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Proofware: establishing trustworthy computing through programming with proofs
Proofware:通过证明编程建立可信计算
  • 批准号:
    298177-2012
  • 财政年份:
    2015
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Proofware: establishing trustworthy computing through programming with proofs
Proofware:通过证明编程建立可信计算
  • 批准号:
    298177-2012
  • 财政年份:
    2014
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual
Proofware: establishing trustworthy computing through programming with proofs
Proofware:通过证明编程建立可信计算
  • 批准号:
    429610-2012
  • 财政年份:
    2014
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Accelerator Supplements
Proofware: establishing trustworthy computing through programming with proofs
Proofware:通过证明编程建立可信计算
  • 批准号:
    298177-2012
  • 财政年份:
    2013
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Discovery Grants Program - Individual

相似海外基金

Establishment of STEAM competency development program based on general-purpose logical thinking
基于通用逻辑思维的STEAM能力培养方案建立
  • 批准号:
    23K02151
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
Revolutional Peptide Synthesis and Logical Molecular Design
革命性的肽合成和逻辑分子设计
  • 批准号:
    23H05407
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Grant-in-Aid for Specially Promoted Research
CAREER: Logical Form Induction
职业:逻辑形式归纳
  • 批准号:
    2237175
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Continuing Grant
PLEXUS: Philosophical, Logical, and Experimental routes to substructurality
PLEXUS:通往底层的哲学、逻辑和实验路线
  • 批准号:
    EP/X038246/1
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Research Grant
CIF: Small: Quantum LDPC codes: structure and logical operations
CIF:小:量子 LDPC 码:结构和逻辑运算
  • 批准号:
    2330909
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Standard Grant
CRII: SHF: Codata: A Logical Fusion of Object-Oriented and Functional Programming
CRII:SHF:Codata:面向对象和函数式编程的逻辑融合
  • 批准号:
    2245516
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Standard Grant
Empirical Study of the Effects of Interactive Learning on Learners' Logical Thinking
互动学习对学习者逻辑思维影响的实证研究
  • 批准号:
    23K02775
  • 财政年份:
    2023
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
CAREER: Logical Reasoning of Networks with Partial Knowledge
职业:使用部分知识进行网络的逻辑推理
  • 批准号:
    2145242
  • 财政年份:
    2022
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Continuing Grant
Collaborative Research: 2D Ambipolar Machine Learning & Logical Computing Systems
合作研究:2D 双极机器学习
  • 批准号:
    2154314
  • 财政年份:
    2022
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Standard Grant
SBIR Phase I: Low-Density Logical Qubit Parity Coding
SBIR 第一阶段:低密度逻辑量子位奇偶校验编码
  • 批准号:
    2213187
  • 财政年份:
    2022
  • 资助金额:
    $ 4.66万
  • 项目类别:
    Standard Grant
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了