A lambda calculus of objects with self-inflicted extension

A lambda calculus of objects with self-inflicted extension
复制标题

具有自残扩展的对象的 lambda 演算

DOI:
10.1145/286936.286955
复制
发表时间:
1998
期刊:
Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.
影响因子:
--
通讯作者:
L. Liquori
L. Liquori
中科院分区:
--
文献类型:
--
作者:
Pietro Di Gianantonio;F. Honsell;L. Liquori

文献摘要

被引文献

相似文献

在本文中,我们调查,在功能原型为基础的语言的背景下,对象可能会扩展自己收到的消息。对象扩展自己的“自我”的可能性,被Cardelli称为自我造成的操作,在类型化的基于对象的语言中是新颖的。我们提出了一个健全的类型系统,这种演算,保证评估一个良好类型的表达式将永远不会产生一个消息未找到运行时错误。我们给出了几个例子,说明了我们的系统相对于现有的结石的对象增加的表达能力。新的类型系统还允许灵活的宽度子类型,仍然允许声音方法覆盖,以及有限形式的对象扩展。由此产生的演算似乎是一个很好的起点,严格的数学分析基于类的语言。
In this paper we investigate, in the context of functional prototype-based languages, objects which might extend themselves upon receiving a message. The possibility for an object of extending its own "self", referred to by Cardelli, as a self-inflicted operation, is novel in the context of typed object-based languages. We present a sound type system for this calculus which guarantees that evaluating a well-typed expression will never yield a message-not-found run-time error. We give several examples which illustrate the increased expressive power of our system with respect to existing calculi of objects. The new type system allows also for a flexible width-subtyping, still permitting sound method override, and a limited form of object extension. The resulting calculus appears to be a good starting point for a rigorous mathematical analysis of class-based languages.