next up previous contents
Next: Program Description of Up: No Title Previous: Support of Metaprogramming

Conclusions

 

The most important conclusion of this work is the ease and relative elegance with which it is possible to simulate many important and advanced object-oriented mechanisms in Scheme.

The purpose of making simulations in Scheme, along the lines described in this report, is to get quick and practical experience with new ideas in the field. The purpose is not to make an object-oriented programming language nor to make object-oriented applications.

At the more concrete level I find the precedence list representation of objects to be interesting, especially in connection with multiple inheritance. The possibility to have generic procedures instead of message passing is also interesting. Furthermore, I find that the straightforward simulation of method-combination is noteworthy. The caching of effective methods is very simple to establish, but it is a weakness that the caching has to be done on instances, and not on classes. The simulation of metaclasses is complicated, but nevertheless I find that it has been quite rewarding to solve some of the ``classic'' problems in the Scheme framework.

As emphasized several times in the report, it is not the purpose of this work to establish a new object-oriented programming language based on Scheme. However, it is clearly possible to do so by defining some appropriate syntactical abstractions (macros) for selected simulation patterns.



Kurt Noermark
Wed Mar 6 10:30:05 MET 1996