课题基金 / 基金详情

Effect Handler Oriented Programming

Effect Handler Oriented Programming
面向效果处理程序的编程
批准号:
MR/T043830/1
负责人:
Samuel Lindley
金额:
$147.78万
依托单位:
依托单位国家:
英国
项目类别:
Fellowship
财政年份:
2021
资助国家:
英国
项目状态:
未结题
起止时间:
2021 至 --

项目摘要

项目成果

相似基金

相关文献

中文摘要
翻译
在英国软件行业仅在2018年就为英国GDP增加了1390亿英镑的经济中,这项奖学金将改变开发人员编写软件的方式。通过提供一种全新的编写和定制程序的方法,我将使软件开发人员能够构建更灵活、更易维护和更健壮的软件。计算机必须与真实的世界交互。在计算机程序中,现实世界的影响是普遍存在的,例如:并发(同时执行两个计算),分布(在不同的地方执行计算),输入,输出和概率(例如机器学习)。效果处理程序是一个通用的编程特性,可以用来实现所有这些效果。它们是由理论计算机科学家作为效应数学模型的一部分引入的。部分归功于我的努力,它们现在显示出作为一种实用编程工具的希望。工业界对效果处理器的兴趣正在增长。例如,Facebook的React Fiber是市场领先的Web应用程序React用户界面库的核心,它直接受到了效果处理程序的启发,而Uber的概率编程和统计推理工具Pyro也基本上使用了效果处理程序。初步结果表明,效果处理程序有可能支持高效的实现。尽管如此,现有的实现还处于起步阶段,需要进行研究以使其在编程方便性和性能方面都具有规模。我将发展面向效果处理程序的编程的理论和实践,作为模块化和有效实现效果的统一基础。我将开发高级(人类)和低级(机器)效果处理程序的设计和实现。通过与我的项目合作伙伴的合作,我将确保EHOP通过两项关键技术产生直接影响。破解.我将为Hack添加效果处理程序,Hack是编写Facebook服务器的高级编程语言。Hack目前提供了对并发和概率编程等特性的特别支持,我将用效果处理程序取代它们,消除了维护一些特别特性的需要,并引入了对细节的细粒度控制,如对策略的控制。这将允许用Hack编写更灵活、更易维护和更健壮的软件,最终改善数十亿Facebook用户的使用体验。WebAssembly。我将为WebAssembly设计和实现一个效果处理程序扩展,WebAssembly是一种由四大浏览器供应商支持的可移植低级字节码,旨在取代JavaScript作为Web的目标语言。目前,诸如JavaScript之类的语言提供了一系列特定的重叠并发特性。每一个都是硬连线的,必须单独维护。但是,所有这些都可以使用effecthandlers以最小的努力实现。而不是硬连线和维护几个广告功能,编译器开发人员将能够依赖于WebAssembly中的效果处理程序的单一实现。这将使编程语言实现更加灵活、可维护且可靠,最终改善数十亿网络用户的用户体验。效果处理程序的“杀手级应用程序”是并发性和分发。并发和分布的一个核心方面是通信。为了使通信安全、可靠和可靠,所有各方都必须遵守适当的协议。会话类型是一种强制执行协议遵从性的新兴技术。在过去的五年里,我将统一我的研究的两个主线,扩展效果处理程序的理论和实践,使会话类型的并发和分布特性被定义为效果处理程序。最终,这将为数十亿最终用户提供安全、可靠的通信基础设施。
英文摘要
In an economy in which the UK software industry added £139 billion ofvalue to UK GDP in 2018 alone, this fellowship will transform the waydevelopers write software. By offering a radically new way ofcomposing and customising programs, I will empower software developersto build more flexible, maintainable, and robust software.Computers must interact with the real world. In computer programs realworld effects are pervasive, e.g.: concurrency (performing twocomputations at once), distribution (performing computation indifferent places), input, output, and probability (e.g. for machinelearning).Effect handlers are a general programming feature that can be used toimplement all of these effects. They were introduced by theoreticalcomputer scientists as part of a mathematical model of effects. Thanksin part to my efforts they now show promise as a practical programmingtool. Interest in effect handlers in industry is growing. Forinstance, Facebook's React Fiber, the core of the market-leading Reactuser interface library for web applications, is directly inspired byeffect handlers, and Uber's Pyro tool for probabilistic programmingand statistical inference makes essential use of effect handlers.Preliminary results suggest effect handlers have the potential tosupport efficient implementations. Nevertheless, existingimplementations are in their infancy and research is required to makethem scale, both in terms of ease of programming and in terms ofperformance. I will develop the theory and practice of Effect HandlerOriented Programming as a uniform foundation for modular and efficientimplementation of effects. I will develop both high-level (for humans)and low-level (for machines) effect handler designs andimplementations. In collaboration with my project partners I willensure that EHOP has direct impact through two key technologies.+ Hack. I will add effect handlers to Hack, the high-level programminglanguage in which the Facebook server is written. Hack currentlyprovides ad hoc support for features such as concurrency andprobabilistic programming, which I will replace by effect handlers,eliminating the need to maintain several ad hoc features, andintroducing fine-grained control over details such as schedulingstrategies. This will allow more flexible, maintainable, and robustsoftware to be written in Hack, ultimately improving the userexperience of billions of Facebook users.+ WebAssembly. I will design and implement an effect handler extensionfor WebAssembly, a portable low-level bytecode supported by the topfour browser vendors and designed to supersede JavaScript as thetarget language for the web. Currently, languages such as JavaScriptprovide a collection of ad hoc overlapping concurrency features. Eachof these is hard-wired and has to be maintained separately. However,all of them can be implemented with minimal effort using effecthandlers. Rather than hard-wiring and maintaining several ad hocfeatures, compiler developers will be able to rely on a singleimplementation of effect handlers in WebAssembly. This will enablemore flexible, maintainable, and reliable programming languageimplementations, ultimately improving the user experience of billionsof web users.A "killer app" for effect handlers is concurrency and distribution. Acentral aspect of concurrency and distribution is communication. Forcommunication to be safe, secure, and reliable, all parties mustcomply with appropriate protocols. Session types are a nascenttechnology for enforcing protocol compliance. Unifying the two mainthreads of my research over the last half decade, I will extend thetheory and practice of effect handlers to enable session-typedconcurrency and distribution features to be defined as effecthandlers. Ultimately, this will enable safe, secure, and reliablecommunication infrastructure for billions of end users.
期刊论文(10)
专著(0)
科研奖励(0)
会议论文
Composing UNIX with Effect Handlers: A Case Study in Effect Handler Oriented Programming
用效果处理程序组成 UNIX:面向效果处理程序编程的案例研究
DOI: --
发表时间: 2021
期刊:
影响因子: --
作者: [Daniel Hillerström]
通讯作者: Daniel Hillerström
Structural Subtyping as Parametric Polymorphism
作为参数多态性的结构子类型
DOI: 10.1145/3622836
发表时间: 2023
期刊: Proceedings of the ACM on Programming Languages
影响因子: --
作者: [Tang W]
通讯作者: Tang W
Handler calculus
处理程序演算
DOI: --
发表时间: 2021
期刊:
影响因子: --
作者: [Sam Lindley]
通讯作者: Sam Lindley
A Typed Slicing Compilation of the Polymorphic RPC calculus
多态 RPC 演算的类型化切片编译
DOI: 10.1145/3479394.3479406
发表时间: 2021
期刊:
影响因子: --
作者: [Choi K]
通讯作者: Choi K
共 9 条
    海外基金