[comp.compilers] Availability of Turing Software

mendell@turing.toronto.edu (Mark Mendell) (01/12/89)

              Availability of Turing Language
                Software and Documentation
                       January 1989

The Turing programming language includes all of Pascal's
features and more.  Its extension, Turing Plus, includes
concurrency, exception handling, and systems programming
language features; it is an alternative to languages like C
and Modula.  The December 1988 issue of the Communications
of the ACM features Turing and Turing Plus.  These
languages, which were developed at the University of
Toronto, are in use in a number of universities and high
schools in the US and Canada.

FEATURES OF TURING AND TURING PLUS

Besides the features of Pascal, Turing includes convenient
strings and input/output, if statements with elsif clauses,
case statements with otherwise clauses, loop statements
with exits, modules with import and export, dynamic arrays
and parameters, assertions (assert, pre, post and invari-
ant), type transfer functions (such as string to real),
random number generation, exponentiation, and run-time con-
stants.  Here is a complete Turing program that repeatedly
picks a random number from 1 to 6 until it picks a 6:

     % Roll a die until you get 6.  (This line is a comment)
     var die : int
     loop
          randint (die, 1, 6)
          exit when die = 6
          put "This roll is ", die
     end loop
     put "Stopping with roll of 6"

The syntax is easy to learn, especially for the beginner
who might otherwise use Basic or Logo.  Semicolons are not
required.  Declarations can appear wherever statements can
appear.

     The features that Turing Plus adds to Turing include
