Paper typeless language based on principles of completeness and reference

Related languages
BASEL => Gedanken   Influence
ISWIM => Gedanken   Influence
LISP 1.5 => Gedanken   Influence
PAL => Gedanken   Influence
Gedanken => CONNIVER   Incorporated some features of
Gedanken => Forsythe   Evolution of

  • Reynolds, John C. "GEDANKEN - a simple typeless language which permits functional data structures and coroutines". Argonne, Illinois: Argonne National Laboratory 1969. view details
  • Berry, Daniel M. "The importance of implementation models in ALGOL 68: or how to discover the concept of necessary environment" pp14-24 view details Extract: doi
    Abstract: The need for implementation models in understanding languages, Algol 68 in particular, is stressed. The model is used to demonstrate the new concept of necessary environment of a procedure. Extract: THe necesary environment
    This new concept of necessary environment may be applied to other languages which have procedure values treated as general values, and in which the non-locals are bound as in Algol 60 or 68. In some of these languages such as GEDANKEN [Reynolds] and OREGANO, which this author is developing, the non-locals are kept as long as the procedure value still exists . The usual implementation technique is to save the entire binding time environment . However, saving only the necessary environment would insure correctness while conserving storage.
          in SIGPLAN Notices 5(09) September 1970 view details
  • Reynolds, John "GEDANKEN A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept" view details
          in [ACM] CACM 13(05) (May 1970). view details
  • Gèorz, G. (1972). Die Sprache GEDANKEN als Beitrag zur syntaktischen und semantischen Definition von Programmiersprachen. Erlangen, Inst. f. Math. Maschinen u. Datenverarbeitung. view details
          in [ACM] CACM 13(05) (May 1970). view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 112 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Morris, James H. Jr. "Appendix: A brief comparison of GEDANKEN with ALGOL 60" in "Protection In programming languages" view details Extract: Appendix

    Appendix. A Brief Comparison of Gedanken with Algol-60

    The basic means of introducing new identifiers is the is-declaration which is used  in three ways here:

    1. Count is Ref(0) is like integer Count; Count := 0
    2. Locate is X[•••] is like

    integer procedure Locate(X);
              begin • • • end

    3. I is Locate(X) is like integerI; I : = Locate(X)
    except subsequent assignments to I are forbidden. The types of  identifiers are never declared. The declaration and calls of param-eterless  procedures employ the null parameter list, written "( )".  

    References (addresses) are dealt with more explicitly. Refis a function which returns a new reference, containing its argument. If r is a reference, Val(r) is its contents, and r := e changes its contents to e. A set of coercion rules (not given here)  serve to insert applications of VAL so that, if Count is a reference,

    Count +1 means Val(Count)+1
    I=Count means  I= Val(Count)
    Ref(Count) means Ref(Val(Count))


    Count(I) means (Val(Count))(1)

    Vectors and n-tuples are subsumed under the more general notion of functions. The expressions



    (X if I < X< 3 then 2*X

    else go to Error)



    all denote the same thing: a function F such that F(1) = 2, F(2) = 4, F(3) = 6.

    If Createseal()> returns a pair, the declaration

    Seal, Unseal isCreateseal( )

    serves to decompose it and bind the components to the two identifiers.

    The general form for a (large) GEDANKEN expression is a sequence of (0 or more) is-declarations followed by (1 or more) expressions (X := y is an expression).

    [d1; • • • ;dn;e1;• • • em]

    The declarations and expressions are evaluated from left to right and the value of the whole expression is em . The (textual) scope of the definitions is limited by the brackets.

    To make the programs more readable we write key words of gedanken in boldface and capitalize the first letter of identifiers. Also variously-shaped brackets are used. Comments are written to the right of double slashes (//).

          in [ACM] CACM 16(01) January 1973 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 259 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] CACM 16(01) January 1973 view details
  • Schwartz, J. T. "Automatic data structure choice in a language of very high level" view details Abstract: SETL is a set-theoretically oriented language of very high level whose repertoire of semantic objects includes finite sets, ordered n-tuples, and sets of ordered n-tuples usable as mappings. This paper describes the structure of an optimizer for this language. Among other methods of interest, the optimizer uses techniques which allow relations of inclusion and membership to be established, the domains and ranges of (tabulated) mappings to be estimated from above and below, and the single-valuedness of (tabulated) mappings to be proved. Once facts of this kind have been established, automatic choice of data structures becomes possible. The methods employed are based upon, and extend, known techniques of data flow analysis.
          in [ACM] CACM 18(12) (Dec 1975) view details
  • Library of Congress Subject Headings G155 view details
          in [ACM] CACM 18(12) (Dec 1975) view details