[comp.object] BETA language

olm@daimi.aau.dk (Ole Lehrmann Madsen) (05/28/91)

rdbd34@vall.dsv.su.se (RDB-design grupp 34) writes:

>Anyone heard of the BETA language ? It's said to be a better Simula.
>Anyone knows where to get more info ? Is there a PD - compiler perhaps?

>Thanks

>Magnus Romedahl
>E-mail:            ev9111@njord.fek.su.se

A BETA implementation is available as part of the Mjolner BETA System.
The Mjolner BETA System is currently an experimental version and is
NOT supposed to be a product. It has been used at a number of
locations for experimental work and teaching of object-orientation.

Anyone who would like to experiment with the system can get it
(essentially) for free by signing a license agreement.  There is no
cost if the system is obtained via ftp except that it will be
necessary to buy a pre-print of a book on BETA ($15). The system can
also be mailed on discette and tapes by paying the actual expenses for
this.

The system is currently available on Macintosh/MPW (at least MC68020
processor and 5Mbyte) and on various UNIX platforms including SUN-3,
HP9000 and Apollo3500.

The Mjolner BETA System is distributed by Mjolner Informatics ApS,
which is currently working on developing the system into a commercial
product. Contact person at Mjolner Informatics is

	Elmer Sandvad	ess@mjolner.dk

A half day tutorial on BETA will be given at OOPSLA'91, Phoenix,
Arizona, 6-11 October, 1991.

Further details of the Mjolner BETA System and order form and license
agreement is included below.

Further information can be obtained from Elmer Sandvad or myself.

Ole Lehrmann Madsen	olmadsen@daimi.aau.dk

------------------


                    The Mj|lner BETA System



         A software development environment supporting
                  object-oriented programming
               in the BETA programming language









  - BETA is a modern object-oriented language with:

      - Powerful   abstraction   mechanisms  including   class,
        subclass,  virtual  class, class  variable,  procedure,
        subprocedure,  virtual  procedure, procedure  variable,
        coroutine,  subcoroutine, virtual  coroutine, coroutine
        variable,  and many more,  all unified to  the ultimate
        abstraction mechanism:  the pattern.

      - Other   features  include   general  block   structure,
        coroutines,  concurrency, strong typing,  part objects,
        separate objects, and class-less objects.

  - The   BETA   library   includes  basic   data   structures,
    user   interface  toolkit,   operating  system   interface,
    metaprogramming system, and fragment system.

  - The  Hyper  Structure  Editor  supports  integrated  syntax
    directed   and  textual   editing,   incremental   parsing,
    abstract   presentation  and   browsing,   integration   of
    documentation  and  comments,   hypertext  facilities,  and
    adaptive pretty printing.











                               1


The BETA Language

BETA supports  the object  oriented perspective  on programming
and  contains  comprehensive  facilities   for  procedural  and
functional  programming.     Research  is  going  on  with  the
aim  of  including  constraint  oriented   constructs.     BETA
replaces classes,  procedures, functions and types  by a single
abstraction  mechanism called  the  pattern.    It  generalizes
virtual procedures to virtual  patterns, streamlines linguistic
notions such  as nesting  and block  structure, and  provides a
unified  framework for  sequential,  coroutine, and  concurrent
execution.  BETA is a  modern language in the SIMULA tradition.
The  resulting language  is  smaller than  SIMULA  in spite  of
being considerably more expressive.
   Instances  of  patterns,  called objects,   may be  used  as
variables,  data  structures,  procedure/function  activations,
coroutines and concurrent  systems.  Patterns  may be organized
in a classification hierarchy by means of sub-patterns.
   Virtual  patterns   combined  with   sub-patterns  make   it
possible  to  delay  the  specification   of  an  attribute  in
a  pattern.     Attributes may  then  have  different  bindings
in  different  sub-patterns.     This  corresponds  to  virtual
procedures in C++ and dynamic  binding of methods in Smalltalk.
In contrast  to Smalltalk, the  use of virtual patterns  may be
checked at  compile time,  even though the  binding is  done at
run-time.
   BETA includes the notion of pattern  variable.  This implies
that  patterns are  first  class values,  which  may be  passed
around as  parameters to patterns.   By using  pattern variable
instead  of virtual  patterns,  it is  possible to  dynamically
change the behavior of an object after its generation.
   Most object-oriented languages have  classes, subclasses and
