SAIL (programming language): Difference between revisions

Content deleted Content added
 
(2 intermediate revisions by 2 users not shown)
Line 75:
 
===Records and pointers===
The concept of [[Record (computer science)|records]] as a data type had only recently been introduced when SAIL was being written. This feature thus shows the signs of being "bolted on" to the language syntax. For instance a record structure was defined using the {{code|RECORD!CLASS}} statement: {{code|RECORD!CLASS person (STRING name, address; INTEGER accountnum; REAL balance)|pascal}}. This statement worked in a fashion similar to the {{code|RECORD}} statement in Pascal, defining the template for the record. To create a record, one used the {{code|NEW!RECORD}} statement, which returned a {{code|RECORD!POINTER}}. Pointers were typed, and could be typed to more than one type, for instance, {{code|RECORD POINTER (person,university) rp;|pascal}} defines rp, a pointer to either a person or university record.{{sfn|Smith|1976|p=40}} Pointers could also be declared to point to {{code|ANY!CLASS}}.{{sfn|Smith|1976|p=41}} Accessing the data in a record was similarly idiosyncratic; to print the name file of a person, for instance, the syntax was {{code|PRINT(person:name[rp]);}}.{{sfn|Smith|1976|p=41}}
 
===String scanner===
Line 114:
 
==Uses==
A number of interesting software systems were coded in SAIL, including some early versions of [[File Transfer Protocol|FTP]] and [[TeX]], a document formatting system called PUB,<ref>{{cite web |archive-url=https://web.archive.org/web/20050205011125/http://www.nomodes.com/pub_manual.html |archive-date=5 February 2005|url=http://www.nomodes.com/pub_manual.html|title=PUB Manual|website=Nomodes.com|accessdate=30 December 2017}}</ref> and BRIGHT, a clinical database project sponsored by the [[National Institutes of Health]].<ref>{{cite journal|pmc=2578281 | pages=701–704 | journal=Proc Annu Symp Comput Appl Med Care | title=Development of a Friendly, Self-Teaching, Interactive Statistical Package for Analysis of Clinical Research Data: The BRIGHT STAT-PACK| year=1983 | last1=Rodbard | first1=D. | last2=Cole | first2=B. R. | last3=Munson | first3=P. J. | volume=8 | issue=3 | doi=10.1007/BF02224505 | pmid=6384409 }}</ref><ref>{{cite book|url=https://books.google.com/books?id=Aq2jBQAAQBAJ&q=BRIGHT+Decsystem10+nih&pg=PA479|title=NIH: An Account of Research in Its Laboratories and Clinics|first=DeWitt|last=Stetten|date=10 May 2014|publisher=Academic Press|isbn=9781483277554|via=Google Books}}</ref><ref>{{cite web|url=https://profiles.nlm.nih.gov/ps/access/BBGHLW.ocr|archive-url=https://web.archive.org/web/20160816181522/https://profiles.nlm.nih.gov/ps/access/BBGHLW.ocr|url-status=dead|archive-date=August 16, 2016|title=STANFORD UNIVERSITY MEDICAL EXPERIMENTAL COMPUTER RESOURCE : RR - 00785 : ANNUAL REPORT - YEAR 05|website=Profiles.nlm.nih.gov|accessdate=30 December 2017}}</ref><ref>{{cite web|url=https://archive.org/details/annualreportnati19851nati|title=Annual report : National Institutes of Health. Division of Computer Research and Technology|publisher=Bethesda, Md|website=Archive.org|accessdate=30 December 2017}}</ref><ref>{{cite web|url=http://www.ebooksread.com/authors-eng/national-institutes-of-health-us-division-of/annual-report--national-institutes-of-health-division-of-computer-research-and-ita-549/page-4-annual-report--national-institutes-of-health-division-of-computer-research-and-ita-549.shtml|title=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)|first=Denis Larionov & Alexander|last=Zhulin|website=Ebooksread.com|accessdate=30 December 2017}}</ref><ref>{{cite web|url=https://profiles.nlm.nih.gov/BB/G/H/M/D/_/bbghmd.ocr|archive-url=https://web.archive.org/web/20081012100739/http://profiles.nlm.nih.gov/BB/G/H/M/D/_/bbghmd.ocr|url-status=dead|archive-date=October 12, 2008|title=PUFF/VM PROJECT : Section 4.1.6|website=Profiles.nlm.nih.gov|accessdate=30 December 2017}}</ref><ref>{{cite web|url=https://profiles.nlm.nih.gov/ps/access/BBGHJD.ocr|archive-url=https://web.archive.org/web/20160816164301/https://profiles.nlm.nih.gov/ps/access/BBGHJD.ocr|url-status=dead|archive-date=August 16, 2016|title=Section 9.2.6 : PUFF/WI Project|website=Profiles.nlm.nih.gov|accessdate=30 December 2017}}</ref><ref>{{cite web|url=https://profiles.nlm.nih.gov/ps/access/BBGHMS.ocr|archive-url=https://web.archive.org/web/20160816150857/https://profiles.nlm.nih.gov/ps/access/BBGHMS.ocr|url-status=dead|archive-date=August 16, 2016|title=Section 4.1.7 : PUFF/VM Project|website=Profiles.nlm.nih.gov|accessdate=30 December 2017}}</ref><ref>{{cite web|url=https://profiles.nlm.nih.gov/BB/G/H/L/W/_/bbghlw.pdf|archive-url=https://web.archive.org/web/20041105163923/http://profiles.nlm.nih.gov/BB/G/H/L/W/_/bbghlw.pdf|url-status=dead|archive-date=November 5, 2004|title=STANFORD UNIVERSITY MEDICAL EXPERIMENTAL COMPUTER RESOURCE : RR - 00785 : ANNUAL REPORT -YEAR 05 |website=Profiles.nlm.nih.gov|accessdate=30 December 2017}}</ref>
 
In 1978, there were half a dozen different operating systems for the PDP-10: [[Incompatible Timesharing System|ITS]] (MIT), [[WAITS]] (Stanford), [[TOPS-10]] (DEC), [[CMU TOPS-10]] (Carnegie Mellon), [[TENEX (operating system)|TENEX]] ([[Bolt, Beranek and Newman|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.<ref name="foldoc">{{foldoc|Stanford+Artificial+Intelligence+Language}}</ref>
 
{{anchor|MAINSAIL}}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|lc=on}}.