首页 > 最新文献

Proceedings of the 1988 ACM conference on LISP and functional programming最新文献

英文 中文
Object-oriented programming in scheme 面向对象程序设计
Pub Date : 1988-01-01 DOI: 10.1145/62678.62720
N. Adams, J. Rees
We describe a small set of additions to Scheme to support object-oriented programming, including a form of multiple inheritance. The extensions proposed are in keeping with the spirit of the Scheme language and consequently differ from Lisp-based object systems such as Flavors and the Common Lisp Object System. Our extensions mesh neatly with the underlying Scheme system. We motivate our design with examples, and then describe implementation techniques that yields efficiency comparable to dynamic object-oriented language implementations considered to be high performance. The complete design has an almost-portable implementation, and the core of this design comprises the object system used in T, a dialect of Scheme. The applicative bias of our approach is unusual in object-oriented programming systems.
我们描述了Scheme中支持面向对象编程的一小部分附加功能,包括一种形式的多重继承。提议的扩展与Scheme语言的精神保持一致,因此与基于Lisp的对象系统(如Flavors和Common Lisp object System)有所不同。我们的扩展与底层Scheme系统紧密配合。我们用示例来激励我们的设计,然后描述实现技术,这些技术产生的效率可与被认为是高性能的动态面向对象语言实现相媲美。完整的设计具有几乎可移植的实现,该设计的核心包括使用T (Scheme的一种方言)的对象系统。我们的方法的应用偏差在面向对象编程系统中是不寻常的。
{"title":"Object-oriented programming in scheme","authors":"N. Adams, J. Rees","doi":"10.1145/62678.62720","DOIUrl":"https://doi.org/10.1145/62678.62720","url":null,"abstract":"We describe a small set of additions to Scheme to support object-oriented programming, including a form of multiple inheritance. The extensions proposed are in keeping with the spirit of the Scheme language and consequently differ from Lisp-based object systems such as Flavors and the Common Lisp Object System. Our extensions mesh neatly with the underlying Scheme system. We motivate our design with examples, and then describe implementation techniques that yields efficiency comparable to dynamic object-oriented language implementations considered to be high performance. The complete design has an almost-portable implementation, and the core of this design comprises the object system used in T, a dialect of Scheme. The applicative bias of our approach is unusual in object-oriented programming systems.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117004583","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 52
Parallel execution of sequential scheme with ParaTran 用ParaTran并行执行顺序方案
Pub Date : 1988-01-01 DOI: 10.1145/62678.62682
Pete Tinker, M. Katz
This paper describes a system called ParaTran for executing sequential Scheme in parallel. It supports arbitrary side effects without requiring user annotations. The ParaTran runtime system detects and corrects data dependency violations using an automatic history and rollback mechanism. ParaTran is first described by analogy with Time Warp, a system for distributed simulation; this description is followed by a discussion of ParaTran's implementation and presentation of preliminary results.
本文描述了一个并行执行顺序方案的系统ParaTran。它支持任意的副作用,而不需要用户注释。ParaTran运行时系统使用自动历史记录和回滚机制检测和纠正数据依赖违规。首先将ParaTran与分布式仿真系统Time Warp进行类比;接下来是对ParaTran的实施和初步结果的讨论。
{"title":"Parallel execution of sequential scheme with ParaTran","authors":"Pete Tinker, M. Katz","doi":"10.1145/62678.62682","DOIUrl":"https://doi.org/10.1145/62678.62682","url":null,"abstract":"This paper describes a system called ParaTran for executing sequential Scheme in parallel. It supports arbitrary side effects without requiring user annotations. The ParaTran runtime system detects and corrects data dependency violations using an automatic history and rollback mechanism. ParaTran is first described by analogy with Time Warp, a system for distributed simulation; this description is followed by a discussion of ParaTran's implementation and presentation of preliminary results.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"2001 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131350286","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 41
Implementation strategies for continuations 延续的实施策略
Pub Date : 1988-01-01 DOI: 10.1145/62678.62692
William D. Clinger, Anne Hartheimer, Eric Ost
Scheme and Smalltalk continuations may have unlimited extent. This means that a purely stack-based implementation of continuations, as suffices for most languages, is inadequate. Several implementation strategies have been described in the literature. Determining which is best requires knowledge of the kinds of programs that will commonly be run. Danvy, for example, has conjectured that continuation captures occur in clusters. That is, the same continuation, once captured, is likely to be captured again. As evidence, Danvy cited the use of continuations in a research setting. We report that Danvy's conjecture is somewhat true in the commercial setting of MacScheme+Toolsmith™, which provides tools for developing Macintosh user interfaces in Scheme. These include an interrupt-driven event system and multitasking, both implemented by liberal use of continuations. We describe several implementation strategies for continuations and compare four of them using benchmarks. We conclude that the most popular strategy may have a slight edge when continuations are not used at all, but that other strategies perform better when continuations are used and Danvy's conjecture holds.
Scheme和Smalltalk的延续可能有无限的范围。这意味着,对于大多数语言来说,纯粹基于堆栈的延续实现是不够的。文献中描述了几种实现策略。决定哪一个是最好的,需要了解通常要运行的程序的种类。例如,Danvy推测延续捕获发生在集群中。也就是说,同样的延续,一旦被捕获,很可能再次被捕获。作为证据,Danvy引用了在研究环境中使用延续的例子。我们报告说,在MacScheme+Toolsmith™的商业环境中,Danvy的猜想在某种程度上是正确的,MacScheme+Toolsmith™提供了在Scheme中开发Macintosh用户界面的工具。其中包括中断驱动的事件系统和多任务处理,两者都是通过自由使用延续来实现的。我们描述了几种延续的实现策略,并使用基准测试对其中的四种进行了比较。我们得出的结论是,当根本不使用延续时,最流行的策略可能具有轻微的优势,但当使用延续时,其他策略表现更好,并且Danvy的猜想成立。
{"title":"Implementation strategies for continuations","authors":"William D. Clinger, Anne Hartheimer, Eric Ost","doi":"10.1145/62678.62692","DOIUrl":"https://doi.org/10.1145/62678.62692","url":null,"abstract":"Scheme and Smalltalk continuations may have unlimited extent. This means that a purely stack-based implementation of continuations, as suffices for most languages, is inadequate. Several implementation strategies have been described in the literature. Determining which is best requires knowledge of the kinds of programs that will commonly be run. Danvy, for example, has conjectured that continuation captures occur in clusters. That is, the same continuation, once captured, is likely to be captured again. As evidence, Danvy cited the use of continuations in a research setting. We report that Danvy's conjecture is somewhat true in the commercial setting of MacScheme+Toolsmith™, which provides tools for developing Macintosh user interfaces in Scheme. These include an interrupt-driven event system and multitasking, both implemented by liberal use of continuations. We describe several implementation strategies for continuations and compare four of them using benchmarks. We conclude that the most popular strategy may have a slight edge when continuations are not used at all, but that other strategies perform better when continuations are used and Danvy's conjecture holds.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"54 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127559394","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 61
Reification without evaluation 没有评价的物化
Pub Date : 1988-01-01 DOI: 10.1145/62678.62726
Alan Bawden
Constructing self-referential systems, e.g. Brian Smith''s 3-Lisp language, is actually more straightforward than you think. Anyone can build an infinite tower of processors (where each processor implements the processor at the next level below) by employing some common sense and one simple trick. This paper presents a simple programming language interpreter that illustrates how this can be done. Given this basically straightforward technique, processor towers might be easily constructed for a wide variety of systems to enable them to manipulate and reason about themselves.
构建自我参照系统,例如Brian Smith的3-Lisp语言,实际上比你想象的要简单得多。任何人都可以通过使用一些常识和一个简单的技巧来构建无限的处理器塔(其中每个处理器实现下一层的处理器)。本文提供了一个简单的编程语言解释器来说明如何做到这一点。有了这种基本直接的技术,可以很容易地为各种各样的系统构建处理器塔,使它们能够对自己进行操作和推理。
{"title":"Reification without evaluation","authors":"Alan Bawden","doi":"10.1145/62678.62726","DOIUrl":"https://doi.org/10.1145/62678.62726","url":null,"abstract":"Constructing self-referential systems, e.g. Brian Smith''s 3-Lisp language, is actually more straightforward than you think. Anyone can build an infinite tower of processors (where each processor implements the processor at the next level below) by employing some common sense and one simple trick. This paper presents a simple programming language interpreter that illustrates how this can be done. Given this basically straightforward technique, processor towers might be easily constructed for a wide variety of systems to enable them to manipulate and reason about themselves.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131231446","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 31
Type inference in a database programming language 数据库编程语言中的类型推断
Pub Date : 1988-01-01 DOI: 10.1145/62678.62700
A. Ohori, P. Buneman
We extend an ML-like implicit type system to include a number of structures and operations that are common in database programming including sets, labeled records, joins and projections. We then show that the type inference problem of the system is decidable by extending the notion of principal type schemes to include conditions on substitutions. Combined with Milner's polymorphic let constructor, our language also supports type inheritance.
我们扩展了一个类似于ml的隐式类型系统,以包含一些数据库编程中常见的结构和操作,包括集合、标记记录、连接和投影。然后,通过将主类型方案的概念扩展到包含替换条件,证明了系统的类型推理问题是可决定的。结合Milner的多态let构造函数,我们的语言还支持类型继承。
{"title":"Type inference in a database programming language","authors":"A. Ohori, P. Buneman","doi":"10.1145/62678.62700","DOIUrl":"https://doi.org/10.1145/62678.62700","url":null,"abstract":"We extend an ML-like implicit type system to include a number of structures and operations that are common in database programming including sets, labeled records, joins and projections. We then show that the type inference problem of the system is decidable by extending the notion of principal type schemes to include conditions on substitutions. Combined with Milner's polymorphic let constructor, our language also supports type inheritance.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122817927","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 88
Faster combinator reduction using stock hardware 更快的组合器减少使用库存硬件
Pub Date : 1988-01-01 DOI: 10.1145/62678.62716
A. Norman
When originally introduced by Turner [I], the S-K combinators seemed a very attractive basis for the execution of functional programs. In current implementations of languages it is becoming increasingly uncommon to find them used, since it has been found that them are many optimization techniques available [I, 31 that rely on illustrated that streamlined implementations of small instruction sets may compete quite well with even competent professionally built implementations of more complicated computational models,
最初由Turner [I]介绍时,S-K组合子似乎是执行函数式程序的一个非常有吸引力的基础。在当前的语言实现中,发现它们的使用变得越来越罕见,因为已经发现它们是许多可用的优化技术[I, 31],这些技术依赖于说明,小型指令集的流线型实现可以与更复杂的计算模型的专业构建实现相竞争,即使是称职的实现。
{"title":"Faster combinator reduction using stock hardware","authors":"A. Norman","doi":"10.1145/62678.62716","DOIUrl":"https://doi.org/10.1145/62678.62716","url":null,"abstract":"When originally introduced by Turner [I], the S-K combinators seemed a very attractive basis for the execution of functional programs. In current implementations of languages it is becoming increasingly uncommon to find them used, since it has been found that them are many optimization techniques available [I, 31 that rely on illustrated that streamlined implementations of small instruction sets may compete quite well with even competent professionally built implementations of more complicated computational models,","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129024836","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Exact real computer arithmetic with continued fractions 精确的真实计算机运算与连分式
Pub Date : 1988-01-01 DOI: 10.1145/62678.62681
J. Vuillemin
We introduce a representation of the computable real numbers by continued fractions. This deals with the subtle points of undecidable comparison an integer division, as well as representing the infinite 1/0 and undefined 0/0 numbers. Two general algorithms for performing arithmetic operations are introduced. The algebraic algorithm, which computes sums and products of continued fractions as a special case, basically operates in a positional manner, producing one term of output for each term of input. The transcendental algorithm uses a general formula of Gauss to compute the continued fractions of exponentials, logarithms, trigonometric functions, as well as a wide class of special functions. A prototype system has been implemented in LeLisp, and the performance of these algorithms is promising.
引入可计算实数的连分式表示。这处理了整数除法中不可确定比较的微妙点,以及表示无限的1/0和未定义的0/0数。介绍了执行算术运算的两种通用算法。作为一种特殊情况,计算连分式的和与积的代数算法基本上是以位置方式进行操作的,对每一项输入产生一项输出。超越算法使用高斯的一般公式来计算指数的连分式、对数、三角函数以及一类广泛的特殊函数。在LeLisp中实现了一个原型系统,这些算法的性能是有希望的。
{"title":"Exact real computer arithmetic with continued fractions","authors":"J. Vuillemin","doi":"10.1145/62678.62681","DOIUrl":"https://doi.org/10.1145/62678.62681","url":null,"abstract":"We introduce a representation of the computable real numbers by continued fractions. This deals with the subtle points of undecidable comparison an integer division, as well as representing the infinite 1/0 and undefined 0/0 numbers. Two general algorithms for performing arithmetic operations are introduced. The algebraic algorithm, which computes sums and products of continued fractions as a special case, basically operates in a positional manner, producing one term of output for each term of input. The transcendental algorithm uses a general formula of Gauss to compute the continued fractions of exponentials, logarithms, trigonometric functions, as well as a wide class of special functions. A prototype system has been implemented in LeLisp, and the performance of these algorithms is promising.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"2016 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114900774","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 165
The spineless G-machine 没有骨气的g型机器
Pub Date : 1988-01-01 DOI: 10.1145/62678.62717
G. Burn, S. Jones, J. D. Robson
Recent developments in functional language implementations have resulted in the G-machine, a programmed graph-reduction machine. Taking this as a basis, we introduce an optimised method of performing graph reduction, which does not need to build the spine of the expression being reduced. This Spineless G-machine only updates shared expressions, and then only when they have been reduced to weak head normal form. It is thus more efficient than the standard method of performing graph reduction. We begin by outlining the philosophy and key features of the Spineless G-machine, and comparing it with the standard G-machine. Simulation results for the two machines are then presented and discussed. The Spineless G-machine is also compared with Tim, giving a series of transformations by which they can be interconverted. These open up a wide design space for abstract graph reduction machines, which was previously unknown. A full specification of the spineless machine is given in the appendix, together with compilation rules for a simple functional language.
函数式语言实现的最新发展产生了G-machine,一种可编程的图简化机。在此基础上,我们引入了一种执行图约简的优化方法,该方法不需要构建被约简表达式的脊柱。这个没有骨气的G-machine只更新共享的表情,然后只有当它们被减少到弱头正常形式。因此,它比执行图约简的标准方法更有效。我们首先概述了无脊柱g型机的原理和主要特点,并将其与标准g型机进行比较。然后给出了两台机器的仿真结果并进行了讨论。没有脊椎的G-machine也与Tim进行了比较,给出了一系列的转换,通过这些转换,它们可以相互转换。这为抽象图约简机开辟了广阔的设计空间,这是以前未知的。附录中给出了无脊机的详细说明,以及一个简单函数式语言的编译规则。
{"title":"The spineless G-machine","authors":"G. Burn, S. Jones, J. D. Robson","doi":"10.1145/62678.62717","DOIUrl":"https://doi.org/10.1145/62678.62717","url":null,"abstract":"Recent developments in functional language implementations have resulted in the G-machine, a programmed graph-reduction machine. Taking this as a basis, we introduce an optimised method of performing graph reduction, which does not need to build the spine of the expression being reduced. This Spineless G-machine only updates shared expressions, and then only when they have been reduced to weak head normal form. It is thus more efficient than the standard method of performing graph reduction. We begin by outlining the philosophy and key features of the Spineless G-machine, and comparing it with the standard G-machine. Simulation results for the two machines are then presented and discussed. The Spineless G-machine is also compared with Tim, giving a series of transformations by which they can be interconverted. These open up a wide design space for abstract graph reduction machines, which was previously unknown. A full specification of the spineless machine is given in the appendix, together with compilation rules for a simple functional language.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131619018","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 87
&lgr;-V-CS: an extended &lgr;-calculus for scheme &lgr;-V-CS:一种扩展的&lgr
Pub Date : 1988-01-01 DOI: 10.1145/62678.62686
M. Felleisen
The &lgr;-v-CS-calculus is a conservative extension of the &lgr;-value-calculus for reasoning about programs in Scheme-like languages. The basis of the extended calculus is a symbolic rewriting semantics for imperative programs. We show with numerous examples how to state and prove equational properties of Scheme-programs in the calculus. The examples suggest that the algebraic manipulation of imperative-functional programs is as feasible and as fruitful as that of functional ones.
-v- cs演算是用于在类scheme语言中对程序进行推理的&lgr;-value演算的保守扩展。扩展演算的基础是命令式程序的符号重写语义。我们用大量的例子说明了如何在微积分中说明和证明方案的等式性质。这些例子表明,命令式函数程序的代数操作与函数式程序的代数操作一样可行和富有成效。
{"title":"&lgr;-V-CS: an extended &lgr;-calculus for scheme","authors":"M. Felleisen","doi":"10.1145/62678.62686","DOIUrl":"https://doi.org/10.1145/62678.62686","url":null,"abstract":"The &lgr;-v-CS-calculus is a conservative extension of the &lgr;-value-calculus for reasoning about programs in Scheme-like languages. The basis of the extended calculus is a symbolic rewriting semantics for imperative programs. We show with numerous examples how to state and prove equational properties of Scheme-programs in the calculus. The examples suggest that the algebraic manipulation of imperative-functional programs is as feasible and as fruitful as that of functional ones.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115510050","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 21
Objects as closures: abstract semantics of object-oriented languages 作为闭包的对象:面向对象语言的抽象语义
Pub Date : 1988-01-01 DOI: 10.1145/62678.62721
Uday S. Reddy
We discuss denotational semantics of object-oriented languages, using the concept of closure widely used in (semi) functional programming to encapsulate side effects. It is shown that this denotational framework is adequate to explain classes, instantiation, and inheritance in the style of Simula as well as SMALLTALK-80. This framework is then compared with that of Kamin, in his recent denotational definition of SMALLTALK-80, and the implications of the differences between the two approaches are discussed.
我们讨论面向对象语言的指称语义,使用在(半)函数式编程中广泛使用的闭包概念来封装副作用。结果表明,这种表意框架足以解释Simula和SMALLTALK-80风格的类、实例化和继承。然后将该框架与Kamin最近对SMALLTALK-80的指称定义进行比较,并讨论了两种方法之间差异的含义。
{"title":"Objects as closures: abstract semantics of object-oriented languages","authors":"Uday S. Reddy","doi":"10.1145/62678.62721","DOIUrl":"https://doi.org/10.1145/62678.62721","url":null,"abstract":"We discuss denotational semantics of object-oriented languages, using the concept of closure widely used in (semi) functional programming to encapsulate side effects. It is shown that this denotational framework is adequate to explain classes, instantiation, and inheritance in the style of Simula as well as SMALLTALK-80. This framework is then compared with that of Kamin, in his recent denotational definition of SMALLTALK-80, and the implications of the differences between the two approaches are discussed.","PeriodicalId":119710,"journal":{"name":"Proceedings of the 1988 ACM conference on LISP and functional programming","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1988-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114611447","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 28
期刊
Proceedings of the 1988 ACM conference on LISP and functional programming
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1