SAIL(ID:528/sai002)

Stanford Artificial Intelligence Language 


for Stanford Artificial Intelligence Language. Also for Stare At It Later

Dan Swinehart & Bob Sproull, Stanford AI Project, 1970.

A large ALGOL-60-like language for the DEC-10 and DEC-20. Its main feature is a symbolic data system based upon an associative store (originally called LEAP). Items may be stored as unordered sets or as associations (triples). Processes, events and interrupts, contexts, backtracking and record garbage collection. Block-structured macros. Parallelism achieved through multiple processes.

(also Bill Gates' favourite language!)

01700                           There was a compiler named SAIL,
01800                           Assembled and coded in FAIL.
01900                              Its authors, they say
02000                              (one glorious day)
02100                           Were run out of town on a rail.




Places
Structures:
Related languages
GOGOL III => SAIL   Evolution of
LEAP => SAIL   Evolution of
SAIL => 1.pak   Influence
SAIL => FAIL   Written using
SAIL => GEOMED   Based on
SAIL => LEAP   Subset
SAIL => MAINSAIL   Evolution of
SAIL => PSAIL   Evolution of
SAIL => PUB   Dialect of

References:
  • Swinehart, Dan, and Sproull, Bob, "SAIL", Operating Note No. 57.1, Stanford Artificial Laboratory, Stanford University, December, 1968. view details
  • Swinehart, D. and Sproull, B.; SAIL; Operating Note No. 57.2, Stanford AI Project, January 1971 view details
  • Feldman, J. et al "Recent Developments in SAIL An ALGOL-based Language for Artificial Intelligence" view details
          in Su, S. Y. W. ; V. Krishnamurthy, and H. Lam. An Object­oriented Se­mantic Association Model (OSAM*) pp464-494 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Van Lehn, Kurt A "SAIL user manual" Department of Computer Science Stanford University, July 1973 view details Abstract: Report Number: CS-TR-73-373
    Institution: Stanford University, Department of Computer Science
    Title: SAIL user manual.
    Author: VanLehn, Kurt A.
    Date: July 1973
    Abstract: SAIL is a high-level programming language for the PDP-10 computer. It includes an extended ALGOL 60 compiler and a companion set of execution-time routines. In addition to ALGOL, the language features: (1) flexible linking to hand-coded machine language algorithms, (2) complete access to the PDP-10 I/O facilities, (3) a complete system of compile-time arithmetic and logic as well as a flexible macro system, (4) user modifiable error handling, (5) backtracking, and (6) interrupt facilities. Furthermore, a subset of the SAIL language, called LEAP, provides facilities for (1) sets and lists, (2) an associative data structure, (3) independent processes, and (4) procedure variables. The LEAP subset of SAIL is an extension of the LEAP language, which was designed by J. Feldman and P. Rovner, and implemented on Lincoln Laboratory's TX-2 (see [Feldman & Rovner, "An Algol-Based Associative Language," Communications of the ACM, v.12, no. 8 (Aug. 1969), pp.439-449]). The extensions to LEAP are partially described in "Recent Developments is SAIL" (see [Feldman et al., Proceedings of the AFIPS Fall Joint Computer Conference, 1972, pp. 1193-1202]). This manual describes the SAIL language and the execution-time routines for the typical SAIL user: a non-novice programmer with some knowledge of ALGOL. It lies somewhere between being a tutorial and a reference manual.
    pdf
          in ACM Computing Reviews 15(04) April 1974 view details
  • Bobrow, D.G. and B. Raphael, "New programming languages for artificial intelligence" view details Extract: About SAIL
    SAIL is a marriage of LEAP (Feldman 1969), an associative retrieval formalism, and a version of ALGOL 60. It has been in use at Stanford since 1969. Recent improvements, stimulated by the needs of AI researchers, have been primarily focused on adding more powerful and flexible control mechanisms.
          in [ACM] ACM Computing Surveys (CSUR) 6(3) September 1974 view details
  • Leavenworth, Burt M.; Sammet, Jean E. "An overview of nonprocedural languages" pp1-12 view details Abstract: This paper attempts to describe some of the basic characteristics and issues involving the class of programming languages commonly referred to as ?nonprocedural? or ?very high level?. The paper discusses major issues such as terminology, relativeness, and arbitrary sequencing. Five features of nonprocedural languages are described, and a number of specific languages are discussed briefly. A short history of the subject is included.
    Extract: SAIL
    SAIL is a dialect of ALGOL 60 and was developed primarily with the Stanford Hand-Eye System in mind. It is based on the associative processing features of LEAP but contains many new features such as backtracking and matching procedures. Matching procedures are somewhat similar to IPL-V "generators" and are used to generate strategies, and for coding of complex associative contexts. SAIL has sets and lists as data structures, and a new data type called a "context" which is useful for state saving and backup. SAIL contains multiple processes and follows the important principle that an occurrence in one process can influence the flow of control in other processes.
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Reiser, John F "BAIL: a debugger for SAIL" Report Number: CS-TR-75-523 Department of Computer Science Stanford University October 1975 view details Abstract: Report Number: CS-TR-75-523
    Institution: Stanford University, Department of Computer Science
    Title: BAIL: a debugger for SAIL.
    Author: Reiser, John F.
    Date: October 1975
    Abstract: BAIL is a debugging aid for SAIL programs, where SAIL is an extended dialect of ALGOL60 which runs on the PDP-10 computer. BAIL consists of a breakpoint package and an expression interpreter which allow the user to stop his program at selected points, examine and change the values of variables, and evaluate general SAIL expressions. In addition, BAIL can display text from the source file corresponding to the current location in the program. In may respects BAIL is like DDT or RAID, except that BAIL is oriented towards SAIL and knows about SAIL data types, primitive operations, and procedure implementation.
    pdf
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Reiser, John F. "SAIL" Report Number: CS-TR-76-574 Department of Computer Science Stanford University August 1976 view details Abstract: Report Number: CS-TR-76-574
    Institution: Stanford University, Department of Computer Science
    Title: SAIL
    Author: Reiser, John F.
    Date: August 1976
    Abstract: Sail is a high-level programming language for the PDP-10 computer. It includes an extended ALGOL 60 compiler and a companion set of execution-time routines. In addition to ALGOL, the language features: (1) flexible linking to hand-coded machine language algorithms, (2) complete access to the PDP-10 I/O facilities, (3) a complete system of compile-time arithmetic and logic as well as a flexible macro system, (4) a high-level debugger, (5) records and references, (6) sets and lists, (7) an associative data structure, (8) independent processes, (9) procedure variables, (10) user modifiable error handling, (11) backtracking, and (12) interrupt facilities. This manual describes the Sail language and the execution-time routines for the typical Sail user: a non-novice programmer with some knowledge of ALGOL. It lies somewhere between being a tutorial and a reference manual. pdf Extract: History
    HISTORY OF THE LANGUAGE
    The  GOGOL  III compiler,  developed  principally by  Dan  Swinehart  at the Stanford Artificial  Intelligence Project,  was the  basis for  the non-LEAP portions  of SAIL.   Robert Sproull  joined Swinehart  in  incorporating the features of LEAP The first version of the language was released in November, 1969.   SAIL's intermediate  development was  the responsibility  of Russell
    Taylor,  Jim  Low,  and Hanan  Samet,  who  introduced  processes, procedure variables, interrupts,  contexts, matching procedures,  a new  macro system, and other features.   Most recently John  Reiser, Robert Smith,  and Russell Taylor  maintained and  extended SAIL.   They added  a  high-level debugger, conversion to TENEX, a print statement, and records and references.

          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • SAIL/FAIL, Version: 18, August 1976 Dan Swinehart, Robert Sproul, et al. view details Abstract: SAIL is a high-level programming language for the PDP-10 computer. It includes an extended ALGOL 60 compiler and a companion set of execution-time routines. In addition to ALGOL, the language features: 1) flexible linking to hand-coded machine language algorithms, 2) complete access to the PDP-10 I/O facilities, 3) a complete system of compile-time arithmetic and logic as well as a flexible macro system, 4) a high-level debugger, 5) records and references, 6) sets and lists, 7) an associative data structure, 8) independent process, 9) procedure variables, 10) modifial error handling, 11) backtracking, and 12) interrupt facilities. FAIL is a fast, one-pass assembler for the PDP-10 machine language. Although FAIL uses substantially more main memory than MACRO-10, it assembles typical programs in less than one-fifth the cpu time used by MACRO-10. FAIL permits an ALGOL-style block structure which provides a means of localizing the use of some symbols to certain parts of the program, such that the same symbol name can be used without conflict to mean things in different blocks.

    Note: A. No commitment is made to support this or any other version of SAIL with bug fixes or subsequent releases. Users interested in a maintained version should contact Tymchare, Inc. B. When putting up the SAIL system the author suggests first reading the file TELLEM. C. This version is for TOPS-10 only, TOPS-20 and Tenex sites should use 20-2. D. Documentation for FAIL is on the tape.

    External link: Online at Trailing ege
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Smith, Nancy W. "SAIL tutorial" Report Number: CS-TR-76-575 Department of Computer Science Stanford University October 1976 view details Abstract: Report Number: CS-TR-76-575
    Institution: Stanford University, Department of Computer Science
    Title: SAIL tutorial
    Author: Smith, Nancy W.
    Date: October 1976
    Abstract: This tutorial is designed for a beginning user of Sail, an ALGOL-like language for the PDP10. The first part covers the basic statements and expressions of the language; remaining topics include macros, records, conditional compilation, and input/output. Detailed examples of Sail programming are included throughout, and only a minimum of programming background is assumed. pdf
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Chuck Rieger, Hanan Samet. and Jonathan Rosenberg. "Artificial Intelligence Programming Languages for Computer Aided Manufacturing" Maryland Univ College Park Dept of Computer Science Sep 77 TR-595 AD-A047 179/7WC view details Abstract: Eight Artificial Intelligence programming languages (SAIL, LISP, MICROPLANNER, CONNIVER, MLISP, POP-2, AL and QLISP) are presented and surveyed, with examples of their use in an automated shop environment. Control structures are compared, and distinctive features of each language are highlighted. A simple programming task is used to illustrate programs in SAIL. LISP, MICROPLANNER and CONNIVER. The report assumes reader knowledge of programming concepts, but not necessarily of the languages surveyed.
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Shapiro, B "Language processor generation with BNF inputs: methods and implementation" pp85-98 view details Abstract: This paper describes an SLR (1) parser generator written in SAIL for the PDR-10. It accepts grammars defined in a BNF formalism and produces a SAIL program module which is the bottom-up parser produced from the grammar. This module may then be compiled and loaded with semantic routines to produce a language processor. The generator is written in SAIL with a heavy emphasis placed on the use of the LEAP facilities of SAIL for the manipulation of the data structures required for the generator.
          in Comput Programs Biomed. 7(2) June 1977 view details
  • Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Forrey AW, Metcalf RW, Karkeck J, Buergel N, Matthys C, Fraser CW. "Implementation of attractive dialogues in nutritive analysis and clinical dietetics information systems" Med Inform (Lond). 1980 Oct-Dec;5(4) pp253-66 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
    Resources