virtual procedures.   Some languages have  procedure variables.
BETA has  patterns, subpatterns,  virtual patterns  and pattern
variables.  Since a pattern  is a generalization of abstraction
mechanisms  like class,  procedure,  function,  and  type,  the
notions  of subpattern,  virtual pattern  and pattern  variable
apply  also  to  these  abstraction mechanisms.     This  means
that  in BETA  procedures may  be organized  in a  subprocedure
hierarchy  in the  same  way as  classes  may  be organized  in
a  subclass hierarchy.    Since patterns  may also  be used  to
describe coroutines  and concurrent  processes, these  may also
be organized in a pattern hierarchy.
   The  notion of  virtual  pattern  of course  covers  virtual
procedures  like  in  C++.      In  addition  virtual  patterns
cover virtual  classes, virtual coroutines,  virtual concurrent
processes,  etc.     Virtual  classes provide  a  more  general
alternative to generic classes (as in Eiffel).
   Pattern  variables  cover procedure  variables,  that  is  a
variable that  may be  assigned different  procedures.   It  is
also possible to have variables  that may be assigned different
classes, etc.
   Attributes of  an object may  be part objects  or references
to  separate objects.    It  is  possible  to describe  objects
that  are  not  generated  as instances  of  a  class  pattern,
so-called "class-less objects".   References are qualified by a


                               2


pattern name.    This provides a  near optimal  balance between
compile-time type checking and run-time type checking.
   The block  structure mechanism makes  it possible  to create
arbitrarily  nested  patterns.    This  makes it  possible  for
objects to  have local  patterns used  as classes,  procedures,
etc.       Local  pattern   greatly   enchances  the   modeling
capabilities of BETA.
   BETA  does  not  only  allow   for  passive  objects  as  in
Smalltalk,  C++ and  Eiffel.    BETA  objects may  also act  as
coroutines, making it possible  to model alternating sequential
processes  and  quasi-parallel  systems.    The  BETA  language
design includes support for concurrent objects, too.


BETA Implementation

The Mj|lner BETA System includes  an implementation of the BETA
programming language.  This is  an implementation of most parts
of BETA  except concurrency.   The  entire Mj|lner  BETA System
is written in  BETA, except for a  few run-time routines.   The
implementation has the following characteristics:

  - Native code generation
    The compiler generates assembly code.

  - Garbage collection
    A  generation  based  garbage  collection is  used.     The
    current  implementation  is  a  mark-sweep algorithm.     A
    version  based  on  scavenging   and  mark-sweep  is  being
    currently developed.

  - Separate compilation
    Programs  may   be  divided  into  smaller   fragments  for
    separate  compilation.    The compiler  makes an  automatic
    dependency  analysis on the  fragments structure.    When a
    fragments has been  changed, the system keeps  track of the
    dependent fragments that must be recompiled.

  - Interface to C and assembly language
    There is  a general interface  to C and  assembly language.
    This includes  call of C procedures  and parameter transfer
    of simple types, text and C structures.

  - Source-level debugger
    A   source-level  debugger   for  the   BETA  language   is
    available.     Contains facilities  for  specifying  break-
    points,  single  stepping,  inspection  of  object  states,
    inspecting the  run-time organization,  etc.   The debugger
    is available both with  a command-driven interface and with
    a graphical interface.


BETA Library

