From: IN%"peter@Nexus.YorkU.CA" "Peter Roosen-Runge" 1-AUG-1990 01:12:34.33 To: cs100006@YUSol CC: Subj: Return-path: peter@Nexus.YorkU.CA Received: from JNET-DAEMON by YUSol; Wed, 1 Aug 90 01:12 EDT Received: From YORKVM1(MAILER) by YUSOL with Jnet id 7691 for CS100006@YUSOL; Wed, 1 Aug 90 01:12 EDT Received: from YUOrion by VM1.YORKU.CA (Mailer R2.07) with BSMTP id 4443; Wed, 01 Aug 90 01:13:17 EDT Received: from nexus.yorku.ca by Orion.YorkU.CA; Wed, 1 Aug 90 01:11 EDT Received: by nexus.yorku.ca id 6150; Wed, 1 Aug 90 01:10:59 EDT Date: Wed, 1 Aug 90 01:10:44 EDT From: Peter Roosen-Runge To: cs100006@YUSol Message-Id: <90Aug1.011059edt.6150@nexus.yorku.ca> Path: yunexus!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!cs.ut exas.edu!sdd.hp.com!decwrl!uunet!edsews!edsdrd!mhi From: mhi@edsdrd.eds.com (Mamdouh Ibrahim) Newsgroups: comp.object Subject: Re: Reflective Languages Message-ID: <115@altair.edsdrd.eds.com> Date: 25 Jul 90 19:13:38 GMT Article-I.D.: altair.115 Posted: Wed Jul 25 15:13:38 1990 References: <8800@ubc-cs.UUCP> Organization: EDS Research and Development, Auburn Hills, MI 48057 Lines: 86 In article <8800@ubc-cs.UUCP>, morrison@cs.ubc.ca (Rick Morrison) writes: > There have been several references to reflective languages here recently > including at least one posting claiming to provide a definition. > Now, I'm hardly prepared to admit the existence of programs that can > "reason" about gray elephants or birds that don't fly, let alone themselves. > Would someone please provide a concrete example of the application of > reflective capabilities in a language that supports such. In particular, > it would be useful to highlight why the task cannot be accomplished > in a "conventional" language. Although reflective languages are not fully matured yet, the research in this area has provided interesting results. For example, meta-rules [1,5] in rule- based languages have knowledge about the structure of problem-domain rules that constitute the program code. The interpreter of these languages can invoke the meta-rules to control the execution of rules or generate new ones during computation. The same approach is applicable to object-oriented languages. Metalevel structures-- metaobjects and metaclasses in object- oriented languages--provide reflective capabilities that can monitor the activities of problem-domain objects and control their behavior [2,6,7]. Another application of reflective capabilities of a language is to facilitate language extensions to support other programming paradigms [3,4]. Reflection in this language is the result of representing both the language constructs and their evaluation behaviors as objects. The language was then easily extended to add rule-based and logic programming by defining new constructs and their corresponding behavior objects. Extensibility of non-reflective languages, though possible, requires modification of the language internals by the language designer and not the user of the language. In addition, reflective languages provide natural debugging and tracing facilities as part of the language and not as facilities supplied by the external environment as is the case with non-reflective languages. However, the most important impact of reflective languages has not yet been explored. Research in machine learning must eventually take advantage of the reflective capabilities of programming languages in order to allow programs to modify themselves dynamically as they learn. > If I squint my eyes and don't look too closely the idea sounds interesting, > but at the moment I have the uneasy feeling that reflection is yet > another AI boondoggle for attracting research bucks. If the idea is interesting we should not stop researching it just because it seems difficult to achieve. After all, not long ago the idea of putting a man on the moon was considered an unrealistic dream. [1] Davis, R. and Lenat, D., Knowledge-Based systems in Artificial Intelligence, McGraw-Hill, NY,1982. [2] Ibrahim, M. H. and Cummins, F. A., "KSL: A Reflective Object-Oriented Programming Language," Proceedings of the IEEE Computer Society International Conference on Computer Languages, 1988, pp. 186-193. [3] Ibrahim, M. H. and Cummins, F. A., "KSL/Logic: Integration of Logic with Objects," Proceedings of the IEEE Computer Society International Conference on Computer Languages, 1990, pp. 228-235. [4] Ibrahim, M. H. and Woyak, S. W., "An Object-Oriented Environment for Multiple AI Paradigms," To appear in the Second IEEE Computer Society International Conference on Tools for Artificial Intelligence, Washington DC, November, 1990. [5] Laird, J., Rosenbloom, P., and Newell, A., "Chunking in SOAR: The Anatomy of General Learning Mechanism," Machine Learning, Vol. 1, No. 1, Kluwer Academic Publishers, 1986. [6] Maes, P., "Concepts and Experiments in Computational Reflection," Proccedings of OOPSLA '87, 1987, pp. 147-155. [7] Watanabe, T. and Yonezawa, A., "Reflection in an Object-Oriented Concurrent Language," Proceedings of OOPSLA '88, 1988, pp. 306-315. Mamdouh H. Ibrahim - EDS Research & Development 3551 Hamlin Rd., 4th Floor Auburn Hills, MI 48057 (313) 370-1629 mhi@edsdrd.eds.com