Balancing the EuLisp Metaob ject Proto col x y x z Harry Bretthauer and Harley Davis and Jurgen Kopp and Keith Playford x German National Research Center for Computer Science GMD PO Box W Sankt Augustin FRG y ILOG SA avenue Gallieni Gentilly France z Department of Mathematical Sciences University of Bath Bath BA AY UK techniques which can b e used to solve them Op en questions Abstract and unsolved problems are presented to direct future work The challenge for the metaob ject proto col designer is to bal One of the main problems is to nd a b etter balance ance the conicting demands of eciency simplicity and b etween expressiveness and ease of use on the one hand extensibili ty It is imp ossible to know all desired extensions and eciency on the other in advance some of them will require greater functionality Since the authors of this pap er and other memb ers while others require greater eciency In addition the pro of the EuLisp committee have b een engaged in the design to col itself must b e suciently simple that it can b e fully and implementation of an ob ject system with a metaob ject do cumented and understo o d by those who need to use it proto col for EuLisp Padget and Nuyens intended This pap er presents a metaob ject proto col for EuLisp to correct some of the p erceived aws in CLOS to sim which provides expressiveness by a multileveled proto col plify it without losing any of its p ower and to provide the and achieves eciency by static semantics for predened means to more easily implement it eciently The current metaob jects and mo dularizin g their op erations The EuLisp status of this work is reected in the EuLisp denition mo dule system supp orts global optimizations of metaob ject The ob ject system TEO has b een implemented with application s The metaob ject system itself is structured into minor variations in the public domain EuLisp implementa mo dules taking into account the consequences for the com tion FEEL in the commercially available dialect LeLisp piler It provides introsp ective op erations as well as exten version LeLisp in Common Lisp as the public sion interfaces for various functionaliti es including new in domain system MCS and in Scheme TEO is used as the heritance allo cation and slot access semantics base for a complex exp ert system workb ench called babylon While general goals and functionality are close to those Christaller et al as well as a set of articial intelli in Kiczales et al the approach shows dierent em gence and graphic programming to ols available from ILOG phases As a result time and space eciency as well as SA Most of these to ols extend the kernel ob ject language robustness have b een improved provided by TEO using the metaob ject proto col This work builds not only on CLOS but also on a se ries of Europ ean work on simple reective ob jectoriented Intro duction architectures in Lisp including work on ObjVLisp Cointe the Micro Flavor System Christaller Micro The state of the art in metaob ject proto col design is b est de Common Flavors di Primio and the Meta Class Sys scrib ed in The Art of the Metaob ject Proto col by Gregor tem MCS Bretthauer and Kopp Kiczales Jim des Rivieres and Daniel G Bobrow Kiczales et al Indeed it is still an art rather than a science to dene elegant and useful ob jectoriented programs and Design Context the problem is comp ounded for a program as general as a TEO is an integrated part of the EuLisp language def language Kiczales et al present an elab orate and tested inition In describing it we cannot completely isolate the metaob ject proto col MOP for the Common Lisp Ob ject ob ject system from the rest of the language There is a System CLOS Steele Jr Furthermore they intro strong synergy b etween the rest of the language and the duce the essential problems to the reader and show various ob ject system esp ecially in the diverse ways that software The work of this pap er was supp orted by the joint pro ject AP engineering goals are supp orted For example the division PLY ILOG SA the University of Bath the ARC program and the of work b etween classes and mo dules is discussed in more EuLisp working group detail b elow The joint pro ject APPLY is funded by the German Federal Ministry EuLisps primary goal is to serve as a general program for Research and Technology BMFT The partners in this pro ject are the University of Kiel the Fraunhofer Institute for Software En ming language oering the traditional p ower of Lisp while gineering and Systems Engineering ISST the German National Re taking the b est concepts from other languages and striving search Center for Computer Science GMD and VWGedas for the p ossibili ty of simple ecient implementation s Eu Lisp features the following essential elements a mo dule system to supp ort separate compilation and encapsulatio n division into a core language and libraries to facilitate the scale of the mo dication Although the user should not small application development have to know implementation details our exp erience shows that revealing appropriate details at appropriate levels often parallel pro cesses based on threads and semaphores for makes use easier A delicate question is the lowest level of mo dern and future computer architectures detail which can b e revealed to allow p ortable and ecient implementations a condition system for error handling downward continuations for exible control structures Extensibility The range of ob ject mo dels and implemen tations currently supp orted by various languages and to ols macros for syntactic extension is quite large ranging from classless prototyp ebased sys tems like Self to the complex intricate mo dels supp orted by an ob ject system based on classes and generic func many exp ert system to ols If our goal is to provide a sin tions with simple default b ehavior and a metaob ject gle medium in which all of these mo dels can harmoniously proto col coexist sp ecial care must b e taken in the development of exible general proto cols All elements of the language except mo dules bindings and This goal also interacts with robustness We consider exten the predened syntax dening and sp ecial forms are rep sion rather than mo dication to b e the appropriate mo del resented by rstclass ob jects It is imp ossible to create or for implementing new system b ehavior since it allows b oth change a binding by computing its identier at runtime Al the denition of new functionality and constant semantics though functions can b e generated dynamically at runtime for existing functionality all co de patterns are known at compiletime All of this helps generate small ecient applicatio ns allowing EuLisp to comp ete favorably with more traditional languages Ease of use Using and extending the language must b e natural and straightforward Ease of use should not how ever b e confused with laziness of programmers supp orting Design goals quick hacks with unpredictable consequences The fact that Certain design goals apply almost to all languages and sys defgeneric is optional in CLOS is an example for such a tems including robustness abstraction extensibili ty ease doubtful supp ort in our view of use and eciency Kiczales et al claim to meet a numb er of these Eciency MOPbased systems are intended for large and imp ortant design criteria Why is it hard or even imp ossible serious software pro jects the extensive freedom of a MOP to meet all of them The criteria are in practice contra cannot and should not b e p erceived by small application s dictory if they must all b e met simultaneousl y However we Using a metaob ject proto col appropriately should increase can use the fact that the priority of the goals change during the overall eciency of complex systems Eciency has the the course of the software lifecycle to emphasize the most highest priority at execution time and programs should fol imp ortant goals at each lifecycle phase thereby reducing de low the principle dont use dont lose Time and space sign goal conicts For example abstraction and ease of use are b oth imp ortant as the p ower of our hardware increases apply mainly to the development and maintenance phases so to o do es the ambition of software develop ers We do not while eciency is essentially a runtime goal agree with the dictum that eciency will not b e a problem We prop ose the following classication of the ab ove goals with next years computers However since eciency concerns are esp ecially vulnerable Robustness The programmer must b e able to dep end on to conict with other goals they must b e emphasized in the do cumented functionality of dened mo dules in other the appropriate place Here we make the sweeping gener words their semantic integrity must b e enforced Adapting alization that compiletime and loadtime eciency are less them should not mean changing them since other mo dules imp ortant than runtime eciency In order to achieve high used in the same system might stop working as a conse eciency and extensibil ity we try to put the highcost op quence CLOS and Common Lisp generally violate this erations at loadtime Future research will b e directed in constraint through its various redenition facilities Instead putting more eort into compiletime extensions we should distinguish b etween development time and execu All the ab ove goals can b e structured reecting the two tion time during development dynamic redenition is use sides of a computer system A computer language is an ful At execution time however the semantics of language intermediary
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-