Talk:TUTOR (programming language)
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).
How about a section on TUTOR's descendants? I only know of one: C-μ TUTOR, later renamed cT, developed by my dad and others at Carnegie-Mellon after 1985. —Tamfang 05:04, 11 August 2006 (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 Jones18.104.22.168 (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)
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.
- 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)