| Brian C. Smith. Reflection and semantics in LISP. In Eleventh ACM Symposium on Principles of Programming Languages, pages 23--35, 1984. 21 |
....length m, and the notation i=1 denotes the concatenation operator on bindings, discussed on page 8. This completes the semantics of the core language. 5 Related Work Aspect oriented programming is presented in [KLM 97] which shows how several elements of prior work, including reflection [Smi84] metaobject protocols [KdR91] subject oriented programming [HO93] adaptive programming [Lie96] and composition filters [AWB 94] all enable better control over modularization 17 of crosscutting concerns. A variety of models of AOP are presented in [CAC01] AspectJ [KHH 01] is an effort ....
Brian C. Smith. Reflection and semantics in Lisp. In Conf. Rec. 11th ACM Symposium on Principles of Programming Languages, pages 23--35, 1984.
....and functions; i.e. a large part of Lisp s language specification is implemented as extensions to the language kernel. 1.1.2. 2 Basic Concepts of Reflective Concurrent Object oriented Languages Based on this observation, several studies, including this study, focus on computation reflection[71, 72, 112] as a theory of extensible languages. In reflective languages, customizable meta objects, which are the abstract implementation of a language, gives extensibility in a separated and portable manner. The rest of the section gives basic concepts in reflective concurrent object oriented languages, by ....
....Languages and Implementation Techniques This chapter first introduces the notion of reflection, and then reviews implementation techniques of reflective languages. 2. 1 Computational Reflection Computational reflection is a computational process that is performed on its own computation[72, 112]. A computational system, whose purpose is to solve a certain problem, manipulates data objects, which represent entities in the problem domain, according to some algorithm. A system is called reflective when its problem domain includes its own activity; i.e. how the system solves a problem. In ....
[Article contains additional citation context not shown here]
Brian Cantwell Smith. Reflection and semantics in Lisp. In Conference record of Symposium on Principles of Programming Languages, pp. 23--35, 1984.
....to evidence such evolving behavior. Meta Levels. Meta levels of system design and development are gaining attention for their expressive and descriptive power. Such constructs and theories include metaobject protocols [102] aspects [103] subject oriented programming [78] and reflection [114, 151]. A complete methodology must be able to capture all of the meta levels of the system being modeled. Components. Component architectures are at the root of most software development today. The component, as a base level of abstraction, is the appropriate core construct for the language, model, ....
Brian C. Smith. Reflection and semantics in LISP. In ACM Symposium on Principles of Programming Languages, pages 23--35. Association of Computing Machinery, 1984.
....middleware Meta programming techniques have been a focus of research for many years. For example, the Common List Object System (CLOS) is an early example of a sophisticated Meta Object Protocol (MOP) 17] Meta programming techniques were used initially in artificial intelligence research [34, 22], but are now being applied in systems software research, where they can make ORB middleware more dynamically configurable, adaptive, and reflective. An example of this cross fertilization is dynamicTAO [18] from the University of Illinois, Urbana Champaign, which illustrates that The ADAPTIVE ....
....and adaptation; the representation is causally connected to the underlying behavior it describes. A good reflective interface makes it possible to open up a software system implementation, without revealing unnecessary implementation details or compromising portability. Moreover, as described in [34], reflective techniques allow implementation particulars to be exposed in a way that satisfies two important criteria: 1. The access to the implementation is at an appropriately high level of abstraction and 2. The access is effective, in the sense that adjustment must actually change the system ....
Brian C. Smith. Reflection and Semantics in Lisp. In Procedings 11th Annual ACM Symposium on Principles of Programming Languages, pages 23--35, Salt Lake City, Utah, January 1984.
....can modify them, and can easily append new strategies to them by adding methods. Besides, using interfaces, applications can change the strategies in runtime. The result of alteration of them reflects the method selection necessarily. Namely, applications in LEAD can realize reflective [4, 7] behaviors. Behaving reflectively, applications can realize to limit their functionalities temporarily according to the state of runtime environments, and can release the limitation. When the state of runtime environments changes, if there is a mechanism which informs applications of occurrence ....
Brian Cantwell Smith. Reflection and Semantics in Lisp. In Proceedings of the ACM Symposium on Principles of Programming Languages (POPL'84), pages 23--35, 1984.
....most importantly, we explicitly make the entire system reflective by considering these programs that process the wrappings to be resources also, and wrapping them, so that all of our integration support processes apply to themselves, too. The entire system is therefore Computationally Reflective [77] [1] 78] 61] 36] 42] It is this ability of the system to analyze and modify its own behavior that provides the power and flexibility of resource use. 3.2 Wrapping Processes The processes that use the wrapping information are as important to us as the information itself; they are an ....
Brian Cantwell Smith, "Reflection and Semantics in LISP", Proceedings of PoPL'84: The Eleventh Annual ACM Symposium on Principles of Programming Languages, 15-18 January 1984, Salt Lake City (1984)
....of this terminology and theory we refer to [Smi82, Ste94b] The self referential nature of reflective systems makes them inherently very complicated both theoretically and with respect to implementation. Issues such as reflective overlap, metastability, infinite towers etc. need to be considered [Smi82, Smi84, Mae87, WF88, KdRB91, Ste94b, DVS95]. The complications with reflection mainly have one common cause: its selfreferential nature creates confusion between what is meta and what is base . Sometimes what is meta can be base at the same time and vice versa. A simple meta system does not have this problem and has a clean ....
....the Java base language program. The theory behind such a system and its implementation are very complicated matters. It would require considerable research effort to design and implement this system. For more detailed information about matters related to reflection and infinite towers we refer to [Smi82, Smi84, Mae87, WF88, KdRB91, Ste94b, DVS95]. 11.7 Using and Deducing Very High Level Information In this dissertation we have focussed on using logic meta programming to generate code. The information used for this purpose was usually rather basic and relatively low level information about types: subtype information, basic type ....
Brian C. Smith. Reflection and semantics in LISP. Report ISL-3, ACM/ Xerox PARC, Intell. Systems Lab., Palo Alto, CA, June 1984.
....call this protocol the evolutionary metaobject protocol (EMOP) The EMOP will allow the implementation to take advantage of the reflective and introspective facilities of the meta layer. Reflection has been widely recognized as a powerful and flexible mechanism to implement programming languages [Smi84, dRS84, Coi87, WY88, MC93, Mul94] or as Kiczales et al. KdRB91] point out, entire regions of programming languages. Watanabe and Yonezawa [WY88] define reflection to be the process of reasoning about and acting upon itself. A language architecture where reflection is paired with metaclasses ....
Brian Cantwell Smith. Reflection and Semantics in Lisp. In ACM Symposium on Principles of Programming Languages, pages 23--35, Salt Lake City, UT, January 1984. ACM Press.
....themselves to implementation of simple core languages by separating hard to beimplemented mechanisms as extensions. Based on those observations, we are developing a reflective object oriented concurrent language ABCL R3, in which we provide such extensibility via computational reflection[Mae87, Smi84] In ABCL R3, meta objects provide abstraction with which the user can extend or modify crucial mechanisms of objects, including method invocation request, method dispatch, state management, and mutual exclusion. In addition, meta interpreters provide abstraction to customize syntax and semantics ....
Brian Cantwell Smith. Reflection and semantics in Lisp. In Conference record of Symposium on Principles of Programming Languages, pages 23--35, 1984.
....does not bind plus in the scope where the term occurs. We view this as an important features of MetaML. We view MetaML s semantics as a concise formalization of the semantics of LISP s three constructs, but with static scoping. This is similar in spirit to Brian Smith s semantically motivated LISP [45, 46] Finally, whereas LISP is dynamically typed, MetaML is statically typed. The annotations can also be viewed as a providing a simple but staticallytyped macro expansion system. This will become clear as we introduce and demonstrate the use of these constructs. But it is also important to note that ....
Brian Cantwell Smith. Reflection and semantics in lisp. In ACM Symposium on Principles of Programming Languages, January 1984.
....does not bind plus in the scope where the term occurs. We view this as an important feature of MetaML. We view MetaML s semantics as a concise formalization of the semantics of LISP s three constructs, but with static scoping. This is similar in spirit to Brian Smith s semantically motivated LISP [45, 46]. Finally, whereas LISP is dynamically typed, MetaML is statically typed. The annotations can also be viewed as providing a simple but statically typed macro expansion system. This will become clear as we introduce and demonstrate the use of these constructs. But it is also important to note that ....
Brian Cantwell Smith. Reflection and semantics in lisp. In ACM Symposium on Principles of Programming Languages, January 1984.
....and on metalogical foundations for reflection [56] will be extended in several ways. More generally, we will take into account many previous contributions by other researchers in the area of software architecture and module composition operations [6, 67, 15, 19, 8, 41, 36, 28, 75] in reflection [71, 70, 79, 76, 41, 38, 81, 7, 68, 39, 12, 53, 24, 37, 52, 61, 64, 69], and in recent approaches to interoperation [34, 13, 14, 42, 5, 1, 45, 20] The proposed research will lead to a new technology for composition, interoperation, and dynamic evolution of software systems. It will treat interoperability at many levels and along many dimensions components, ....
....Architecture for Adaptable and Survivable Systems Reflection is a key technique for module composition and interoperation and for building systems that are truly adaptable and survivable. Many researchers have recognized the great importance and usefulness of reflection in programming languages [71, 70, 79, 76, 41, 38], in theorem proving [81, 7, 68, 39, 12, 53, 24, 37] in concurrent and distributed computation [52, 61, 64] and in many other areas such as compilation, programming environments, operating systems, fault tolerance, and databases (see [69] for a recent snapshot of research in reflection) The ....
Brian C. Smith. Reflection and Semantics in Lisp. In Proc. POPL'84, pages 23--35. ACM, 1984. 19
....programs have had little to say about themselves. A compiler may compile programs written in the same language as the compiler, but it is unlikely that the program being compiled directs the compilation in other than the most passive way. 4 SEMANTICALLY SENSITIVE MACROPROCESSING Brian Smith [24] has proposed a new programming mechanism, reflection, in which a program can take control over the selfsame interpreter under which it executes and direct its own interpretation. Reflection is a kind of self reference, but unlike recursion, which is flat, i.e. constrained to the object domain, ....
....language for specifying the syntax of macro definitions. Our syntax declarations might be adapted to this purpose, with the removal of static typing to accommodate the dynamic type discipline of Lisp. 11.4 Reflective programming Brian Smith introduced the idea of reflective programming in [24]. The idea has been further explored by Friedman and Wand in [6] and [29] In a reflective programming language, code appearing textually at the object level can be lifted into the context of the interpreter, effectively adding new code. In reality, that interpreter need not be the real one, ....
Brian Cantwell Smith. Reflection and semantics in Lisp. In Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 23--35, 1984.
....to a specific activity and to a broad subject. When reflection is discussed in relation to reification, the more specific meaning is the one we intend. Presented at Reflection 96 in San Francisco on 22 April 1996. 3 Three notable examples of this genre of introspective computation are 3 Lisp [17, 18], Brown [7, 20] and Blond [3] In 3 Lisp, Smith introduces the idea of a reflective tower, in which an infinite number of meta circular interpreters run, each executing the interpreter immediately below it. Since a program may reflect any code up to the next higher level, including code that ....
Brian C. Smith. Reflection and semantics in lisp. In Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 23--35. ACM Press, January 1984.
....Graduate School of Computer Science, Keio University. Department of Information Science, University of Tokyo. 2 Reflective Concurrent Object Oriented Language ABCL R3 2. 1 Introduction to Reflection Computational reflection is a computational process that is performed on its own computation[9, 16]. Instead of directly allowing accesses to the system that govern the computation (which is called a meta level of a system) a reflective system usually has a tower of interpreters , in which an application program at level 0 (base level) is executed by the interpreter at level 1 (meta level ) ....
Brian Cantwell Smith. Reflection and semantics in Lisp. In Conference record of Symposium on Principles of Programming Languages, pages 23--35, 1984.
....unprincipled, and the implementors approach to modification is to provide the source code to the entire system. Although the library is well written, it was not originally intended to be modified by the user. 5.1. 6 Towers of interpreters Beginning with Brian Smith s original invention of 3 Lisp [Smi84], there has been a series of papers on reflective towers of interpreters, in which each one runs the code of the one below it [WF88, Baw88, JF92] These are nice conceptually but do not seem suited to practical application for efficiency reasons, especially the infinite (or even transfinite ( ....
Brian Cantwell Smith. Reflection and semantics in Lisp. In Proceedings of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 23--35, 1984.
....a useful framework for constructing reliable and easy to maintain concurrent system. That framework can basically be constructed in two ways. One is called IndividualBased Architecture(IBA) 11] Each object in the system has its own metaobject which governs its computation. Reflective computation[5, 10, 13] is realized by sending message to metaobjects. The computational activity in an object is sequential. This implies each metaobject model only the local sequential aspects of an object. Therefore, IndividualBased Reflection is not sufficiently powerful to deal with the global information of a ....
Brian Cantwell Smith. Reflection and Semantics in Lisp. In Proceedings of the ACM Symposium on Principles of Programming Languages (POPL), pp. 23--35, 1984.
....to a generalized unquote which splices a quoted expression into a context with n levels of quasi quoting. Note however that this analogy can also sometimes be misleading, and the actual behavior of code is closer to the quotations of a semantically rationalized dialect of Lisp called 2 Lisp [Smi84]. The operational semantics of the new system is given in terms of a type preserving compilation to Mini ML 2 e which is a straightforward extension of the translation in Section 4.7. For some applications, such as emulating the two level calculus, weaker modal logics such as K are sufficient, ....
Brian Cantwell Smith. Reflection and semantics in Lisp. In Proceedings of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 23--35, Salt Lake City, Utah, January 1984. ACM Press.
No context found.
Brian C. Smith. Reflection and semantics in LISP. In Eleventh ACM Symposium on Principles of Programming Languages, pages 23--35, 1984. 21
No context found.
Brian Cantwell Smith. Reflection and semantics in lisp. In Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 23--35. ACM Press, 1984.
No context found.
Brian Smith, "Reflection and Semantics in Lisp", Xerox PARC Technical Report ISL-5, Palo Alto, Ca., June 1984.
No context found.
Brian C. Smith. Reflection and semantics in lisp. In 11th ACM Symposium on Principles of Programming Languages, pages 23--35, 1984.
No context found.
Brian Cantwell Smith. Reflection and semantics in Lisp. In Proceedings of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 23--35, Salt Lake City, Utah, January 1984. ACM Press.
No context found.
Brian C. Smith. Reflection and Semantics in Lisp. In Proc. POPL'84, pages 23--35. ACM, 1984.
No context found.
Brian Cantwell Smith.(1984) Reflection and Semantics in Lisp. Proceedings of the ACM Symposium on Principles of Programming Languages (POPL), 23--35.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC