This article is from the FAQ, by with numerous contributions by
E03) What libraries come with the Mjolner System?
The basic patterns are the object-oriented variants of the standard
simple data types, such as char, boolean, integer, and real. These
patterns make it possible to treat e.g. integers as ordinary objects.
The basic patterns also includes the Object pattern which is the
implicit superpattern for all patterns that have no explicit
See the Basic Libraries Manual for more details.
The Stream Patterns
A Stream is a generalization of internal and external text objects. An
internal text object (Text) is a sequence (repetition) of chars. An
external text object (File) corresponds to a traditional text file.
Stream, Text, and File are organized in the following hierarchy:
Stream: (# ... #);
Text: Stream(# ... #);
File: Stream(# ... #);
UnixFile: File(# ... #);
MacFile: File(# ... #);
As part of the interface to the operating system, the basic libraries
include patterns for accessing the directory structures of hierarchical
Directory: (# ... #);
UnixDirectory: Directory(# ... #);
MacDirectory: Directory(# ... #);
See the Basic Libraries Manual p12 for more details.
The Process Patterns
The Process interface facilitates execution of subprocesses,
communication between several independent processes, client/server
architectures, and it is even possible to establish communication
between Unix, PC and Macintosh processes.
See the Process Libraries Manual for more details.
The External Language Interface Patterns
To enable interfacing with external languages (such as C), the basic
libraries define the external, cStruct, and externalRecord patterns.
See the Basic Libraries Manual p18 for more details.
The standard container data structures are organized in the following
inheritance hierarchy of patterns:
collection arrayContainer sequentialContainer list
multiset hashTable stack queue deque prioQueue
Container patterns are generic patterns in the sense that the element
type of the elements kept in the container can vary between different
See the Container Libraries Manual for more details.
Support for saving any kind of object generated by a BETA program
execution on secondary storage and restoring them in another BETA
program execution. The persistent store is fully type safe. An
object-oriented database for BETA objects is currently under
See the Persistence in BETA Manual for more details.
Metaprogramming system libraries:
A metaprogram is a program that manipulates other programs. Yggdrasil
is a metaprogramming system that supports creation of metaprograms.
Yggdrasil is grammar-based: a metaprogramming environment may be
generated from the grammar of any language. The metaprograms manipulate
programs through a common representation called abstract syntax trees
(ASTs). An AST is modelled as an instance of a pattern. There is a
pattern corresponding to each syntactic category (non-terminal) of the
grammar. The grammar hierarchy is modelled by a corresponding pattern
hierarchy, derived automatically from the grammar.
See the Metaprogramming Manual for more details.