This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may lack focus or may be about more than one topic. Please help improve this article, possibly by splitting the article and/or by introducing a disambiguation page, or discuss this issue on the talk page. (March 2018) This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "FOIL" programming language – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this template message) (Learn how and when to remove this template message)

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

 :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

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.