PILOT is a simple programming language which was developed in 1962 to be used in Computer-Aided Instruction (CAI). This basically means that teachers would write interactive programs to be used by students instead of using "old-fashioned" textbooks. Needless to say, this idea has not caught on very widely, and PILOT is not used much anymore. The name PILOT comes from the full name: Programmed Inquiry, Learning, Or Teaching. A formal IEEE standard was established in 1991, and not a whole lot has been done since.
The standard PILOT language supports 11 statements for handling basic tasks such as input, output, text matching, graphics, and file i/o. Unfortunately, the standard says absolutely nothing about how to handle the last two functions, so many PILOT implementations do not handle them. A simple PILOT program might look like this:
T: Hello, welcome to my program. Please enter a number
C: #ans = #num + 7
T: You entered #num. #num + 7 = #ans
This simple program would greet the user, ask for a number, take that number and add 7 to it, then print out the result of the addition. For an intro to the language, you might want to check out the RPilot Documentation.
RPilot, or Rob's PILOT, is a free (aka Open Source) PILOT interpreter which is available to whoever wants it. There are three different "distributions", the DOS, OS/2, and Unix versions. The program is the same, only a few trivial things are changed. RPilot support the following statements:
Accept- For input
Remark- For comments
Type- For output
Jump- For controlling program flow
Use- For calling subroutines
End- For ending subroutines
Match- For matching text to user input
Compute- For storing and calculating variable values
No- For another way to handle output
RPilot also supports the following extensions to standard PILOT:
Execute- For executing a line of PILOT code
Shell- For allowing access to the operating system shell
Generate- For generating random numbers
Debug- For debugging broken programs
RPilot also sports a larger number of mathematical operators than standard
+, -, *, \, &, |, %, and ^. RPilot is listed in the
Free Compilers and Interpreters List.
I got the idea for this after seeing a file entitled "Write a compiler in
QBasic" somewhere. Although I had/have no intention of using BASIC to write
anything, I looked at it, wondering who had ever
done such a thing. The author really only did a very brief intro to basic
compiler principles, and didn't present a whole lot of useful information.
His compiler was
going to be for PILOT, and he included a glimpse at the language.
PILOT being so simple, a compiler for it probably could be written in QBasic,
but you'd permanently damage your brain trying to do so. RPilot is written in C,
and therefore does not make any use of the small amount of code the author
supplied. It's also not a complier, but that's not important :)
Here is a list of the other PILOT interpreters that I know of: