Jump to content

PILOT

From Wikipedia, the free encyclopedia

Programmed Inquiry, Learning, or Teaching(PILOT) is a simplehigh-level programming languagedeveloped in the 1960s.[1] Like its younger siblingLOGO,it was an early foray into the technology ofcomputer-assisted instruction.

PILOT is animperativelanguage similar in structure toBASICandFORTRANin its basic layout and structure. Its keywords are single characters,Tfor "type" to print text, orAfor "accept", to input values from the user.

Its History[edit]

PILOT was developed byJohn Amsden Starkweather,a psychology professor at theUniversity of California, San Franciscomedical center. In 1962, he developed a simple language for automating learning tests called Computest. Starting in 1968, he developed a follow-on project called PILOT, for various computers of the time such as theSDS 940.[2]

Language syntax[edit]

A line of PILOT code contains (from left to right) the followingsyntaxelements:

  • an optionallabel
  • a command letter
  • an optional Y (for yes) or N (for no)
  • an optional conditional expression in parentheses
  • a colon ( ":" )
  • anoperand,or multiple operandsdelimitedby commas.

A label can also be alone in a line, not followed by other code. The syntax for a label is an asterisk followed by an identifier (alphanumeric string with alphabetic initial character).

Command letters[edit]

The following commands are used in "core PILOT". Lines beginning with "R:" indicate a remark (or a comment) explaining the code that follows.

A
Acceptinputinto "acceptbuffer".Examples:
R:Next line of input replaces current contents of accept buffer
A:
R:Next line of input replaces accept buffer, andstringvariable'FREE'
A:$FREE
R:Next 3 lines of input assigned to string variables 'X', 'Y' and 'Z'
A:$X,$Y,$Z
R:Numeric input assigned to numeric variable "Q"
A:#Q
C
Compute and assign numeric value. Most PILOT implementations have onlyintegerarithmetic,and noarrays.Example:
R:Assignarithmetic meanof #X and #Y to #AM
C:#AM=(#X+#Y)/2
D
Dimension an array, on some implementations.
E
End (return from)subroutineor (if outside of a subroutine) abort program. Always used without any operand.
J
Jump to a label. Example:
J:*RESTART
M
Match the accept buffer against string variables orstring literals.Example:
R:Search accept buffer for "TRUTH", the value of MEXICO and "YOUTH", in that order
M:TRUTH,$MEXICO,YOUTH

The first match string (if any) that is a substring of the accept buffer is assigned to the special variable $MATCH. The buffercharactersleft of the first match are assigned to $LEFT, and the characters on the right are assigned to $RIGHT.

The match flag is set to 'yes' or 'no', depending on whether a match is made. Any statement that has a Y following the command letter is processed only if the match flag is set. Statements with N are processed only if the flag is not set.

N
Equivalent to TN: (type if last match unsuccessful)
R
The operand of R: is acomment,and therefore has no effect.
T
'Type' operand as output. Examples:
R:The next line prints a literal string
T:Thank you for your support.
R:The next line combines a literal string with a variable expression
T:Thank you, $NAME.
U
Use (call) a subroutine. A subroutine starts with a label and ends with E: Example:
R:Call subroutine starting at label *INITIALIZE
U:*INITIALIZE
Y
Equivalent to TY: (type if last match successful)
Parentheses
If there is a parenthesized expression in a statement, it is aconditionalexpression, and the statement is processed only if the test has a value of 'true'. Example:
R:Type message if x>y+z
T(#X>#Y+#Z):Condition met

Derivatives[edit]

Extensions to core PILOT includearraysandfloating pointnumbers in Apple PILOT for theApple II,andLOGO-inspiredturtle graphicsin Atari PILOT forAtari 8-bit computers.[3]

Between 1979 and 1983 the UK PILOT User Group was run by Alec Wood a teacher at Wirral Grammar School for Boys, Merseyside UK. Several machine code versions of a mini PILOT were produced for the microcomputers of the time and a school in Scotland developed an interactive foreign language tutorial where pupils guided footprints around a town asking and answering questions in German, French, etc. An article in the December 1979 ofComputer Agecovered an early implementation called Tiny Pilot and gave a complete machine code listing.

Versions of PILOT overlaid on theBASICinterpreters of early microcomputers were not unknown in the late 1970s and early 1980s, andByte Magazineat one point published a non-Turing completederivative of PILOT known as Waduzitdo by Larry Kheriarty as a way of demonstrating what a computer was capable of.[4][5]PETPILOT (PILOT for the Commodore PET) was the first non-Commodore language for the PET and was written in Microsoft BASIC which shipped with the PET, with a little assistance from Bill Gates. It was created in 1979 by Dave Gomberg and could run on a 4K PET (which was never shipped) and ran well on the 8K PETs that Commodore shipped. It was written in Larry Tessler's living room on PET serial number 2.

1983's Vanilla PILOT for theCommodore 64added turtle graphics,[6]as didSuper Turtle PILOTwhich was published as a type-in listing in the October 1987 issue ofCOMPUTE!magazine.[7]

In 1991 theInstitute of Electrical and Electronics Engineers(IEEE) published a standard for Pilot as IEEE Std 1154-1991. It has since been withdrawn.[8]Areference implementationbased on this was implemented byEric Raymond,and maintained—-reluctantly—-for the next 15 years.[9]

In 1990 eSTeem PILOT for Atari ST computers was developed and programmed by Tom Nielsen, EdD. Based on the IEEE Standards for PILOT, it includes Atari-specific features such as control of Laserdisc and CDROM devices.[10]

A 2018 hobbyist implementation, psPILOT, based in part on the IEEE standard, was implemented using Microsoft's PowerShell scripting language.[11]

References[edit]

  1. ^Rob Linwood."PILOT Resource Center".Sourceforge project.RetrievedOctober 13,2011.
  2. ^Xiuzhi Zhou (1998)."Register of the John A. Starkweather Papers, 1965-1985".University of California, San Francisco library.RetrievedOctober 13,2011.
  3. ^Jim Conlan, Tracy Deliman (1983).Atari PILOT for beginners.Reston Publishing.ISBN9780835903028.
  4. ^Brian Connors (April 6, 2001)."Waduzitdo 2001".RetrievedOctober 13,2011.
  5. ^Larry Kheriarty (September 1978). "WADUZITDO: How To Write a Language in 256 Words or Less".Byte.
  6. ^"Vanilla PILOT, PILOT that comes with turtle graphics".Infoworld.September 12, 1983. pp. 67–69.RetrievedOctober 13,2011.
  7. ^Atarimagazines.com - COMPUTE! Issue 89, October 1987, p74
  8. ^IEEE Standard 1154-1991 for Programmed Inquiry, Learning, or Teaching (PILOT).IEEE Standards Committee. 1991.doi:10.1109/IEEESTD.1991.108548.ISBN0-7381-1184-8.
  9. ^"Twenty years after".
  10. ^"Press Release: eSTeem PILOT".
  11. ^"psPilot".

Further reading[edit]