Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
Mawl
- See:
- Language type:
- Description:
Mawl is a compiled
structured scripting language
designed for implementing interactive
on-line services.
The syntax of Mawl is similar to that of C.
Primitive data types in the language
include integers, reals, booleans, and
strings. For data aggregates, Mawl
supports vectors (homogenous) and
tuples. All variables in Mawl are marked
as 'auto' or 'static'. The static variables
are persistent, holding their values from
session to session.
Mawl also supports conventional
sequential control constructs: conditionals
and loops, but no goto.
Because it is a special-purpose language
designed for building interactive services,
Mawl programs do not have traditional
single-entry-point subroutine structure.
Instead, a Mawl program consists of one or
more invokable sessions, each of which
can have multiple steps of presenting output
and accepting input. A Mawl program can
be 'executing' any number of sessions
simultaneously, using built-in automatic
synchronization.
The fundamental data type for Mawl's
interactive services is the form.
A form is simply an interface between
display and control. Mawl forms have an
input type and an output type (possibly
aggregates, of course) and use templates
for their display.
The really cool part of this is that the
application programmer can treat the
multi-step, event-driven sequence of
delivering a form, letting the user
work on it, and accepting the results all
as if it were an atomic operation!
Mawl includes a simple exception handling
mechanism for taking care of unusual cases
or error conditions.
The current implementation of Mawl is
implemented as a translator, converting
Mawl code into C++ code for compiling
and linking with a run-time library.
Mawl is available from Lucent technologies
at no charge, but with licensing conditions.
- Origin:
D.A. Ladd, J.C. Ramming, T. Ball, 1995.
- See Also:
- Remarks:
One of the primary design goals of Mawl was
to separate the control logic of a service
from its presentation. To this end, Mawl
uses template-driven HTML generation for
web services, with
so-called '.mhtml' files allowed to include
various kinds of Mawl substitutions.
Since Mawl does not have all the facilities
one might wish in a general-purpose
programming language, it permits inclusion
of in-line C/C++ code.
Mawl was created as part of Project Tardis
at Bell Labs (now Lucent).
- Links:
-
-
- Date:
- Sample code:
/* the Voting example from the Mawl 2.1 Tutorial */
typedef { string name, int nVotes } vote;
static [ vote ] tally = [ ];
static int total = 0;
session vote
{
auto form { [ vote ] tally, int total, string castvote } showvote;
showvote.put( { tally, total, "Vote" } );
}
subsession void AddVote(string name)
{
++total;
auto int i;
for (i = 0; i < tally.length(); ++i)
if (tally[i].name == name) {
tally[i].nVotes++;
return;
}
tally.append( { name, 1 } );
}
session Vote
{
auto form void -> { string name } getName;
AddVote( getName.put().name );
}
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.