课题基金 / 基金详情

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 条
    海外基金