natural (unsigned) numbers, sized numbers (e.g., nat1 is a
one-byte natural number), bit manipulation, subprograms as
variables, characters and fixed length character strings,
explicit type cheats (e.g., #c treats any value c as a
nat1), indirection (e.g., int@(16#8ab36) is a peek or poke
to hex location 8ab36), concurrency with dynamic forking
and monitors, interrupt handling procedures, completely
checked separate compilation, linkage to C and assembler,
exception handlers, binary and random access input/output,
assembly language inserts, and conditional compilation.
For example, here is a complete Turing Plus program that
runs two concurrent processes, one outputting Hi's and the
other Ho's.

     % This program outputs Hi's and Ho's in an unknown order
     process speak (word : string)    % Template for concurrent processes
          loop
               put word
          end loop
     end speak

     fork speak ("Hi")   % Start concurrently outputting Hi Hi Hi
     fork speak ("Ho")   % Start concurrently outputting Ho Ho Ho

AVAILABLE TURING SOFTWARE

An IBM PC compatible Turing demo disk is available free of
charge to educators interested in teaching with Turing.
Here is a chart of available Turing software.

COMPUTER      SOFTWARE             ARRANGEMENT
SYSTEM        [See notes]

IBM PC        turing [1]           Individual copy 
compatible                         or
                                   School licence

Sun/3 OS 3.x  turing [1],          All three on one tape
              tplus [2], and
              tpc [3]

Sun/3 OS 4.0  turing [1],          All three on one tape
              tplus [2], and
              tpc [3]

Sun/4 OS 4.0  turing [1],          All three on one tape
              tplus [2], and
              tpc [3]

Vax BSD 4.2   turing [1],          All three on one tape
              tplus [2], and
              tpc [3]

Notes:
[1] "turing" is the Turing Student System (editor
integrated with high speed pseudo code compiler). The IBM
PC version for schools comes with documentation, electronic
lessons for Turing and technical support.

[2] "tplus" is the Turing Plus Student System (editor
integrated with high speed pseudo code compiler).

[3] "tpc" is the portable, self-compiling, production qual-
ity Turing Plus compiler.  This compiler generates 680x0
assembler, VAX assembler or C.  The distribution includes
the source for tpc (in Turing Plus), but not the source for
turing or tplus.  The distribution includes the source of
MiniTunis, a highly simplified implementation of Unix in
Turing Plus.  MiniTunis is the basis of University of
Toronto operating system course projects.  "tpc" does not
yet run on a PC.

The PC software ("turing", the Student Turing System) is
available to individuals for $69; this is a floppy with a book.
The SUN and VAX software is currently available to schools,
but not to commercial establishments.  A university or col-
lege instructor can apply for free trial usage of the Tur-
ing and Turing Plus software for a school term.  Licenses are
on a yearly basis and the price depends on the configuration;
contact Chris Stephenson (see below) for details.

TURING SOFTWARE UNDER DEVELOPMENT

A Macintosh version of Turing [1], supported by Apple, is
currently in beta testing.  A Unisys Icon version is in
testing.  A symbolic debugger is being tested in the lab.
A high speed compiler for Turing Plus is under development.
There is a Numerical Turing compiler developed by Tom Hull,
running on SUN/3s, that supports dynamically selectable
precision of real numbers.   J.R. Cordy and colleagues at
Queen's University, Kingston, Canada, are developing
TuringTool, a visual system for management of Turing and
Turing Plus programs.  The Tunis implementation of secure
Unix is written in Turing Plus.  The Polyx implementation
of multi-threaded Unix for shared memory multiprocessors is
being written in Turing Plus.

BOOKS AND REPORTS ON TURING

Introduction to Computer Science using the Turing Program-
ming Language.  R.C. Holt and J.N.P. Hume.  1984, 404 pages
(includes the Turing Report).  This is an introductory
textbook used in universities.  Available from Prentice-
Hall publishers (formerly Reston publishers).

The Turing Programming Language: Design and Definition.
R.C.  Holt, P.A. Matthews, J.A. Rosselet, J.R. Cordy.
1988, 325 pages.  This book explains the design goals of
the language.  The language's formal definition is given.
Available from Prentice-Hall publishers.

Turing Tutorial Guide.  J.N.P. Hume.  1988, 213 pages.
This is an introductory text used in high schools and col-
leges.  It is available to schools using the Turing Student
System.  Available from Holt Software Associates (contact
Chris Stephenson, see below).

Concurrent Programming using Turing Plus Language.  R.C.
Holt and D. Penny. These course notes introduce concurrent
programming concepts and Turing Plus.  When used with the
"tplus" software, this provides an easy to learn introduc-
tion to concurrent programming.  1988, 108 Pages.
Available by special arrangement; contact Chris Stephenson,
see below.

The Concurrent Programming of Operating Systems Using the
Turing Plus Language.  R.C. Holt and D. Penny.  This is a
draft of a book that includes "Concurrent Programming Using
Turing Plus" as well the description and source of Mini-
Tunis, a highly simplified version of Unix written in Tur-
ing Plus that runs under Unix.  MiniTunis is the basis of
student projects in the operating systems course at the
University of Toronto.   1988, 400 pages.   Available by
special arrangement; contact Chris Stephenson, see below.

The Turing Report and the Turing Plus Report.  These techn-
ical reports define the Turing and Turing Plus languages.
Free to researchers.  Contact Chris Stephenson, see below.

The Turing Newsletter.  This is a quarterly publication for
educators.  It contains ideas, examples, news and views on
Turing of interest to the teacher.  Chris Stephenson (see
below) is editor.  Distributed free to selected parties.

MORE INFORMATION

For distribution info:   Ms. Chris Stephenson (distrib@turing.toronto.edu)
                    (416) 978-6985
                    Holt Software Associates Inc.
                    203 College Street, Suite 305
                    Toronto, Canada M5T 1P9

For technical info: Mr. Mark Mendell (mendell@turing.toronto.edu)
                    Computer Systems Research Institute
                    Sandford Fleming Bldg, Rm 4101
                    University of Toronto
                    Toronto, Canada M5S 1A4

For research info:  Prof. Ric Holt (holt@turing.toronto.edu)
                    Computer Systems Research Institute
                    Sandford Fleming Bldg, Rm 2001
                    University of Toronto
                    Toronto, Canada M5S 1A
-- 
Mark Mendell
	    Computer Systems Research Institute    University of Toronto
	    Usenet:	{linus, ihnp4, allegra, decvax, floyd}!utcsri!mendell
	    Internet:	mendell@turing.toronto.edu
			mendell@turing.utoronto.ca
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.EDU
Plausible paths are { decvax | harvard | yale | bbn}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request