By Andrew J. Wozniewicz
Milwaukee, June 1, 2007
Modula-7 is an object-oriented programming language in which a module is the essential primary concept,
the most fundamental building block. Module is all there is to Modula-7 programs - everything else is commentary.
A module is a combination of data and code (state and operations).
Modules in Modula-7 come in different flavors, such as
functions, objects, classes, and - well - modules (actual syntax elements in the language).
Modula-7 continues the tradition of Algol-like, block-structured (i.e. "inherently readable") programming languages
(such as Pascal, Modula‑2, Modula‑3, Oberon),
being especially influenced by the modern incarnations of Pascal such as Delphi Object Pascal by Borland,
while picking up good ideas from a wide variety of other languages, including (not in any particular order) Java,
C++, C#, C, Python, Eiffel, E, Ada, and others. It has been conceived as a successor to — and an upgrade from — those
Modula-7 is both an application-, and a systems-programming language; potentially
a compiled, as well as an interpreted language suitable for scripting.
Modula-7 is intended for many kinds of programming projects, from teaching fundamentals of programming to students,
to supporting individual/hobbyist efforts of a single programmer,
to large-scale projects undertaken by teams of software engineers, to being embeddable as a scripting language in
The language is intended to be simple for simple tasks,
while being immensely powerful when the power is required.
Of at least equal importance is that the language be readable and
lend itself to writing elegant, easily maintainable programs, regardless of their size and complexity,
which is more than can be said about many-a-programming-language
in widespread use today.
As the starting point of the exploration of the Modula-7 language, and in a time-honored tradition of programming language tutorials,
it is now appropriate to introduce one of the simplest programs in any language, the venerable
In all fairness, this is not THE simplest Modula-7 program, nor is it even the simplest "Hello-World"-type program in this language.
The simplest "Hello-World" program in Modula-7 is just a one-liner:
The (default) module declarations are all implied in the above single-line, such that this one line is
exactly equivalent to the 3-line HelloWorld module fully-spelled out.
That's how simple simple tasks should be.
On the other hand, Modula-7 is fully equipped to handle even the most complex programming projects, with support
for separately compilable modules (that act like namespaces in other languages),
full support for object-orientation, aspect-oriented programming, built-in concurrent programming
features, exception handling, and a lot more.
The language was designed by Andrew J. Wozniewicz at Optimax Corporation in a progressive series of attempts to
incorporate the latest
features and concepts from the different programming languages that made their appearance in the 1990's and beyond.
The name "Modula" for the language has been deliberately chosen to clearly indicate its heritage (Modula-2 was
supposed to be an improvement over Pascal), while the number 7 —
beyond being "magic" in many
cultures — by virtue of being an increment of magnitude greater than one starting from 2,
indicates a clean break with the limitations of Modula-2 and its immediate successors. It also
represents the numerous failed prior attempts to create a better mouse-trap.. er.. language by its designer.
It may also have something to do with the fact that the language design was finalized in the year 2007.