FOIL was the name for two different programming languages.

CAI style language

The first FOIL was a CAI language developed at the University of Michigan in 1967. The acronym stood for File-Oriented Interpretive Language, and it was very similar to other CAI languages like COURSEWRITER and PILOT. However, it tried to make the language somewhat block-structured using whitespace, which ended up making the language vaguely similar to BASIC or ABC.

Example

<pre><nowiki>

:START COUNT=0

TY Enter the number of times you want to repeat the statement:

ACCEPT

MAX=NUMBER.(1)

:LOOP

TY This loop has run #COUNT times it will terminate when it runs #MAX times

IF COUNT<MAX,

COUNT=COUNT+1

GO TO :LOOP

TY Do you want to do this again?

ACCEPT

IF 'yes', GO TO START

IF 'no' GO TO FINISH

:FINISH

TY Goodbye!

STOP

</nowiki></pre>

References

Music generation language

The second FOIL was a music generation language for the Touché computer instrument in 1979. The Touché was a keyboard that had digital tone generation and allowed you to program software for performances. The acronym stood for Far Out Instrument Language and was succeeded by MetaFOIL and FOIL-83. The language was developed by David Rosenboom and was based on Forth.

  • Information on David Rosenboom's music software
  • FOIL - a file oriented interpretive language article at the ACM digital library