PANON-1B(ID:3166/pan008)

Pattern-directed symbol manipulation language 


language for symbol manipulation

from Caracciolo di Forino et al 1966

"PANON-IB is to be considered basically as a Universal Programming Language for Symbol Manipulation, since it includes Markov Normal Algorithms, which are notoriously equivalent to Turing Machines [...] The main difference of the present version with respect to the original [version] is the introduction of labelled transformation rules, which were explicitly foreseen there, but considered for implementation only as a further development. A second difference is the elimination of the initial statement for reading the initial argument string and the introduction of a particular symbol to be included in the transformation rules for reading-in a character at a time in a way similar to TRAC [15]



Structures:
Related languages
PANON-1 => PANON-1B   Evolution of
PANON-1B => PANON-2   Evolution of

References:
  • Caracciolo di Forino , A., L. Spanedda , N. Wolkenstein; "PANON-1B: A programming language for symbol manipulation" view details Abstract: PANON-1B is a Universal Programming Language for Symbol Manipulation, base on a particular extension of Markov Normal Algorithms. It consists essentially of a sequence of Labelled Structural Transformation Rules to be applied to an arbitrary argument string, according to appropriate sequencing rules. PANON-1B includes also specifications for input-output operations. The basic principles are discussed. Some details of a particular complete hardware representation are given. Extract: Introduction
    Introduction
    PANON-1B is a Universal Programming Language for Symbol Manipulation (or, more exactly, for defining string transformation processes), based on a particular extension of the concept of a Markov Normal Algorithm (MNA) [1,2]
    The basic concepts concerning Generalized Markov Algorithm (GMA) have appeared in the report [3], where two particular extensions of the concept of a MNA, called S-GMA (Simple GMA) and CF-GMA (Conditional Functional GMA) have been discussed and assumed as a basis for two versions of the PANON (Programmazlone Algoritmi NOn Numerici) family of Programming Languages. Various other extensions appeared there as suggestions for further developments.
    The theoretical backgrounds and practical motivations have already been discussed in [3] as well as in the paper [4] where it has been applied to the definition of Recursive Functions and to various topics in Automata Theory. So that we shall simply remark here that PANON-IB is to be considered basically as a Universal Programming Language for Symbol Manipulation, since it includes Markov Normal Algorithms, which are notoriously equivalent to Turing Machines. Additional discussions have moreover appeared in two theses [5, 6]. In the first, a comparison is made between GMA's, lambda-calculus and LISP whereas in the second one GMA's are compared with Iron's Syntax Directed Compiler [7] and applied to the formal obtention of derivatives as well as to the simplification of rational algebraic expressions
    The main difference of the present version with respect to the original paper [3] is the introduction of labelled transformation rules, which were explicitly foreseen there, but considered for implementation only as a further development. A second difference is the elimination of the initial statement for reading the initial argument string and the introduction of a particular symbol to be included in the transformation rules for reading-in a character at a time in a way similar to TRAC [15]
    Another difference is a complete definition of particular hardware representation( instead of defining only a language) which has been particularly studied in order to make it possible to operate on any possibile object string, including these representing PANON-1B programs. The same basic ideas have occured too often in the literature, to deserve further introductory comments, except perhaps for pointing out that they appear as a very natural and basic device for defining string transformation processes, and very efficient from the point of view of the programming effort, at least for a large class of problems dealing with transformations of a single argument string, On the other hand, direct reference to the concept  of a Markov Normal Algorithm or even, more formally, to Post-production  systems [18] gives a theroretical basis to this approach to string manipulation  processes.
    Unfortunately the same cannot be said from the point of view of the running time, since the language makes continuously reference to a syntactical analyser, in most cases simply for deciding that a substring does not belong to a given class,  and that a substitution rule is not applicable, so that one has to try the one and  so on.
    Among the actual Symbol Manipulations Languages, which are similarly based on the concept of MNA, although this is not usually mentioned, we can in fact  cite COMIT and SNOBOL.
    On the other hand Formula Algol [8] seems to have adopted a substitution rule, essentially equivalent to our structural transformation rules. The same can  be said of AMBIT [17], although both such systems are essentially ordinary  programming languages, making no references to Markov Algorithms. Again a similarity can be noted between our transformation rules and the "operators" defined in the General Problem Solver[9] as well as with many concepts as developed in the field of Syntax Directed Compilers. And indeed our basic ideas were already laid down more than four years ago in connection with compiling problems, and a brief reference to this work has already appeared in the short paper[9] presented at the IFIP 1962 Congress in Munich.
    Some similarities as well as varluus differences can also be seen between our approach and Van Wijngaarden's Generalized Algol[10] as developed in particular by the De Bakker [ll], although such a comparison could be made better between a further "self-modificable" extension of Generalized Markov Algorithm, which is presently being investigated, rather than the actual concept of a fixed Generalized Markov Algorithm. A certain similarity exists  also between TRAC [15] and Strachey's Macrogenerator [16] on the one hand and  PANON on the other, since all those systems are based esentially on recursive  substitution rules.
    Last, but not least, we have to mention finally the "Axiomatic of System for String Transformation" AXLE [12] recently defined by Cohen and Wegstein, since in this case rather than similarities we could speak of absolute identity. And indeed, apart from inessential terminological differences, AXLE differs from our labelled Generalized Markov Algorithm essentially because we admit the possibility of omitting the "transfer number" (our optional goto clause) understanding in such a case a transfer to the first "imperative llne" (our transformation rule) in accordance with the Markov Normal Sequencing Scheme.
    In the present paper we shall first give a definition of the Simple Labelled Generalized Markov Algorithm, and then we shall describe the PANON-1B language as developed so far at our Computing Center and implemented on our own-built computer, the CEP (Calcolatrice Elettronica Pisana).

          in [ACM] Proceedings of the ACM symposium on Symbolic and algebraic manipulation, 1966 view details
  • di Forino, A. Carraciolo "String Processing Languages and Generalized Markov Algorithms" view details
          in Bobrow, D. G. (ed) "Symbol Manipulation Languages and Techniques", Proceedings of the IFIP Working Conference on Symbol Manipulation Languages. North-Holland Publishing Co., Amsterdam, 1968 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 184 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.]
          in Bobrow, D. G. (ed) "Symbol Manipulation Languages and Techniques", Proceedings of the IFIP Working Conference on Symbol Manipulation Languages. North-Holland Publishing Co., Amsterdam, 1968 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 204 view details
          in Computers & Automation 21(6B), 30 Aug 1972 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 446 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 Computers & Automation 21(6B), 30 Aug 1972 view details