The Mj|lner  BETA System  includes a  library of  patterns that
may be used by users.  The library consists of:


                               3


  - Basic library
    The   basic  library   includes  attributes   for  handling
    input/output and  files, a text concept,  and standard data
    structures such as lists.

  - A user interface toolkit
    The  user interface  toolkit includes  a set  of attributes
    for  creating windows,  menus,  dialog  boxes,  etc.    For
    Macintosh there is a  user interface toolkit implemented on
    top  of the Macintosh  Toolbox.   For  UNIX implementations
    there  is a user  interface toolkit  implemented on  top of
    the X Window System.

  - An operating system interface
    There is a  set of attributes for  accessing the underlying
    operating system.   For Macintosh there is  an interface to
    most  of the  Toolbox.   The  user may  easily extend  this
    interface  to possible  new  Toolbox routines.    For  UNIX
    there  is an  interface that  makes it  possible to  create
    processes and communicate  using e.g.  pipes.   In addition
    there is an interface to the file system.

  - A metaprogramming system
    The metaprogramming system makes  it possible to manipulate
    programs  as data  as  in Lisp.    From  the  grammar of  a
    given programming language, a  set of classes corresponding
    to  the abstract  syntax is  generated.    This gives  well
    defined  representation  of abstract  syntax  trees.    All
    tools in  the Mj|lner  BETA System use  this representation
    to manipulate  BETA programs.   This  common representation
    of BETA programs  is available for the users  that may want
    to write their own tools.

  - A fragment system
    The fragment  system handles  the physical  organization of
    BETA  programs.   Programs may  be divided  into fragments,
    which  are   the  basis   for  modularization,   separation
    of  interface  and  implementation,  variant  control,  and
    separate compilation.


The Hyper Structure Editor

The hyper  structure editor includes the  following functional-
ity:

  - Syntax-directed editing
    Syntax directed editing makes  it possible to construct and
    edit programs without introducing syntax errors.
    Syntax   directed   editing   is  especially   useful   for
    application  oriented  languages  intended  for  end-users,
    casual  users  and  beginners that  may  have  difficulties
    in  remembering  the  concrete  syntax.    Also  a  program
    constructed  by   syntax-directed  editing  needs   not  be
    parsed, thereby saving time in the development phase.



                               4


  - Text editing
    The   programmer  may   freely  alternate   between  syntax
    directed  editing and textual  editing.   Any  program part
    may be textually edited using  keyboard, mouse and menus in
    the usual style known from Macintosh.

  - Incremental parsing
    Any  program  part  that   has  been  textually  edited  is
    immediately parsed  and inserted  into the  abstract syntax
    tree.

  - Integration of documentation and comments
    The  user may  add  a comment  at any  place  in a  program
    (technical  speaking a  comment may  be added  to any  node
    in the  abstract syntax  tree).   The user  decides whether
    or  not  to display  a  comment.    Also  the user  decides
    whether to display  a comment as part of the  program or in
    another window.   It  is possible to obtain  a pretty-print
    of a program which includes  just the modules and procedure
    headings  and  corresponding  comments.     This  makes  it
    possible  to extract  a functional  specification from  the
    program.
    This facility has  turned out to be one of  the most useful
    features  of the  editor.   Programmers  are motivated  for
    integrating  code and  documentation  since it  is easy  to
    extract part of the program  and the comments as functional
    specifications and other documentation.

  - Hypertext facilities
    The  editor includes  hypertext facilities.    The facility
    for handling comments is an  example of a hyperlink between
    a program and  a text document.  Another  type of hyperlink
    is a link form the use of  a name to the declaration of the
    name.   The editor  is currently being extended  to include
    general hypertext facilities.

  - Abstract presentation and browsing
    The editor  is able to  present a  program at any  level of
    detail.  At the top-level of  a program the user may get an
    overview of  modules and procedures.   It is  then possible
    to browse  through modules and  procedures to see  more and
    more details.   This mechanism is  completely general since
    the user may decide the level of granularity.

  - Adaptive pretty printing
    The editor  includes an adaptive pretty  printing algorithm
    which prints  the program such  that it always  fits within
    the size of the window or paper.


Current Projects

