Path: news.cs.au.dk!news.net.uni-c.dk!sunsite.auc.dk!twister.sunsite.auc.dk.POSTED!not-for-mail Followup-To: comp.lang.beta Sender: eernst@borg.cs.auc.dk Newsgroups: comp.object,comp.lang.beta,comp.lang.dylan,comp.programming,comp.os.linux.misc,comp.os.linux.development.apps,comp.sys.sun.misc Subject: Download: gbeta 0.81 -- an advanced OO language From: Erik Ernst Message-ID: Organization: Department of Computer Science, University of Aalborg, Denmark Lines: 124 X-Newsreader: Gnus v5.6.45/Emacs 20.3 Date: Mon, 07 Feb 2000 17:22:55 GMT NNTP-Posting-Host: 130.225.194.125 X-Trace: twister.sunsite.auc.dk 949944175 130.225.194.125 (Mon, 07 Feb 2000 18:22:55 MET) NNTP-Posting-Date: Mon, 07 Feb 2000 18:22:55 MET Xref: news.cs.au.dk comp.object:120246 comp.lang.beta:12230 comp.lang.dylan:22170 comp.programming:114729 comp.os.linux.misc:429549 comp.os.linux.development.apps:99998 comp.sys.sun.misc:55204 We are happy to announce that gbeta-0.81 ---------- is now available! News ==== Since gbeta-0.8, the source code has been ported to the new release 5.0 of Mjolner BETA, and the MetaProgramming subsystem has been updated. Most changes are below the surface and should not affect you as a user; in particular, steps have been taken towards generating stand-alone files with byte-code. At the language level---and as an experiment---an `eval' command has been added to the language. The documentation has been updated, especially the man page. What Is It? =========== gbeta is an advanced OO language which supports virtual attributes (including virtual classes), general block structure, and dynamic inheritance in context of strict, static typing. It is a generalization of the language BETA. The package includes an implementation of the language which performs static analysis, generates byte code, and runs the given program (i.e. it works like an interpreter as seen from the outside). It is integrated with GNU Emacs and programs can be single stepped, declarations can be looked up by double-clicking etc. in this environment. The current version of gbeta comes without standard libraries, and the performance is not good, so it is relevant to use it if you want to play around with a bleeding edge OO programming language in order to see what possibilities the basic mechanisms of the language offer you as a programmer, but it is not yet ready for real-life application development. If you want to help getting it there, please speak up! As an example of the power of the combination of generalized virtual attributes, see the paper @InProceedings{ernst99:prop_comb, author = {Erik Ernst}, title = {Propagating Class and Method Combination}, booktitle = {{ECOOP'99} -- Object-Oriented Programming}, pages = {67--91}, year = 1999, editor = {Rachid Guerraoui}, volume = {LNCS 1628}, address = {Heidelberg}, publisher = {Springer-Verlag} } The idea is that combinations of classes (similar to multiple inheritance) and combinations af methods (similar to method combination as with before/after/primary methods in CLOS) is applied recursively. The initiation combination may be expressed like this: Window & Door (* combine two classes *) open & print (* combine two methods *) Now, these combination operations _propagate_, in the following sense: If the classes Window and Door have a method M in common, then the resulting method M of (Window & Door) will be computed by "adding up" the contributions from Window.M and from Door.M. Similarly, if the methods open and print have an argument type T in common, then the corresponding argument type of (open & print) would be computed as a combination of open.T and print.T. This was an example of a 1-level propagation; if open.T and print.T have a method N in common, then the N of (open.T & print.T) will be constructed from the contributions in open.T.N and print.T.N -- that would be a 2-level propagation. Excessive treatment of gbeta :-) is available in my Ph.D. thesis; it will be made available from the web site mentioned below when the copyright formalities have been sorted out.. Platforms ========= gbeta-0.81 is available on Linux (2.0.X, 2.2.X) and Solaris 7. HP/UX and SGI currently cause some linking problems but may be added later. Documentation ============= The gbeta web site at contains information about installation, getting started, a tutorial, references to papers, and several other topics. My PhD thesis (which is mainly about gbeta) will be made available from this web site, too. Download ======== gbeta can be downloaded from the above mentioned web site at or by ftp at Author, Contact person, Etc. ============================ Erik Ernst, Email: eernst@cs.auc.dk enjoy! -- Erik Ernst eernst@cs.auc.dk Department of Computer Science, University of Aalborg, Denmark