Lehre in der Abteilung Dialogsysteme
Project SCOOL
SCOOL (Stuttgart C- based Object Oriented Language, pronounced like "school")
is not just another
object-oriented programming language. SCOOL is an interactive,
open, persistent
object-oriented language with many AI and DB features for large
applications.
Main features of SCOOL
Software System Features in General
- Software integrity through SCOOL's Open Architecture
SCOOL-browsers and other graphic interfaces are based on the X Window System.
Other software is integrated through C, C++ and shell interfaces.
- Portability
SCOOL is implemented in standard C and C++ so
that it runs not only on Unix but also on other OSs.
Object-oriented Language Features
- No distinction between class and instance
Distinction between class and instance, quite common in other OOPLAs, is
not made in SCOOL. Both are special cases of SCOOL's objects. Any SCOOL object
can have slot definitions, slot values, methods and descendants.
- Worlds of objects
SCOOL's objects are clustered into a number of worlds which serve as an
additional taxonomic feature for global structuring and classification of
a large number of objects.
- Persistent objects
Objects survive the termination of a SCOOL session unless they are explicitly
killed or bound to variables whose scope decides their termination. Partial
conservation of objects in a SCOOL specific object database are crucial for
efficient evolutional programming development
(as opposed to Smalltalk's images).
- Virtual object management
SCOOL can afford a practically unlimited number of objects through its own
virtual memory management. The content dependent virtual object management
turned out to be much more efficient than that by virtual memory of OS.
- Multiple dynamic inheritance
Multiple inheritance of object properties allows the multiple view of objects,
while dynamic inheritance enables modal context sensitive message
processing.
- unification between message and method-filter
Like in Prolog, variable bindings a in method activation are bidirectional
so that a method returns
multiple values through variable-variable bindings specified by the
unification.
- Back-up, undo, not-undo
Back-up and (not-)undo can be restricted by the scope specified through messages
and heterarchcal inheritance relations. The not-undo within an undo-scope
increases the back-up efficiency as it is needed in Prolog.
- Coreference between objects
An object can refer another object on the object level as well as on its property
level. This coreference feature increases the flexibility of resource sharing
orthogonal to the resource sharing by inheritance.
- Access control
Access control for read, write and execution (rwx) is made on the
level of worlds, objects and its properties (slot definition, slot value, method)
in addition to the private/public feature of the latter level.
- Segment variable, single variable
Unlike Lisp and Prolog, a segment variable in corporation with multiple-value
assignment and variable-binding in unification substantially increases the
power of method invocations.
- Versatile primitives for string and list processing
These primitives enables SCOOL programmers consistently to manipulate any data
from letters, texts to complex objects without changing the representation style
depending on the levels of data.
- Hypertext supported by knowledge objects
The integration of active objects into a text leads to a fine grained flexible
manipulation of texts in terms of dynamic access and generation in corporation
with graphic interface. SCOOL manual is written in Hypertext (in preparation.)
- Japanese language features
SCOOL is not a disjunctive collection of all these features mentioned above, each
implemented in a different isolated function, but coherently built as a multilayered
shell system, each shell creating multiplication effects. SCOOL runs very
lightly with almost constant overhead even under millions of objects
without being interrupted by overall garbage collection.
Stuttgart, October 1994
(CADYS)
Impressum
Thu Dec 1 10:23:50 MET 1994