Researchers at  Aarhus University  and Mj|lner  Informatics are
currently working on the following projects:




                               5


  - Structure editing of documents
    A  document  has  logical structure  consisting  of  title,
    preface,  chapters,  sections,  etc.    This structure  can
    easily  be described  by a  grammar.   The hyper  structure
    editor is  being extended  to support structure  editing of
    documents.

  - Object-Oriented Case Tool
    The  current architecture  of  the editor  is prepared  for
    extending  the  editor  with a  syntax  directed  graphical
    view  of the  abstract syntax  trees.   A graphical  syntax
    of  the  overall  structure  of a  BETA  program  has  been
    designed.   An implementation of the  graphical editor will
    result  in  an object-oriented  CASE  tool,  that is  fully
    integrated with  BETA. This tool  will make it  possible to
    keep the  consistency between the graphical  design and the
    BETA code.    Traditional problems such  as "case  gab" and
    "reverse engineering" will therefore be eliminated.

  - Interface Builder
    An interface  builder for  construction of  user interfaces
    using  direct  manipulation  is   being  developed.     The
    interface builder  generates BETA  code that makes  it easy
    for the designer  to insert his own application code.   The
    generated code and the users code are separated.

  - Graphics System
    A  powerful  graphical  system   based  on  the  Stencil  &
    Paint  imaging  model,  graphical  modeling  and  graphical
    interaction is being implemented.   On top of the system an
    advanced drawing application is being implemented.

  - BETA interface to Design/OA
    Design/OA is  a very  powerful graphics  package supporting
    advanced   graphics   for   drawing   diagrams,   including
    hierarchical  diagrams.   Design/OA  is a  product of  Meta
    Software  Corporation,  Mass.,  USA.  A BETA  interface  to
    Design/OA has  been implemented and is  utilized in various
    other projects.  The  Design/OA interface is presently only
    for UNIX and  the X Window System.   A Macintosh version is
    forthcomming.



Status
An experimental  version of  the Mj|lner  BETA System  has been

implemented as part of the  Nordic Mj|lner project (1986-1988).
Since then  the system  has been  further developed  by Mj|lner
Informatics ApS, which intends to  develop it into a marketable
product.  Like C++, BETA  is intended to be used for industrial
programming.   The Mj|lner BETA System is  currently being used
in teaching  object-oriented programming.    In addition  it is
being tested by  the Finnish Telecom company  Telenokia as part
of  the Mj|lner  II project,  which  is a  continuation of  the
Mj|lner Project.


                               6


   The  BETA  compiler,  basic  libraries  and  user  interface
libraries  are  ready  for  teaching  purposes  and  industrial
experiments  (non-commercial  usage).     These  parts  of  the
system are  well documented  and have  been heavily  tested and
used  by Mj|lner  Informatics  and others.    The  rest of  the
libraries,  primarily  the metaprogramming  system,  have  also
been used extensively, but are  only minimally documented.  The
Hyper Structure Editor is fully  developed and well documented,
but  has not  been  used extensively  and  should therefore  be
considered a demo version presently.


Mj|lner BETA System availability

Mj|lner  Informatics   offers  a   world-wide  pre-release   of
the  Mj|lner  BETA  System:    an  industrial  object  oriented
programming  environment and  an implementation  of the  object
oriented  programming   language  BETA.   The  pre-release   is
available for non-commercial usages only.
The pre-release of the system consists of the following:

  - BETA Compiler (including a fragment system),

  - Hyper Structure Editor (demo version),

  - Operating System Interface,

  - User Interface Toolkit,

  - Several Basic Libraries.

as  well as  associated  documentation (approx.    400  pages).
The system  is available  on an "as-is"  basis and  without any
warranties.   The  compiler, the basic  libraries and  the user
interface libraries  are well documented,  whereas the  rest of
the system  is only with minimal  documentation.   The compiler
and the  libraries are  heavily tested  through intensive  use,

both by  Mj|lner Informatics and others.   The  Hyper Structure
Editor is fully  developed, but has not  been used extensively,
and should therefore be considered a demo version presently.
   As a  supplement to the Mj|lner  BETA System it  is possible
to  obtain  a   pre-print  of  the  book:     "Object  Oriented
Programming in the  BETA Programming Language (Draft)"  by B.B.
Kristensen,  O.L. Madsen,  B.  M|ller-Pedersen  and K.  Nygaard
(approx.  200 pages).
   The system is available for  four machine-types:  Macintosh,
SUN, HP and Apollo.  The minimum requirements are:

  - Macintosh:  CPU 86020, MPW 3.1, System 6.0, 5MB,

  - SUN-3:  SunOS 4.0, 8MB,

  - HP 9000/300 series:  HP-UX 7.0, 8MB,

  - Apollo 3000 series:  DomainOS 10.1, 8MB.


                               7


The Macintosh  version of the  system is presently  the easiest
version to  use, mainly  since the  user interface  toolkit for
the Macintosh  is very  easy to  use, enabling  fast production
of advanced interactive  programs.  The  user interface toolkit
for the UNIX  versions need a total  rewrite to bring it  up to
the standards of the Macintosh version.   The Macintosh version
has been developed  partly under contract with  Apple Computer,
Paris.

