课题基金 / 基金详情

Typer: An exocompiler to program with dependent types

Typer: An exocompiler to program with dependent types
Typer:用于使用依赖类型进行编程的外编译器
批准号:
RGPIN-2018-06225
负责人:
Monnier, Stefan
金额:
$1.68万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2019
资助国家:
加拿大
项目状态:
已结题
起止时间:
2019-01-01 至 2020-12-31

项目摘要

项目成果

Monnier, Stefan的其他基金

相似基金

相关文献

中文摘要
翻译
点击翻译按钮获取中文摘要
英文摘要
In this project, I propose the development of the Typer system. Typer is an experimental programming language with support for dependent types and metaprogramming. It is based on a fairly standard core functional language similar to that of Agda and Coq, with a syntactic structure inspired from***the Lisp family of languages. But contrary to Agda and Coq which were designed as proof assistants, Typer is mainly designed as a programming***language, where practical issues of performance of the code is an important criterion.******Typer has similar goals to Scheme: provide a small core language on top of which additional functionality is provided via metaprogramming. For example, the module system and the pattern-matching are implemented with the help of \emph{macros}. This ability to extend the language via libraries was one of the main original goals of the language.******But \emph{efficiency} is a kind of functionality that's largely out of the control of this kind of metaprogramming. This is a problem for many programs where the code ends up making assumptions about the kind of optimization and compilation strategies the compiler will use. For example, a function might be written under the assumption that the compiler will properly eliminate tail recursion, resulting in unacceptable stack consumption if the compiler happens not to use this optimization, with no way for the coder to tell the compiler what he expects, nor for the compiler to indicate when the optimization was not used.******So in this project, I propose to allow libraries to extend not just the language but the compiler itself. Arguably the current design already makes it possible to write parts of what is traditionally considered \emph{compilation} in libraries. For example the macro that provides pattern matching performs what is usually called \emph{pattern match compilation}. But I propose to generalize this idea and try and move many other parts of the compiler to libraries, by implementing an***\emph{exocompiler}, i.e.~a compiler reduced to a skeleton that focuses on providing extension points where the important compilation decisions can be***taken by the compiled program itself, typically via libraries.**
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Typer: An exocompiler to program with dependent types
  • 批准号:
    RGPIN-2018-06225
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $3.35万
  • 财政年份:
    2022
  • 负责人:
    Monnier, Stefan
  • 依托单位:
Typer: An exocompiler to program with dependent types
  • 批准号:
    RGPIN-2018-06225
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $1.68万
  • 财政年份:
    2021
  • 负责人:
    Monnier, Stefan
  • 依托单位:
Typer: An exocompiler to program with dependent types
  • 批准号:
    RGPIN-2018-06225
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $1.68万
  • 财政年份:
    2020
  • 负责人:
    Monnier, Stefan
  • 依托单位:
Typer: An exocompiler to program with dependent types
  • 批准号:
    RGPIN-2018-06225
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $1.68万
  • 财政年份:
    2018
  • 负责人:
    Monnier, Stefan
  • 依托单位:
海外基金