First official Developers Meeting

David Tanzer (dodger-guglhupf@users.sourceforge.net), Fri Jul 06 20:54:35 GMT+02:00 2001
Home
Intro
The RLS
PDD-Files
Developers
Doc Rel
Meeting
History
Summary

Goals

The primary goal of the meeting was to optimize and correct the RUSL Language Definition. Since this part of the RUSL Language Specification defines the Keywords of the Language, it is very important for the future development.

Other goals where to discuss some future goals and to discuss the design of the Platypus web pages.

The RUSL Language Definition

Methods and Operators

We renamed the keyword for method definitions to method. The operator definition will be similar to method, but maybe with a bindlevel - Attribute.

Else If

We decided to introduce a elseif - keyword. Elseif is a block statement which can occure in if-blocks, but all elseif - Blocks must stand before the <else/> statement

The definition of elseif in the DTD is the following:

<!ELEMENT elseif (#PCDATA|try|if|while|for|new|drop|throw|var|return|doc|break| continue)*> <!ATTLIST elseif cond CDATA #REQUIRED>

Enumerated Types

There will be an enumerated - datatype with the following definition:

<!ELEMENT enum (#PCDATA)*> <!ATTLIST enum name CDATA #REQUIRED>

Where the #PCDATA in the Definition is interpreted as Comma - List. Maybe we need another List-type id_list to interprete that.

RUSL Scripts

We decided to introduce RUSL - Scripts. There is a separated DTD for RUSL Scripts, which you can find here. The separated DTD means, that a program is either a RUSL-script or a RUSL-source program. If sombody includes RUSL into his own document format, he can include rusl-source and rusl-script. Scripts have nearly the same behaviour as methods, but they are always public, global and do not belong to any class.

Minor Changes

We changed some Attributes from REQUIRED to IMPLIED, changed some Attlists,... . You can look at the new pre-release of RLS, and if you know the old one, you'll see what we did.

Interface

Because of the introduction of RUSL-Scripts and some other reasons, we decided to add some methods to the interface of the parser (which is the class Environment). As soon as the source documentation is avaliable, you can read more about it there. The additional methods are:

Envrionment::getExecutableList()

Which will provide a list of all executable classes and scripts.

Environment::execClass(string name)

Which will execute the class "name".

Environment::execScript(string name)

see above.

Exceptions

We now have decided some more details about the extended Exception handling of RUSL. This exception handling follows a simple principle: there is not only try and catch, but also retrys are possible. An exception is "dropped" at any point, and then "handled" in the <handle/> - Section of the next higher try - block. There a <retry/> can be done. This means, that the call frame which lead to the exception is executed again. If the exception is dropped at the same point again, the handle - block which did the retry must not handle the exception again: The next higher handle-block gets a chance. If an exception falls through all the handle - blocks of a program, the Interpreter exits with an Error. An exception which is "thrown" is forced to fall through all handle - blocks.

Summary

We think that the Meeting was a success. The RLD is pretty good now, and I think we might "freeze" it in a few weeks. We wo'nt make any big changes anymore, except with a *REALLY GOOD* reason.

Alex was not at the meeting - he had to work. Rene drank two cups of Fruit tea "Vita Mix" and I had two cups of Darjeeling with milk.

All Graphics made with The GIMP SourceForge Logo Visit sourceforge.net for many interesting and useful free software projects. This Project Homepage was created with XWeb.