Mj|lner BETA System Packages:


Mj|lner BETA System can be obtained in two different ways:
  - Package A: Available through ftp
    In  this package,  a restricted  ftp account  is opened  at
    mjolner.dk  to allow  for the  transfer of  the system  and

    associated  documentation (in  PostScript  format).    When
    you  have returned  the  order form  and  a signed  license
    agreement,  you will  receive an  e-mail describing  how to
    use  the ftp  account.    The  account will  be  open in  a
    limited time period.  This package is free of charge.

  - Package B: On diskette or tape
    In  this   package,  the   system  will  be   delivered  on
    diskettes or tapes  (depending on the chosen system).   The
    documentation  is delivered  in print.    The cost of  this
    package  only covers  the  direct distribution,  media  and
    printing costs.

Both packages consists of the following:

  - Compiler, libraries and Hyper Structure Editor,

  - Associated documentation,

  - README and Installation Guide.

The packages can be ordered using the  attached order form.  In
order  to process  the order  form,  it is  necessary that  the
attached License Agreement is signed and returned too.

Book pre-print

As a  supplement to  the system  and associated  documentation,
we  can  offer a  pre-print  of  the  book:   "Object  Oriented
Programming in the  BETA Programming Language (Draft)"  by B.B.
Kristensen, O.L. Madsen, B. M|ller-Pedersen and K. Nygaard.
   We   recomment  purchase   of  this   pre-print  since   the
documentation  does   not  contain  description  of   the  BETA
language useful for serious programming.   Other sources exists
on the BETA language, but they  are somewhat out of date due to
changes in the language.
   The pre-print  will be  delivered in print  at the  price of
distribution and printing.   The pre-print can  only be ordered
in connection with either package A or B.


                               8


Trademarks:    Simula (Simula  a.s.),  Unix  (AT&T),  Smalltalk
(ParcPlace  Systems),   Eiffel  (Interactive   Software  Eng.),
Macintosh  (Apple  Computer),  Design/OA  (Meta  Software  Cor-
poration),   The  Mj|lner  BETA  System   (Mj|lner  Informatics
ApS)





















































                               9






                          ORDER FORM


    Name:    ----------------------------------------------------
	
    Address: ----------------------------------------------------

             ----------------------------------------------------

             ----------------------------------------------------

             ----------------------------------------------------
			 
    Phone:   ----------------------------------------------------

    Fax:     ----------------------------------------------------

    E-mail:  ----------------------------------------------------

   hereby  orders the  Mj|lner  BETA  System according  to  the following:

   --------------------------------------------------------------------------------
   - Package A:     Price:  Free of charge                                        -
   -           ---                                                                -
   -                Check machine type below:                                     -
   -                Macintosh:  ___                                               -
   -                Sun-3:      ___                                               -
   -                HP:         ___                                               -
   -                Apollo:     ___                                               -
   ------------------------------------------------------------------------------ -
   - Package B:     Check machine type below:                                     -
   -           ---                                                                -
   -                Macintosh: ___ Price:  125 US$                                -
   -                Sun-3:     ___ Price:  200 US$                                -
   -                HP:        ___ Price:  200 US$                                -
   -                Apollo     ___ Price:  200 US$                                -
   ------------------------------------------------------------------------------ -
   - Pre-print: ___ Price:  15 US$                                                -
   --------------------------------------------------------------------------------


    Signed  / -19


    ----------------------------
    (authorized signature)

All orders  will be processed  as soon  as possible and  in the
order  of arrival.    In  case  of  questions or  difficulties,
please contact Elmer Sandvad,  Mj|lner Informatics (see address

above) or e-mail:  support@mjolner.dk.

Please  fill-in this  order form  with care  to ensure  correct
processing  of  the order.     Please  use capital  letters  or
typewriter  and  make  sure that  the  information  entered  is
complete and  correct.  Please  also note, that this  order can
only be processed if accompanied  by a signed License Agreement
(use reverse side)


                              10






                       LICENSE AGREEMENT




As  requester of  the Mj|lner  BETA System,  I understand  that

this license  agreement covers the  pre-release of  the Mj|lner
BETA  System,  as  distributed  by Mj|lner  Informatics  autumn
1990.   The software and  associated documentation can  be used
only in accordance with the following conditions:
   I also  understand that the software  is provided on  an "as
