PILOT
Programmed Instruction, Learning, Or Teaching (PILOT) is a simle historic programming language developed in the 1960s.[1] Like its younger sibling LOGO programming language, it was an early foray into the technology of computer assisted instruction (CAI).
Contents |
[edit] History
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]
[edit] 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).
[edit] 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.
R:Next line of input replaces current contents of accept buffer A: R:Next line of input replaces accept buffer, and string variable '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 only integer arithmetic, and no arrays. Example:
R:Assign arithmetic mean of #X and #Y to #AM C:#AM=(#X+#Y)/2
- D
- Dimension an array, on some implementations.
- E
- End (return from) subroutine or (if outside of a subroutine) abort program. Always used without any operand.
- J
- Jump to label. Example:
J:*RESTART
- M
- 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 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 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.
- N
- Equivalent to TN: (type if last match unsuccessful)
- R
- The operand of R: is a comment, and therefore has no effect.
- T
- '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.
- 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 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
[edit] Derivatives
Extensions to core PILOT include arrays and floating point numbers in Apple PILOT, and implementation of LOGO-inspired turtle graphics in Atari PILOT.[3]
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]
An open source implementation was called RPilot,[1] and another called Sky Pilot begun in 2005.[9]
[edit] References
- ^ a b Rob Linwood. "PILOT Resource Center". Sourceforge project. http://rpilot.sourceforge.net/pilot.html. Retrieved October 13, 2011.
- ^ Xiuzhi Zhou (1998). "Register of the John A. Starkweather Papers, 1965-1985". University of California, San Francisco library. http://oac.cdlib.org/view?docId=tf2d5nb1xg;style=oac4;doc.view=entire_text. Retrieved October 13, 2011.
- ^ Atari PILOT for beginners. Reston Publishing. 1983. http://books.google.com/books?id=VujzAAAAMAAJ.
- ^ Brian Connors (April 6, 2001). "Waduzitdo 2001". http://www.reocities.com/ResearchTriangle/Station/2266/tarpit/waduzitdo/wdzref.html. Retrieved October 13, 2011.
- ^ Larry Kheriarty (September 1978). "WADUZITDO: How To Write a Language in 256 Words or Less". Byte.
- ^ "Vanilla PILOT, PILOT that comes with turtle graphics". Infoworld: pp. 67–69. September 12, 1983. http://books.google.com/books?id=ry8EAAAAMBAJ&pg=PA67. Retrieved October 13, 2011.
- ^ Atarimagazines.com - COMPUTE! Issue 89, October 1987, p74
- ^ "IEEE Standard 1154-1991 for Programmed Inquiry, Learning, or Teaching (PILOT)". IEEE Standards Committee. 1991. doi:10.1109/IEEESTD.1991.108548. http://standards.ieee.org/reading/ieee/std_public/description/busarch/1154-1991_desc.html.
- ^ Rob Linwood (December 25, 2005). "Sky Pilot". Sourceforge project. http://skypilot.sourceforge.net/. Retrieved October 13, 2011.
[edit] Further reading
- John Starkweather (1985). User's guide to Pilot. Prentice-Hall. ISBN 9780139377556.
|
|||||||||||||||||