World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0000057399
Reproduction Date:

Title: Pilot  
Author: World Heritage Encyclopedia
Language: English
Subject: John Amsden Starkweather, In the news/Candidates/June 2009, FOIL (programming language), Pilot, IEEE 802.11ai
Collection: Educational Programming Languages, Ieee Standards
Publisher: World Heritage Encyclopedia


Programmed Instruction, Learning, or Teaching (PILOT) is a simple historic programming language developed in the 1960s.[1] Like its younger sibling LOGO, it was an early foray into the technology of computer assisted instruction (CAI).


  • History 1
  • Language syntax 2
    • Command letters 2.1
  • Derivatives 3
  • References 4
  • Further reading 5


PILOT was developed by John Amsden Starkweather, a psychology professor at the University of California, San Francisco medical 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 the SDS 940.[2]

Language syntax

A line of PILOT code contains (from left to right) the following syntax elements:

  • an optional label
  • a command letter
  • an optional Y (for yes) or N (for no)
  • an optional conditional expression in parentheses
  • a colon (":")
  • an operand, or multiple operands delimited by 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

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

Accept input into "accept buffer". Examples:
 R:Next line of input replaces current contents of accept buffer
 R:Next line of input replaces accept buffer, and string variable 'FREE'
 R:Next 3 lines of input assigned to string variables 'X', 'Y' and 'Z'
 R:Numeric input assigned to numeric variable "Q"
Compute and assign numeric value. Most PILOT implementations have only integer arithmetic, and no arrays. Example:
 R:Assign arithmetic mean of #X and #Y to #AM

Dimension an array, on some implementations.
End (return from) subroutine or (if outside of a subroutine) abort program. Always used without any operand.
Jump to label. Example:

Match the accept buffer against string variables or string literals. Example:
 R:Search accept buffer for "TRUTH", the value of $MEXICO and "YOUTH", in that order

The first match string (if any) that is a substring of the accept buffer is assigned to the special variable $MATCH. The buffer characters left 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.

Equivalent to TN: (type if last match unsuccessful)
The operand of R: is a comment, and therefore has no effect.
'Type' operand as output. Examples:
 R:Output a literal string
 T:Thank you for your support.
 R:Output a variable expression
 T:Thank you, $NAME.

Use (call) a subroutine. A subroutine starts with a label and ends with E: Example:
 R:Call subroutine starting at label *INITIALIZE

Equivalent to TY: (type if last match successful)
If there is parenthesized expression in a statement, it is a conditional expression, 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


Extensions to core PILOT include arrays and floating point numbers in Apple PILOT, and implementation of LOGO-inspired turtle graphics in Atari PILOT.[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 Issue 1 December 1979 of Computer Age covered an early implementation called Tiny Pilot and gave a complete machine code listing.

Versions of PILOT overlaid on the BASIC interpreters of early microcomputers were not unknown in the late 1970s and early 1980s, and Byte Magazine at one point published a non-Turing complete derivative of PILOT known as Waduzitdo by Larry Kheriarty as a way of demonstrating what a computer was capable of.[4][5] A 1983 product called Vanilla PILOT for the Commodore 64 combined some features of LOGO,[6] as did Super Turtle PILOT which was published as a type-in listing in the October 1987 issue of COMPUTE! magazine.[7]

In 1991 the Institute of Electrical and Electronics Engineers (IEEE) published a standard for Pilot as IEEE Std 1154-1991. It has since been withdrawn.[8]

In 1990 eSTeem PILOT for Atari ST computers was developed and programmed by Tom Nielsen, EdD. Based on the IEEE Standards for PILOT and added GEM features, it included access and control of Laserdisc and CDROM devices. [9]

An open source implementation was called RPilot,[1] and another called Sky Pilot begun in 2005.[10]


  1. ^ a b Rob Linwood. "PILOT Resource Center". Sourceforge project. Retrieved October 13, 2011. 
  2. ^ Xiuzhi Zhou (1998). "Register of the John A. Starkweather Papers, 1965-1985". University of California, San Francisco library. Retrieved October 13, 2011. 
  3. ^ Jim Conlan, Tracy Deliman (1983). Atari PILOT for beginners. Reston Publishing. 
  4. ^ Brian Connors (April 6, 2001). "Waduzitdo 2001". Retrieved October 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. Retrieved October 13, 2011. 
  7. ^ - COMPUTE! Issue 89, October 1987, p74
  8. ^ "IEEE Standard 1154-1991 for Programmed Inquiry, Learning, or Teaching (PILOT)". IEEE Standards Committee. 1991.  
  9. ^ "Press Release: eSTeem PILOT". 
  10. ^ Rob Linwood (December 25, 2005). "Sky Pilot". Sourceforge project. Retrieved October 13, 2011. 

Further reading

  • John Starkweather (1985). User's guide to Pilot. Prentice-Hall.  
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.