Snostorm

Last updated

Snostorm (Snostorm3) is a version of the SNOBOL4 language with structured programming constructs added. It compensates for the near absence of structured programming constructs in SNOBOL4 by providing IF, ELSEIF, ELSE, LOOP, CASE, and PROCEDURE statements, among others. It was originally designed and implemented by Fred G. Swartz as a preprocessor for SPITBOL running under the Michigan Terminal System (MTS) at the University of Michigan Computing Center during the 1970s. [1]

Contents

Features added

Added features include logical operators, control structures including procedures, initialization blocks, enhanced comments, and listing control. [1]

The grammar includes these added constructs: [1]

Logical operators
Control structures
Initialization
Enhanced comments
Listing control

In addition MTS Snostorm provided options for prettyprinting and for debugging with the Spitbol compiler.

The syntax of Snostorm is largely insensitive to spaces and newlines, but not entirely so because of its dependence upon SNOBOL4 for execution.

Example

A SNOBOL4 program as given in The SNOBOL4 Programming Language by Griswold, Poage, and Polonsky [2] followed by the same program rewritten in Snostorm. [1]

...READOUTPUT=INPUT:F(DISPLAY)TEXT=OUTPUTNEXTTEXTCHAR=:F(READ)COUNT<CH>=COUNT<CH>+1:(NEXT)DISPLAYOUTPUT=LOOPLETTERSCHAR=:F(END)OUTPUT=NE(COUNT<CH>)CH' OCCURS 'COUNT<CH>' TIMES'+ :(LOOP)END
       ...        LOOP WHILE TEXT = INPUT           OUTPUT = TEXT           LOOP WHILE TEXT CHAR =              COUNT<CH> = COUNT<CH> + 1           ENDLOOP        ENDLOOP        OUTPUT =        LOOP WHILE LETTERS CHAR =           IF NE(COUNT<CH>)              OUTPUT = CH ’ OCCURS ’ COUNT<CH> ’ TIMES’           ENDIF        ENDLOOP END

Use

In addition to its use at the eight to fifteen sites that ran the Michigan Terminal System, [1] a Snostorm3 compiler existed at University College London (UCL) from 1982 to 1984 and worked by compiling Snostorm3 into SNOBOL4, which could then be executed using the SNOBOL4 interpreter or by using a SPITBOL compiler to create an executable.[ citation needed ]

Related Research Articles

Fortran General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

The MOO programming language is a relatively simple programming language used to support the MOO Server. It is dynamically typed and uses a prototype-based object-oriented system, with syntax roughly derived from the Ada school of programming languages.

SNOBOL is a series of programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4. It was one of a number of text-string-oriented languages developed during the 1950s and 1960s; others included COMIT and TRAC.

In computer science, control flow is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language.

MAD is a programming language and compiler for the IBM 704 and later the IBM 709, IBM 7090, IBM 7040, UNIVAC 1107, UNIVAC 1108, Philco 210-211, and eventually the IBM S/370 mainframe computers. Developed in 1959 at the University of Michigan by Bernard Galler, Bruce Arden and Robert M. Graham, MAD is a variant of the ALGOL language. It was widely used to teach programming at colleges and universities during the 1960s and played a minor role in the development of CTSS, Multics, and the Michigan Terminal System computer operating systems.

In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers. The amount and kind of processing done depends on the nature of the preprocessor; some preprocessors are only capable of performing relatively simple textual substitutions and macro expansions, while others have the power of full-fledged programming languages.

Michigan Terminal System mainframe operating system

The Michigan Terminal System (MTS) is one of the first time-sharing computer operating systems. Developed in 1967 at the University of Michigan for use on IBM S/360-67, S/370 and compatible mainframe computers, it was developed and used by a consortium of eight universities in the United States, Canada, and the United Kingdom over a period of 33 years.

The C preprocessor or cpp is the macro preprocessor for the C, Objective-C and C++ computer programming languages. The preprocessor provides the ability for the inclusion of header files, macro expansions, conditional compilation, and line control.

In computing, a polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independent of the programming language used to compile or interpret it.

In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact: "either it will or will not be a match." The patterns generally have the form of either sequences or tree structures. Uses of pattern matching include outputting the locations of a pattern within a token sequence, to output some component of the matched pattern, and to substitute the matching pattern with some other token sequence.

Ratfor is a programming language implemented as a preprocessor for Fortran 66. It provided modern control structures, unavailable in Fortran 66, to replace GOTOs and statement numbers.

The GNU coding standards are a set of rules and guidelines for writing programs that work consistently within the GNU system. The GNU Coding Standards were written by Richard Stallman and other GNU Project volunteers. The standards document is part of the GNU Project and is available from the GNU website. Though it focuses on writing free software for GNU in C, much of it can be applied more generally. In particular, the GNU Project encourages its contributors to always try to follow the standards—whether or not their programs are implemented in C.

xHarbour is a free multi-platform extended Clipper compiler, offering multiple graphic terminals (GTs), including console drivers, GUIs, and hybrid console/GUIs. xHarbour is backward-compatible with Clipper and supports many language syntax extensions, greatly extended run-time libraries, and extensive third party support.

Magik is an object-oriented programming language that supports multiple inheritance and polymorphism, and it is dynamically typed. It was designed and implemented in 1989 by Arthur Chance of Smallworld Systems Ltd. as part of Smallworld Geographical Information System (GIS). Following Smallworld's acquisition in 2000, Magik is now provided by GE Energy, still as part of its Smallworld technology platform.

This article describes the syntax of the C# programming language. The features described are compatible with .NET Framework and Mono.

The PHP syntax and semantics are the format (syntax) and the related meanings (semantics) of the text and symbols in the PHP programming language. They form a set of rules that define how a PHP program can be written and interpreted.

The PL/I preprocessor is the preprocessor for the PL/I computer programming language. The preprocessor interprets a subset of the full PL/I language to perform source file inclusion, conditional compilation, and macro expansion.

Unified Code Count (UCC)

The Unified Code Counter (UCC) is a comprehensive software lines of code counter produced by the USC Center for Systems and Software Engineering. It is available to the general public as open source code and can be compiled with any standard ANSI C++ compiler.

Ezhil (programming language) programming language

Ezhil, in Tamil language script, is a compact, open source, interpreted, programming language, originally designed to enable native-Tamil speaking students, K-12 age-group to learn computer programming, and enable learning numeracy and computing, outside of linguistic expertise in predominately English language-based computer systems.

IFTRAN was created in 1972 by E. F. Miller at General Research Corporation, Santa Barbara, California as a mechanism to support structured programming concepts in a FORTRAN-based environment.

References

  1. 1 2 3 4 5 "SNOSTORM", MTS Volume 9: SNOBOL4 in MTS, Computing Center, University of Michigan, June 1979, pages 99-120. Retrieved 1 September 2014.
  2. Griswold, Ralph E., J. F. Poage, and I. P. Polonsky (1968). The SNOBOL4 Programming Language. Englewood Cliffs, NJ: Prentice Hall, ISBN   0-13-815373-6.