ALGOL 68S
{{Short description|Programming language}}
{{Infobox programming language
| name = ALGOL 68S
| logo =
| logo caption =
| screenshot =
| screenshot caption =
| paradigms = Multi-paradigm: concurrent, imperative
| family = ALGOL
| designer = Charles H. Lindsey
| developer =
| released = {{Start date and age|1977}}
| latest release version =
| latest release date =
| typing = static, strong, safe, structural
| scope = Lexical
| programming language = BLISS
| discontinued =
| platform = Motorola 680x0, Sun SPARC
| operating system = SunOS, Solaris, GEMDOS
| license =
| file ext =
| file format =
| website =
| implementations =
| dialects =
| influenced by =
| influenced =
}}
ALGOL 68S is a programming language designed as a subset of ALGOL 68, to allow compiling via a one-pass compiler.{{cite journal |last=Hibbard |first=P.G. |date=May 1977 |title=A Sublanguage of ALGOL 68 |journal=SIGPLAN Notices |volume=12 |issue=5|pages=71–79 |doi=10.1145/954652.1781177 |s2cid=37914993 |doi-access=free }} It was mostly for numerical analysis.
Implementations
A compiler for ALGOL 68S was available for the PDP-11, written in the language BLISS. The multiprocessor version designed for the C.mmp{{cite journal |url=http://vestein.arb-phys.uni-dortmund.de/~wb/a68s.txt}} {{Dead link|date=September 2018 |bot=InternetArchiveBot |fix-attempted=yes}} Description of C.mmp A68S implementation. has been preserved at the PDP Unix Preservation Society archive.{{cite web |url=http://www.tuhs.org/Archive/PDP-11/Applications/algol68.tar.gz |title=Archived copy |website=www.tuhs.org |access-date=13 January 2022 |archive-url=https://web.archive.org/web/20080720120211/http://www.tuhs.org/Archive/PDP-11/Applications/algol68.tar.gz |archive-date=20 July 2008 |url-status=dead}}
Charles H. Lindsey created another implementation of ALGOL 68, named ALGOL 68S, for Sun-3, Sun SPARC (under SunOS 4.1), Sun SPARC (under Solaris 2), Atari ST (under GEMDOS) and Acorn Archimedes (under RISC OS).
Chief differences from ALGOL 68
The main differences between ALGOL 68 and 68S, as summarised from Appendix 4 of the Informal Introduction,{{cite book |last1=Lindsey |first1=C. H. |author-link=Charles H. Lindsey |last2=van der Meulen |first2=S. G. |date=1977 |title=Informal Introduction to Algol 68 |publisher=North-Holland}} include:
- No union
- No flex, but strings are handled specially
- No arrays inside structures (but references to arrays were allowed) and a similar restriction on arrays of arrays (multidimensional arrays are nonetheless permitted)
- Limits on use of long and short to aid implementing on small computers
- No heap
- No parallel processing
- Limits on the order of declaration and other small syntactic differences to allow one-pass compiling
- No formats