SNAP(ID:472/sna003)

Report generation language with natural language features 


for Stylised NAtural langugage Programming

Michael Barnett, HW Wilson (publishing company for librarians' reference tools) 1968

Interpreted text-processing language for beginners, close to basic English.

A stylized subset of English to be used for text-processing languages by non-scientists

Featured righthand assignment via the CALL verb, sequential processing via THEN. Designed to be completely layout-free and completely comprehensible to a human, based on the age-old principles of legal and military command sequences.

Permitted spaces in variable names!

CALL "Hocus Pocus" THE MAGICAL SPELL. PRINT THE MAGIC SPELL. EXECUTE.
would print
Hocus Pocus


People:
Related languages
SHADOW V => SNAP   Evolution of
SNAP => PRISM   Evolution of
SNAP => QUILL   Influence

References:
  • Barnett, M.P. "Computer Programming in English", Harcourt Brace 1969. view details
  • Barnett, M. P., "SNAP -- A Programming Language for Humanists" Computers and the Humanities, 4(4) March 1970 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 234 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
  • Sammet, Jean E., "Roster of Programming Languages 1972" 264 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 561 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in ACM Computing Reviews 15(04) April 1974 view details
  • Laitinen, Kari "Natural naming in software development and maintenance" PhD thesis University of Oulu 1995 view details Extract: Easy-to-read programming languages: COBOL and SNAP
    Easy-to-read programming languages: COBOL and SNAP
    The difficulty of computer programming was realized during the early decades of the history of computers. Only specialized people could write computer programs and people who would benefit from the programs could not know for sure whether the programs were doing correct computations. Because of these problems the widely-used programming language COBOL (Common Business-Oriented Language) was defined in the late fifties (Sammet 1981). That language tried to bring features of natural languages into computer programming. SNAP (Stylized Natural Procedural Language) was another language, although not widely known, which tried to make computer programming resemble writing in a natural language (Barnett 1969).
    Because natural naming also attempts to make computer programs more readable, the mentioned programming languages are related to this work. It is also interesting to note that during the first decades of computing there were discussions about using a pure natural language to dictate the behavior of computers (Sammet 1966).
    COBOL is a programming language that has its origins in the fifties and has been very widely used since the late sixties. COBOL is intended to be used in business-oriented applications and the motivations for its definition involve the following (Sammet 1981):
    ? Due to the time and cost of programming, there was a need for a language that would be easy to learn and use.
    ? There was a need to broaden the base of those that can state problems to computers.
    ? There was a desire for people without a programmer's education to be able to read and write computer programs. It should also be possible for managers to be able to read programs in order to check that various kinds of financial calculations are performed correctly.
    ? There was a need to have programs that could be run on computers from different manufacturers.
    The developers of COBOL responded to the needs listed above by defining a language which is in many ways close to natural English. The solution is thus related to the principle of natural naming. The natural features of COBOL include such aspects as having keywords ADD, SUBTRACT, MULTIPLY, and DIVIDE instead of short mathematical symbols such as "+", "-", "*", and "/". Using natural words instead of mathematical symbols raised many disputes among computer scientists, and, therefore, COBOL variations allowing the use of mathematical symbols also exist.
    Many documentation-related aspects were considered when COBOL was defined. The first official version of the COBOL definition included the feature that names could be long and natural names were intended to be used. A COBOL program is intended to be a document itself. The language has documentation related keywords such as AUTHOR, DIVISION, and SECTION which should help the program writer to incorporate relevant documentary information and to divide a program into logical parts. COBOL has been widely used, although it has been neglected by many computer scientists (Shneiderman 1985). Whether or not COBOL has succeeded in being a language that yields readable and understandable programs is too difficult to be answered here. In our opinion, the writing skills of programmers are still needed to achieve appropriate under-standability of programs. Of course, COBOL programs can be made difficult to read and abbreviated names have been used in programming with COBOL.
    SNAP is another programming language which tries to imitate natural languages. SNAP is similar to COBOL in the sense that it includes a large repository of reserved words borrowed from English. As listed by Barnett (1969), the objectives in the development of SNAP were largely the same as in the development of COBOL. SNAP did not, however, become a widelyused or well-known language. Probably the language never had commercially- available compilers; it was used mainly by students. SNAP was designed for applications involving mainly text processing, file reading, and printing. Its narrow applicability is one reason why it was only used in small circles.
    Obviously, the developers of COBOL and SNAP thought that by incorporating many reserved words from a natural language into the programming language, the programs written in that programming language become easy-toread and understand. Using abbreviations has been and still is common in COBOL programming. The SNAP programs shown by Barnett (1969) contain many abbreviations. Therefore, the approach of making programs understandable is different in the case of these languages than in the case of using natural naming. Having many reserved words borrowed from natural languages does not necessarily make source programs more understandable. Reserved words are symbols which need to be repeated over and over again in source programs, and they are the same in every program. For this reason, it should not really harm if short special symbols (e.g. "+" and "-") are used instead of longer reserved words (e.g. ADD and SUBTRACT), because these symbols have to be used very often and need therefore to be kept in mind. Names, on the other hand, are unique in every program. They are more likely to show how a program differs from other programs. It is certain that most programming languages have been designed to make computer programming easier in some way. It is impossible to think that somebody would have created a programming language which he or she would not have thought to be better in some fashion than some existing languages.
    Because there exist hundreds of programming languages (Sammet 1972), we cannot discuss all of them here. However, to our knowledge, there is no programming language which has been specifically designed to incorporate the use of natural naming.
          in ACM Computing Reviews 15(04) April 1974 view details