Availability of Turing Software

Mark Mendell <mendell@turing.toronto.edu>
Wed, 11 Jan 89 11:27:40 EST

          From comp.compilers

Related articles
Availability of Turing Software mendell@turing.toronto.edu (Mark Mendell) (1989-01-11)
| List of all articles for this month |

From: Mark Mendell <mendell@turing.toronto.edu>
Organization: University of Toronto, CSRI
Date: Wed, 11 Jan 89 11:27:40 EST

                            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.


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
                    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

          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., > 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
                              put word
                    end loop
          end speak

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


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.

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]

[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.


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.


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.


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

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.