Talk:TUTOR

When I realized there was a Wikipedia article on every other computer programming language I knew except for TUTOR, I had to create one. There is a TON of information about TUTOR's history and features that would be very interesting, and worth collecting and saving for the future, right here. I added a rough outline to give people ideas of what information might be worth adding.

Real-world examples of each of the uses of TUTOR, and uses of the different commands, would be very nice.

Information about the various versions and dialects of TUTOR, from people who are experts, would be nice.

If anyone can figure out where TUTOR fits in the Generational list of programming languages, please edit that page also (and note it here or delete this reminder).
 * Certainly FORTRAN-based. Perhaps off of FORTRAN 66 because that is apparently when the computed GOTO was introduced to FORTRAN...TUTOR has a similar computed GOTO (albeit with provisions for negative or zero values). Philhower (talk) 21:59, 24 May 2021 (UTC)

Anything about PLATO, and not particularly relevant to TUTOR, should be put in the article about the PLATO system not here. Aumakua 16:08, 30 November 2005 (UTC) (Dirk Pellett)

legacy
How about a section on TUTOR's descendants? I only know of one: C-&mu; TUTOR, later renamed cT, developed by my dad and others at Carnegie-Mellon after 1985. &mdash;Tamfang 05:04, 11 August 2006 (UTC)


 * Speaking of descendants, I guess I should unwatch the article, as it mentions my parents! —Tamfang (talk) 22:21, 4 May 2024 (UTC)

Hypertutor at Northwestern University was the first non-CERL version of Tutor. It ran on several CDC mainframes by 1975. I did my MS thesis on implementing Tutor on a minicomputer; that version was commercialized by GIST in 1980. I added the cite to that thesis at the end of the TUTOR page because that document is one of the first public documents about TUTOR semantics by someone outside of CERL. Douglas Jones128.255.45.57 (talk) 16:22, 21 March 2008 (UTC)

Evolution of TUTOR
This article ought to mention of two of TUTOR's central features: that there is no library (everything is done via a command), and the way in which university professors added commands to suit their needs, resulting in a language that evolved over time in what might be viewed as a very haphazard manner. The article says that TUTOR was designed in 1965, but local variables came 10 or 15 years after that - the language evolved over a fairly long period of time. Other things worth mentioning: an unusual form of locking via uninterruptible sequences of code (calc state), datasets, namesets. ATBS 06:09, 1 April 2010 (UTC)ATBS —Preceding unsigned comment added by ATBS (talk • contribs)


 * IIRC, there was a way to implement a library of sorts including subroutines from another lesson. We used that in our LDEC chemistry lessons to provide a common look-and-feel and also to provide pre-written solutions to common issues...such as judging significant figures. According to page S12 of, the use command inserted a block from one lesson into another. Philhower (talk) 21:59, 24 May 2021 (UTC)

Macro?
Article text:

''The join command was a unique form of subroutine call. It was defined as being equivalent to textual substitution of the body of the joined unit in place of the join command itself ... (An alternative subroutine call, the do command, conformed to the usual semantics associated with subroutine calls in other programming languages.)''

A call which works as if the raw text or syntax of the definition is absorbed into the call site is usually called a macro and is found in numerous programming languages, including assembly languages. It is not unique now (and would not have been in the 1960's).

It may be true that there was in fact something "unique" about TUTOR's macros at the time, but no evidence of this is cited in the article.

192.139.122.42 (talk) 21:04, 14 March 2011 (UTC)
 * join was not implemented by macro substitution in any of the Tutor implementations I am aware of. Getting the semantics to behave like textual substitution was done by software calisthenics that (in most implementations) fell short of being exactly equivalent to macro substitution.  Between the two issues, describing join in terms of macro substitution seems wrong, particularly in light of the fact that Tutor's define mechanism, like that of C, was pure macro substitution. Douglas W. Jones (talk) 15:03, 23 January 2012 (UTC)

Suggested sections
These suggested sections were commented out in the article, but I thought they would be more appropriate here: Daask (talk) 13:42, 4 May 2024 (UTC)
 * TUTOR's unique features
 * Handling Student Records and Data
 * Versions of TUTOR
 * PLATO
 * HYPERTUTOR
 * CDC
 * GIST
 * TenCore
 * Uses of TUTOR
 * Instructional Lessons
 * Games
 * Other uses of TUTOR