SAIL (programming language)
SAIL, the Stanford Artificial Intelligence Language, was developed by Dan Swinehart and Bob Sproull of the Stanford AI Lab in 1970. It was originally a large ALGOL 60-like language for the PDP-10 and DECSYSTEM-20. The language combined the earlier PDP-6/-10 language GOGOL compiler, essentially an integer-only version of ALGOL, with the associative store from the LEAP language. The first release was in November 1969 and it saw continued development into the 1980s, including a commercial derivative, MAINSAIL.
SAIL's main feature is a symbolic data system based upon an associative store based on LEAP by Jerry Feldman and Paul Rovner. Items may be stored as unordered sets or as associations (triples). Other features include processes, procedure variables, events and interrupts, contexts, backtracking and record garbage collection. It also has block-structured macros, a coroutining facility and some new data types intended for building search trees and association lists.
A number of interesting software systems were coded in SAIL, including some early versions of FTP and TeX, a document formatting system called PUB,[1] and BRIGHT, a clinical database project sponsored by the National Institutes of Health.[2][3][4][5][6][7][8][9][10]
In 1978, there were half a dozen different operating systems for the PDP-10: ITS (MIT), WAITS (Stanford), TOPS-10 (DEC), CMU TOPS-10 (Carnegie Mellon), TENEX (BBN), Tymcom-X (Tymshare), and TOPS-20 (DEC, based on TENEX).
SAIL was ported from WAITS to ITS so that MIT researchers could make use of software developed at Stanford University. Every port usually required the rewriting of I/O code in each application.
A machine-independent version of SAIL called MAINSAIL was developed in the late 1970s and was used to develop many eCAD design tools during the 1980s. MAINSAIL was easily portable to new processors and operating systems, and was still in limited use as of 2005[update].
See also
- Stanford Extended ASCII (SEASCII)
References
- ^ "PUB Manual". Nomodes.com. Archived from the original on 5 February 2005. Retrieved 30 December 2017.
- ^ Rodbard, D.; Cole, B. R.; Munson, P. J. (1983). "Development of a Friendly, Self-Teaching, Interactive Statistical Package for Analysis of Clinical Research Data: The BRIGHT STAT-PACK". Proc Annu Symp Comput Appl Med Care. 8 (3): 701–704. doi:10.1007/BF02224505. PMC 2578281. PMID 6384409.
- ^ Stetten, DeWitt (10 May 2014). NIH: An Account of Research in Its Laboratories and Clinics. Academic Press. ISBN 9781483277554 – via Google Books.
- ^ "STANFORD UNIVERSITY MEDICAL EXPERIMENTAL COMPUTER RESOURCE : RR - 00785 : ANNUAL REPORT - YEAR 05". Profiles.nlm.nih.gov. Retrieved 30 December 2017.
- ^ "Annual report : National Institutes of Health. Division of Computer Research and Technology". Archive.org. Bethesda, Md. Retrieved 30 December 2017.
- ^ Zhulin, Denis Larionov & Alexander. "Read the eBook Annual report : National Institutes of Health. Division of Computer Research and Technology (Volume 1981-83) by National Institutes of Health (U.S.). Division of online for free (page 4 of 56)". Ebooksread.com. Retrieved 30 December 2017.
- ^ "PUFF/VM PROJECT : Section 4.1.6". Profiles.nlm.nih.gov. Retrieved 30 December 2017.
- ^ "Section 9.2.6 : PUFF/WI Project". Profiles.nlm.nih.gov. Retrieved 30 December 2017.
- ^ "Section 4.1.7 : PUFF/VM Project". Profiles.nlm.nih.gov. Retrieved 30 December 2017.
- ^ "STANFORD UNIVERSITY MEDICAL EXPERIMENTAL COMPUTER RESOURCE : RR - 00785 : ANNUAL REPORT -YEAR 05" (PDF). Profiles.nlm.nih.gov. Retrieved 30 December 2017.
Bibliography
- Reiser, John (August 1976). SAIL (PDF) (Technical report). Stanford Artificial Intelligence Laboratory.
Further reading
- Beebe, Nelson H. F. (2005). "Proceedings of the Practical TEX 2005 Conference: The design of TEX and METAFONT: A retrospective" (PDF). TUGboat. 26 (1). Salt Lake City, Utah, USA: University of Utah, Department of Mathematics: 39–40. Retrieved 2017-03-07.
The underscore operator in SAIL source-code assignments printed as a left arrow in the Stanford variant of ASCII, but PDP-10 sites elsewhere just saw it as a plain underscore. However, its use as the assignment operator meant that it could not be used as an extended letter to make compound names more readable, as is now common in many other programming languages. The left arrow in the Stanford variant of ASCII was not the only unusual character.