SCOPE: Scoped Contextual Operations and Effects.
SCOPE: Scoped Contextual Operations and Effects.
批准号:
EP/S028129/1
负责人:
Nicolas Wu
金额:
$33.44万
依托单位:
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2019
资助国家:
英国
项目状态:
已结题
起止时间:
2019 至 --
中文摘要
点击翻译按钮获取中文摘要
英文摘要
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
DOI:
10.1145/3331545.3342599
发表时间:
2019
期刊:
影响因子:
--
作者:
[Pickering M]
通讯作者:
Pickering M
Staged sums of products
阶段性乘积总和
DOI:
10.1145/3406088.3409021
发表时间:
2020
期刊:
影响因子:
--
作者:
[Pickering M]
通讯作者:
Pickering M
Flexible presentations of graded monads
分级单子的灵活表示
DOI:
10.1145/3547654
发表时间:
2022
期刊:
Proceedings of the ACM on Programming Languages
影响因子:
--
作者:
[Katsumata S]
通讯作者:
Katsumata S
共 7 条
海外基金