Sunday, May 1, 2022

SAIL and MAINSAIL - the Stanford Artificial Intelligence Language

Bob Sproull may be most widely known as one of the authors of Newman and Sproull's "Principles of Interactive Computer Graphics". Sproull was also one of the designers of the Alto personal computer, the first laser printer, and one of the first page description languages.

Another of Sproull's designs (1970, with Dan Swinehart and subsequently others) is the programming language SAIL, the Stanford Artificial Intelligence Language. SAIL is based on Algol-60 along with features supporting symbolic AI programming:

  • Records (named product types, i.e. "structs")
  • Garbage collection
  • Associative memory of triples
  • Backtracking (search)
  • Processes and coroutines
An associative memory of triples is essentially a "knowledge graph" of logical relationships similar to RDF's triples. SAIL's combination of associative memory, records, and backtracking could be found in Lisp systems of the day as well as Prolog which was emerging at that time. These evolved into various knowledge representation systems which had their heyday in the 1980s and the "semantic web".

Knuth wrote an early implementation of TeX using SAIL. Larry Tesler wrote PUB, a scriptable markup language using SAIL.

SAIL was machine-dependent and not portable. MAINSAIL (Machine Independent Stanford AI Language) descended from SAIL. MAINSAIL dropped the associative memory and backtracking but retained records, garbage collection, and coroutines. MAINSAIL was commercialized in 1980 and made a pretty good mark in the Computer Aided Design industry.

Garbage collected languages were still rare across all industries until Java came along 15 years later. Associative memory made a valiant comeback with JavaSpaces but Sun's myopic battle with Microsoft focused on J2EE and missed the jewel they had in JavaSpaces. Knowledge graphs are becoming much more commonplace and are beginning to be seen as valuable again at the personal and team level.

More about SAIL:








No comments:

Post a Comment