Erratic Fudgets: a semantic theory for an embedded coordination language

Erratic Fudgets: a semantic theory for an embedded coordination language
复制标题

不稳定的 Fudgets:嵌入式协调语言的语义理论

DOI:
10.1016/s0167-6423(02)00088-6
复制
发表时间:
1999
期刊:
Sci. Comput. Program.
影响因子:
--
通讯作者:
M. Carlsson
M. Carlsson
中科院分区:
--
文献类型:
--
作者:
Andrew Moran;David Sands;M. Carlsson

文献摘要

被引文献

相似文献

函数式编程语言强大的抽象机制提供了在语言本身内开发特定于领域的编程语言的方法。通常,这是通过为应用程序区域设计一组组合器(高阶可重用程序),并通过组合和协调各个组合器来构造单独的应用程序来实现的。本文关注的是这种嵌入式编程语言的成功示例,即 Fudgets,它是一个用于在惰性函数语言 Haskell 中构建图形用户界面的组合器库。 Fudget 库已被用来构建许多重要的应用程序,包括 Web 浏览器和构造类型理论证明检查器的证明编辑器界面。本文为非确定性流处理器开发了一种语义理论,该处理器是 Fudget 概念的核心。流处理器的两个特征的相互作用使得这种语义理论的发展存在问题:我们证明了高阶函数语言中的这种特征组合可以被驯服,以提供易于处理的语义理论和归纳原理,适合推理 Fudgets 的上下文等价性。
The powerful abstraction mechanisms of functional programming languages provide the means to develop domain-specific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higher-order reusable programs) for an application area, and by constructing individual applications by combining and coordinating individual combinators. This paper is concerned with a successful example of such an embedded programming language, namely Fudgets, a library of combinators for building graphical user interfaces in the lazy functional language Haskell. The Fudget library has been used to build a number of substantial applications, including a web browser and a proof editor interface to a proof checker for constructive type theory. This paper develops a semantic theory for the non-deterministic stream processors that are at the heart of the Fudget concept. The interaction of two features of stream processors makes the development of such a semantic theory problematic: We demonstrate that this combination of features in a higher-order functional language can be tamed to provide a tractable semantic theory and induction principles suitable for reasoning about contextual equivalence of Fudgets.