Go up. Go to department page

The Orm System


Orm is an interactive programming environment based on structure-oriented editing and incremental compilation. The environment includes both a programming level and a meta level. The programming level supports program development, from editing to execution and debugging. The compilation tasks such as static-semantic analysis, code generation, and loading are all done incrementally and automatically as needed by the system. The meta level supports structure-oriented editing of grammars. These grammars describe the abstract syntax, concrete syntax, static semantics, and code generation for a specific language. The Orm environment is aimed towards object-oriented languages and the current version supports the major part of Simula.

Although Orm is a prototype in many aspects, it is sufficiently complete to write and execute real programs. As a test case, Orm was used in an introductory programming course for computer engineering students in 1990. Orm is also used in courses on compiler construction and programming environments to demonstrate interactive and incremental techniques.

The Orm system is available for testing and research purposes. The current release runs on Sparc workstations under Solaris and X Windows. Contact Boris.Magnusson@cs.lth.se or Gorel.Hedin@cs.lth.se for information on how to get the system.

The Orm system was developed as part of the Mjolner project.

Selected publications

B. Magnusson, G. Hedin, S. Minör, et al.
An overview of the Mjolner/Orm Environment
In TOOLS'90, Paris, France.
LU-FS-TR:90-57. 12 pages.
[ps, 287 kB]

B. Magnusson et al.
Mjolner/Orm User's Guide (version 1.3)
LU-CS-IR:91-4]
[ps, 1 009 kB]

J. L. Knudsen, M. Lofgren, O. L. Madsen, B. Magnusson (eds)
Object-oriented environments: The Mjolner approach
PRENTICE HALL, The Object-Oriented Series, ISBN 0-13-009291-6 (hbk), 1994
[Content list (html)]


A number of novel implementation techniques were developed to support various aspects of Orm. See, for example, the following papers:

G. Hedin
An Overview of Door Attribute Grammars
International Conference on Compiler Construction (CC'94), pp 31-51. LNCS 786, Springer Verlag. 1994.
A technique to support efficient incremental static-semantic analysis for object-oriented languages.
[ps, 169 kB]

G. Hedin
Context-Sensitive Editing in Orm
In K. Systä et al (eds.), Proceedings of the Nordic Workshop on Programming Environment Research, Tampere, Finland. Tampere University of Technology. Software Systems Lab. TR 14. January 1992.
A technique for using static-semantic information to give advanced editing support.
[ps, 110 kB]

S. Minör, B. Magnusson
Using Mjolner Orm as a structure-based meta environment
In Structure-Oriented Editors and Environments, L. Neal, G. Szwillus (Eds), Academic Press. LU-CS-TR:92-101. 30 pages.
A technique using grammar interpretation to support interactive development of language-based environments.
[ps, 349 kB]

G. Hedin, B. Magnusson
Supporting exploratory programming in Simula
In Proceedings of the 15th Simula Conference, Jersey, 16-18 Sept. 1987, pp 73-88.
LU-CS-TR:88-31.
A technique to allow dynamic updates to the source code of executing programs.
[Abstract (html)]

The name "Orm" is not an acronym, but the name of a fictional character (a Scanian viking). 
Last modified: August 19, 1999