is" basis for my non-commercial research  purposes.  I will not
distribute the  software and  associated documentation,  or any
portion or derivatives thereof,  beyond my organization without
your  written  consent.    I  understand  and accept  that  the
software is provided  to me without warranties of  any kind and
with no provisions for support or  future enhancements.  I also
understand and accept  that neither Mj|lner Informatics  or any
of its  employees has  any liabilities  in connection  with the
use of the software.
   In the  case of  this software  being made  available to  me
through a temporary  ftp account at mjolner.dk, I  agree not to
use this  account for any  other purpose,  and not to  make the
account available to any other person.
   Should I  consider using  any parts  of Mj|lner  BETA System
for commercial  purposes, I accept  that this must  be arranged
by special arrangements (i.e.  another License Agreement).





   AGREED AND ACCEPTED BY:




    Name:    ----------------------------------------------------

    Address: ----------------------------------------------------

             ----------------------------------------------------

             ----------------------------------------------------
			 
             ----------------------------------------------------





    Signed  / -19


    ----------------------------
    (authorized signature)


                              11


Selected Mj|lner BETA Publications

 1. B.B.  Kristensen,     O.L.  Madsen,    B.  M|ller-Pedersen,
    K.  Nygaard:    Object-Oriented  Programming  in  The  BETA
    Programming Language.   Computer Science Department, Aarhus
    University, Draft October 1990.
 2. J.L. Knudsen,  O.L. Madsen,  C. N|rgaard, L.B. Petersen, E.
    Sandvad:  Teaching  Object-Oriented Programming Using BETA.
    In  Proceedings  of  Apple European  University  Consortium
    Annual Conference, Salamanca April 18-20, 1990.
 3. O.L.  Madsen,     B.  M|ller-Pedersen:     Virtual  Classes
    ---  A powerful  mechanism in  object-oriented programming.
    OOPSLA'89,  Object-Oriented Programming Systems,  Languages
    and Applications, Sigplan Notices, 1989.
 4. L.  Bak,   J.L.  Knudsen,   O.L.  Madsen,  C. N|rgaard,  E.
    Sandvad:  An Overview of the  Mj|lner BETA System.  Mj|lner
    Informatics  ApS, Science  Park Aarhus  / Computer  Science
    Department, Aarhus University, March, 1990.
 5. O.L. Madsen, C. N|rgaard:   An Object-Oriented Metaprogram-
    ming  System.   Hawaii  International Conference  on System
    Sciences - 21, January 5-8, 1988.
 6. O.L.  Madsen,   B. M|ller-Pedersen:   What  Object-Oriented
    Programming may  be --- and  what it  does not have  to be.
    Proceedings  of the  Second European  Conference on  Object
    Oriented Programming, Oslo, August 1988.
 7. Mj|lner Informatics Report:   The Mj|lner BETA Compiler ---
    Reference Manual.  Mj|lner Informatics ApS MIA-90-2.
 8. Mj|lner  Informatics Report:    The  Mj|lner BETA  Fragment
    System.  Mj|lner Informatics ApS MIA-90-3.
 9. Mj|lner Informatics  Report:   The Mj|lner BETA  System ---
    Basic Libraries.  Mj|lner Informatics ApS MIA-90-8.
10. Mj|lner Informatics  Report:   The Mj|lner BETA  System ---
    UNIX Libraries.  Mj|lner Informatics ApS MIA-90-9.
11. Mj|lner Informatics  Report:   The Mj|lner BETA  System ---
    Macintosh Libraries.  Mj|lner Informatics ApS MIA-90-10.
12. Mj|lner Informatics  Report:  Sif:   Hyper Structure Editor
    --- Users Guide.  Mj|lner Informatics ApS MIA-90-11.
13. J|rgen Lindskov  Knudsen,   O.L. Madsen:   Teaching Object-
    Oriented Programming is  more than Teaching Object-Oriented
    Programming Languages.   Proceedings of the Second European
    Conference  on Object  Oriented Programming,  Oslo,  August
    1988.
14. E. Sandvad:   Syntax-Directed Graphical Editing.   Computer
    Science Department, Aarhus University, Draft June 1988.
