Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!rochester!pt!andrew.cmu.edu!bas+
From: bas+@andrew.cmu.edu (Bruce Sherwood)
Newsgroups: comp.edu
Subject: Re: Authoring Systems
Message-ID: 
Date: Mon, 27-Jul-87 13:57:17 EDT
Article-I.D.: andrew.wV2tFxy00jaUBXc0ch
Posted: Mon Jul 27 13:57:17 1987
Date-Received: Tue, 28-Jul-87 04:37:15 EDT
Organization: Carnegie Mellon University
Lines: 91

Concerning authoring systems for preparing materials for either UNIX or
MS/DOS environments, I might mention something which does do that (but may
not fit the other stated requirements).

At Carnegie Mellon University we have Unix-based workstations (IBM RT PC,
Sun2, Sun3, and MicroVax) running the Andrew system software developed in a
join CMU-IBM project.  Call Unix level 1 in a layered software environment.
Level 2 is the Andrew window manager "wm", soon to be replaced by X11 from
MIT.  Level 3 is the Andrew "base environment", a subroutine library which
among other things facilitates embedding a standard (and powerful) scrolling
text editor panel within your own program.  Level 4 is CMU Tutor, a
programming language with the following properties:

1) Integrated environment -- text editor, graphics editor,
compiler/linker/executor are all packaged together.

2) Incremental compiling, so that it looks as tho you're using an interpreter
(instant revision) but it runs at the speed of a compiled language.  Contrast
this with C, where compiling and linking of interesting Andrew programs
typically takes five minutes.

3) Direct entry of complex text (italics, centered, etc.).  Such text can't
go into a C program because the compiler chokes on it.

4) Graphics editor:  Click in the execution window, and source code is
inserted into the source window, and the source code is reexecuted to make
the new display.  This enormously speeds up the production of the display
parts of the program.

5) Compiler errors are marked on the correct line, down to the character
position, and the accompanying message is explicit rather than vague.
Similarly for run-time errors.  Contrast this with the vague error messages
given by the C compiler, often with misidentifcation of the offending line.
Or contrast with reading a dump at run time.

7) Rescaling for variable window sizes.  Two lines of source code suffice to
make text and graphics resize when the window is reshaped.

8) An on-line reference manual which not only gives several ways to find
information but also provides sample routines to illustrate all features.
Thanks to incremental compilation and universal cut-and-paste between
windows, these examples can be run instantly, so the manual describes itself.

9) Programs written in CMU Tutor on Unix-based Andrew workstations can be
compiled and run on MS-DOS PCs and on Apple Macintoshes.  Because display and
control are expressed in a generic rather than an environment-specific way,
programs are remarkably environment-independent.  For example, mouse-driven
menus on Andrew are pop-up menus, but on the PC and Mac they are pull-down
menus (we do our own menus on the PC).  But in the CMU Tutor source code one
just says "menu", and this generic statement then does whatever is
appropriate on the various machines.  Since CMU Tutor programs can be made to
automatically adjust to varying window sizes, they automatically adjust to
the different screen sizes on these various machines.

Although the main thrust of the PC and Mac versions is to run programs
written in the productive multi-window workstation environment, one can write
programs directly on these machines using a batch compiler.  And there is now
an experimental version being debugged on the Mac which does give incremental
compiling, source and execution windows, and graphics editing.

CMU Tutor is a dialect of the Tutor languages, especially Tutor and
MicroTutor of the PLATO Project at the University of Illinois, with
enhancements stimulated by modern mouse-and-graphics oriented environments.
It is a full language, not a simple "authoring" language, with most of the
constructs associated with normal computer languages but with major
enhancements in the area of display, sequencing, and response analysis.

Although it does not generate C code as was requested in the question about
authoring systems, we do intend eventually to permit linking to C routines.
It is already the case that one can use a CMU Tutor front end to control
other resources, by starting up other Unix processes and communicating thru
files.  For example, a CMU physics professor uses a CMU Tutor program to
create an input file in the proper format for Spice, a big circuit-analysis
program.  His CMU Tutor program starts up Spice and watches for the
appearance of an output file from Spice.  It reads this output file,
manipulates the contents with powerful string features, and graphs the
results.  This same professor is working on using CMU Tutor as a front end to
the Cray at the Pittsburgh Supercomputer Center.

CMU Tutor is being used at a number of universities which have acquired
Andrew and CMU Tutor.  For $500 one can get a university-wide site license.
If you are interested, write to Andrew Distribution, Information Technology
Center, Carnegie Mellon University, Pittsburgh PA 15213, and they'll send you
licensing information.  Be sure to state what kind of workstation you intend
to run Andrew on.  When you take out a license for the IBM-owned Andrew
system software, we throw in for free CMU Tutor, which is owned by Carnegie
Mellon.

Bruce Sherwood
Center for Design of Educational Computing
Carnegie Mellon University