Path: news.daimi.aau.dk!not-for-mail From: Erik Ernst Newsgroups: comp.lang.beta,daimi.beta,comp.object,comp.lang.eiffel,comp.lang.sather,comp.lang.python Subject: gbeta v0.5 released - free (g)BETA interpreter (GPL) Followup-To: comp.lang.beta Date: 18 Dec 1997 05:20:38 +0100 Organization: DAIMI, Computer Science Dept. of Aarhus Univ. Lines: 79 Message-ID: NNTP-Posting-Host: fraxinus.daimi.aau.dk Mime-Version: 1.0 (generated by tm-edit 1.1.1.6.2.1) Content-Type: text/plain; charset=US-ASCII Keywords: free BETA interpreter, GPL, OO programming language generalized X-Newsreader: Gnus v5.3/Emacs 19.33 Xref: news.daimi.aau.dk comp.lang.beta:11334 daimi.beta:10304 comp.object:79124 comp.lang.eiffel:34510 comp.lang.sather:13677 comp.lang.python:38130 Announcement of ------------ gbeta v0.5 ------------ What is it? gbeta is an interpreter of a generalized version of the BETA programming language. BETA is a modern, object-oriented language in the Scandinavian tradition. It delivers great expressive power using only few language constructs: a useful, simple, and clean language. It has a strong static typesystem and static name binding, general block-structure (nesting, true closures), virtual types, real type variables, expressive method combination, and a very flexible and expressive module and visibility control system. gbeta generalizes the BETA language in fundamental ways. Firstly, the type system is based on constraints (the type denoted by a declaration is the most general class satisfying the constraints). Secondly, object metamorphosis is supported (take an existing object, apply a class as a constraint, and the object dynamically specializes ("inherits") such that it becomes an instance of a derivation of that class). Thirdly, classes can be constructed at run-time (without sacrificing type correctness) and classes can be inherited from even if they are not known before run-time, such as with virtual classes or class variables. The constraint based inheritance system can e.g. be exploited to construct constraint graphs of types: set up a design in your library code such that a user of the library can "pull a handle" by adding a few constraints. The changes propagate throughout your library code and allow for an ordered and maintainable specialization for a given application. Changes since v0.13 manymanymany, mostly concerning the usage, and fixing bugs; the language definition hasn't changed Where can I get it? http://www.daimi.aau.dk/~eernst/gbeta/, (which refers to ftp://ftp.daimi.aau.dk/pub/empl/eernst/gbeta-0.5/...) What platforms are supported? Linux (2.x.y/ELF) SunOS 5.5.1 (Solaris) HP-UX 9 (probably works on HP-UX 10) SGI IRIX 6 (6.2, 6.3, 6.4) Windows NT/95 (semi-supported!) Integration with Emacs (isn't that a platform? ;-) What can I get? Source code (GPL), in BETA Binaries for the above platforms Soon: packaged web-site, for quick local browsing WWW site? http://www.daimi.aau.dk/~eernst/gbeta/ contains many things, including a tutorial and an introduction to advances issues Collaboration? Yes, please! If you want to develop your own variant, or help me make this one faster/better, don't hesitate to contact me. Suggestions are welcome, too. -- Erik Ernst eernst@daimi.aau.dk Computer Science Department of Aarhus University, Denmark