课题基金 / 基金详情

SCOPE: Scoped Contextual Operations and Effects.

SCOPE: Scoped Contextual Operations and Effects.
范围:范围上下文操作和效果。
批准号:
EP/S028129/1
负责人:
Nicolas Wu
金额:
$33.44万
依托单位:
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2019
资助国家:
英国
项目状态:
已结题
起止时间:
2019 至 --

项目摘要

项目成果

相似基金

相关文献

中文摘要
翻译
语言无疑是人类曾经使用过的最强大的工具。虽然大多数口语是通过人们共同的思想交流和互动而有机发展起来的,但最好的编程语言是精心设计的,以流畅和精确的方式与计算机交流问题的解决方案。人类理解,一个句子的解释受到其周围语境的影响,其影响的程度决定了它的范围。Scope项目旨在将这些概念翻译和传递到编程语言领域,并丰富下一代语言设计者可以使用的工具范围。在软件工程领域,最关键的任务是预测和控制应用程序将执行的效果。效果已被证明很难掌握:它们之间的交互往往是复杂和混乱的,带有不可预测的干扰。为了维护控制,软件工程师经常使用特定于领域的语言(DSL),这些语言由可以在特定领域内组合和解释以产生所需效果的操作组成。作为单一代码块开发的应用程序很快就不可能有效地管理和理解。相反,工程师使用较小的语言和库来处理他们自己的专业任务。因此,DSL在软件工程中无处不在。它们体现在每一种编程中,从小型库和框架到编程语言本身。然而,随着需求和期望变得越来越多样化,现代应用程序及其DSL必须得到多重解释。例如,必须对它们进行分析,以了解能量需求、侧通道攻击的脆弱性、空间和时间上的效率以及与资源的交互。添加新的解释通常需要巨大的工程工作,要么需要大量的重构来计算和记录更多的信息,要么需要设计新的编译器和程序分析工具。这显然是一项昂贵而乏味的工作,可能很快就会变得不堪重负。多种交互语言的存在加剧了这一问题,每一种语言都需要自己的工具和解释。因此,迫切需要新的编程语言技术来支持开发人员必须面对这些困难的挑战。在编程语言研究中的一个令人兴奋的发展是代数效果处理程序的创新,这种技术允许程序员以模块化和复杂的方式描述和操纵语言功能的交互。这项技术的主要见解是关注一种语言的语法和语义之间的清晰分离,并以结构化的方法给出语义。当操作和它们的作用分开时,很容易对代码给出不同的解释。该方法的模块化和概念简单性吸引了学术界和工业界的极大兴趣,并迅速扩展到包括许多不同语言和各种用途的实现。不幸的是,并不是所有有用的操作都是代数的,甚至一些最基本的编程语言结构也不在该方法可以处理的范围之外。然而,还是有希望的:Scope项目的目标是扩大效果处理程序技术,以包含对范围和上下文敏感的操作,从而涵盖广泛的有用构造。以这种方式扩展我们对代数效应的理解,不仅对于将提供的重要的理论见解将是重要的,而且对于帮助软件工程师使用代数效应处理器来设计和操作DSL也是非常重要的。
英文摘要
Language is undoubtedly the most formidable tool that humanity hasever wielded. While most spoken languages evolved organically throughthe common exchange of ideas and interactions of people, the bestprogramming languages have been carefully crafted tocommunicate the solutions of problems with fluency and precision tocomputers. Humans understand that the interpretation of a sentence isaffected by its surrounding context, and the extent of itsinfluence determines its scope. The SCOPE project caims to translateand transfer these concepts to the field of programming languages, andenrich the range of tools at the disposal of the next generation oflanguage designers.In the realm of software engineering, the most critical task is topredict and control the effects that an application will perform.Effects have proven difficult to master: their interactions are oftencomplex and chaotic with unpredictable interference. To maintaincontrol, software engineers often employ domain-specific languages(DSLs) that consist of operations which can be composed andinterpreted to produce desired effects within a particular domain.An application developed as a block of monolithic code is soonimpossible to manage and understand effectively. Instead, engineerswork with smaller languages and libraries that deal with their ownspecialised tasks. As such, DSLs are ubiquitous in softwareengineering. They manifest themselves in every programming contextranging from small libraries and frameworks to programming languagesin their own right.However, as requirements and expectations have become increasinglydiverse, modern applications and their DSLs must be given multipleinterpretations. For instance, they must be analysed to understandenergy requirements, vulnerability to side-channel attacks, efficiencyin space and time, and interaction with resources.Adding a new interpretation normally incurs a tremendous engineeringeffort, either requiring considerable refactoring to calculate andrecord more information, or the design of new compilers and programanalysis tools. This is clearly a costly and tedious exercise that canquickly become overwhelming. This problem is exacerbated by thepresence of multiple interacting languages, where each one requiresits own tools and interpretations. There is therefore a pressing needfor new programming language techniques that support the developerswho must face these difficult challenges.An exciting development in programming language research that offershelp has been the innovation of algebraic effect handlers, atechnique that allows programmers to describe and manipulate theinteraction of language features in a modular and sophisticatedmanner. The main insight of the technique is to focus on a cleanseparation between the syntax and the semantics of a language and togive the semantics in a structured approach. When operations and theireffects are separated, it is easy to give different interpretations ofcode. The modularity and conceptual simplicity of the methodology hasattracted much academic and industrial interest and hasquickly spread to encompass implementations in many differentlanguages and for a variety of purposes.Unfortunately, not all useful operations are algebraic, and even someof the most fundamental programming language constructs fall outsideof what can be handled by the approach. Yet there is hope: the goal ofthe SCOPE project is to broaden the effect handlers technique toembrace operations that are sensitive to scope andcontext, thus covering a wide range of useful constructs. Extendingour understanding of algebraic effects in this way would not only beimportant for the significant theoretical insight that will beprovided, but also for the practical benefits of helping softwareengineers to use algebraic effect handlersto design and manipulate DSLs.
期刊论文(9)
专著(0)
科研奖励(0)
会议论文
Tic tac types: a gentle introduction to dependently typed programming (functional pearl)
Tic tac 类型:对依赖类型编程的简单介绍(函数式珍珠)
DOI: 10.1145/3331554.3342606
发表时间: 2019
期刊:
影响因子: --
作者: [Innes S]
通讯作者: Innes S
Algebras for weighted search
加权搜索的代数
DOI: 10.1145/3473577
发表时间: 2021
期刊: Proceedings of the ACM on Programming Languages
影响因子: --
作者: [Kidney D]
通讯作者: Kidney D
Working with source plugins
使用源插件
DOI: 10.1145/3331545.3342599
发表时间: 2019
期刊:
影响因子: --
作者: [Pickering M]
通讯作者: Pickering M
Staged sums of products
阶段性乘积总和
DOI: 10.1145/3406088.3409021
发表时间: 2020
期刊:
影响因子: --
作者: [Pickering M]
通讯作者: Pickering M
共 7 条
    海外基金