15. E. Sandvad:   Hypertext  in an  Object-Oriented Programming
    Environment.      In:     J.  Andre,  J.   Bezivin  (eds.):
    Woodman'89:      Workshop   on   Object-Oriented   Document
    Manipulation, Rennes May 1989, BIGRE.
16. E.  Sandvad, C.  N|rgaard:   Reusability and  Tailorability
    in  the Mj|lner  BETA System.    TOOLS'89:   Technology  of
    Object-Oriented Languages  and Systems, Paris Nov.   13-15,
    1989.
17. E. Sandvad:   Object--Oriented Development  --- Integrating
    Analysis,  Design  and Implementation.    Computer  Science
    Department, Aarhus University, April 1990.


                              12


Company Description

Mj|lner  Informatics  ApS  is  founded   with  the  purpose  of
developing the  Mj|lner BETA System  into a  commercial product
and to participate in research  and development projects within
object-oriented software  development.   The company  also does
teaching  and consultancy  within object-orientation,  software
development environments, Macintosh and UNIX workstations.
   Mj|lner Informatics is currently working  on a contract with
Apple Computer  Europe on developing  a version of  the Mj|lner
BETA  System  for Macintosh  to  be  used in  teaching  object-
oriented programming.  Another  major activity is participation

in the  Mj|lner II project  together with  Telesoft, Telenokia,
EB Technology, Lund University and  Aarhus University.  Mj|lner
II  is partly  funded by  the  Nordic Fund  for Technology  and
Industrial Development.

Managing director:
    Ole Lehrmann Madsen.

Owners:
    M.Sc.  Lars Bak, Mj|lner Informatics
    Associate   professor  J|rgen   Lindskov  Knudsen,   Aarhus
    University
    Associate   professor  Bent   Bruun   Kristensen,   Aalborg
    University
    Professor Ole Lehrmann Madsen, Aarhus University
    M.Sc.  Claus N|rgaard, Mj|lner Informatics
    Professor Kristen Nygaard, Oslo University
    M.Sc.  Birger M|ller-Pedersen, Norwegian Computing Center
    M.Sc.  Elmer Sandvad, Mj|lner Informatics
    Ph.D Paal S|rgaard, Norwegian Computing Center
















-----------------------------------------------------------------
The  company has taken its name from the Nordic mythology where -
Mj|lner  is the name of the hammer  of the god Thor.  According -
to  the mythology, this hammer is  the perfect tool that cannot -
fail,  grows with the  task, and always comes  back in the hand -
-----------------------------------------------------------------

                              13


olm@daimi.aau.dk (Ole Lehrmann Madsen) (05/29/91)

olm@daimi.aau.dk (Ole Lehrmann Madsen) writes:

>rdbd34@vall.dsv.su.se (RDB-design grupp 34) writes:

>>Anyone heard of the BETA language ? It's said to be a better Simula.
>>Anyone knows where to get more info ? Is there a PD - compiler perhaps?

>A BETA implementation is available as part of the Mjolner BETA System.
>....
>Further details of the Mjolner BETA System and order form and license
>agreement is included below.

Unfortunately, a regular mail address was missing from the order
form and license agreement. The order form and license agreement
should be mailed to:

	Mjolner Informatics
	Att.: Elmer Sandvad
	Science Park Aarhus
	Gustav Wiedsvej 10, 
	DK-8000 Aarhus C, DENMARK

	Tel.: +45 86 20 20 00 --- Direct: +45 86 20 20 11 - 2752
	Fax.: +45 86 20 12 22
	E-mail: ess@mjolner.dk

Sincerely

Ole Lehrmann Madsen

Computer Science Department
Aarhus University
NY Munkegade
DK-8000 Aarhus C, DENMARK
Tel.: +45 86 12 71 88  --- Direct +45 86 20 27 11 - 5055
Fax.: +45 86 13 57 25
E-mail: olmadsen@daimi.aau.dk
















>-----------------------------------------------------------------
>The  company has taken its name from the Nordic mythology where -
>Mj|lner  is the name of the hammer  of the god Thor.  According -
>to  the mythology, this hammer is  the perfect tool that cannot -
>fail,  grows with the  task, and always comes  back in the hand -
>-----------------------------------------------------------------

>                              13
>