Reflective computation in object-oriented concurrent systems and its applications

Reflective computation in object-oriented concurrent systems and its applications
复制标题

面向对象并发系统中的反射计算及其应用

DOI:
10.1145/75199.75209
复制
发表时间:
1989
期刊:
International Workshop on Software Specification and Design
影响因子:
--
通讯作者:
A. Yonezawa
A. Yonezawa
中科院分区:
--
文献类型:
--
作者:
Takuo Watanabe;A. Yonezawa

文献摘要

被引文献

相似文献

反思是对系统本身的推理和作用的过程。在传统的计算系统中,计算是对代表(或模型)实体的数据进行的。相比之下,反射计算系统必须包含一些数据,这些数据表示(或模型)结构和计算方面自身的Metalevel信息。此类数据称为自我代表,必须在系统本身中访问和修改,更重要的是,对此类数据进行的更改必须因因果反映/连接到所执行的实际计算。计算反思的动机是通过动态修改ISYSTEY的内部组织来使对象级计算有效地执行。最近,提出了几种支持计算反射的编程语言。这种语言的反思性设施不仅为我们提供了强大的表现力,而且还鼓励对计算的模块化描述 - 它们引入了模块化的新维度(方向),这是对象级描述和MET&Level&Level描述的分离。 3-LISP [2],3-KRS [L]和ABCL/R [J]是此类语言的示例。重要的是,许多特殊功能通常由传统语言的系统调用提供 - 可以使用反射性语言构造以更自然和模块化的方式来描述。请注意,使用这种语言,由于其强大的表现力,它们的语言内核非常简单。许多复杂的语言功能/构造可以使用其反思性编程设施有效定义。因此,它们也可用于构建新语言功能的原型。
Reflection is the process of reasoning about and acting upon the system itselfl2,1]. In a conventional computational system, computation is performed on data that represent (or model) entities which are ezternal to the system. In contrast, a reflective computational system must contain some data which represent (or model) the structural and computational aspects the metalevel information of itself. And such data, whiclh is called self-representation, must be accessible and modifiable within the system itself, and more importantly, changes made to such data must be causally reflected/connected to the actual computations being performed. The motivation of computational reflection is to make the object-level computation perform effectively by dynamically modifying the internal organization of the isystem. Recently, several programming languages which support computational reflection are proposed. Reflective facilities of such languages not only provide us with powerful expressiveness, but also encourage modular descriptions of computation -they introduce a new dimension (direction) of modularity, which is the separation of object-level descriptions and met&level descriptions. 3-Lisp[2], 3-KRS[l], and ABCL/R[J] are examples of such languages. It is important that many of the special functionalities often provided by system calls in conventional languages -can be described using reflective language constructs in a more natural and modular way. Notice, in such languages, that their language kernels are rather simple because of their powerful expressiveness. Many complex language features/constructs can be effectively defined using their reflective programming facilities. Thus, they are also useful to build prototypes of new language features.