CONVERT(ID:249/con041)

String processing language hybrid of COMIT and LISP 


String processing language, combined the pattern matching and transformation operations of COMIT with the recursive data structures of Lisp.

A language (based on LISP) and routines to handle transformation rules of the type as in COMIT and  SNOBOL. (Sammet 1966)


Structures:
Related languages
COMIT => CONVERT   Extension of
LISP 1.5 => CONVERT   Extension of
CONVERT => CARPS   Incorporated features of
CONVERT => FLIP   Extension of
CONVERT => REC   Compiler constructed with

References:
  • Guzmán, A. "CONVERT-Diseño de un lenguaje para manipulación de símbolos, y su correspondiente intérprete" Tesis de Licenciatura. ESIME, I. P. N.. Cd. de México. Agosto 1965 view details
  • Guzmán, A. "Polybrick: Adventures in the domain of parallelepipeds" (1966) Memorandum Project MAC, MAC M 308 (AI Memo 96) M. I. T. Mayo. view details
  • Guzmán, A. "TRACE Y HUSMEA: dos funciones LISP para depurar programas" Ciencias de la Información y Computación 1, Junio 1966 view details
  • Guzmán, A. and McIntosh H.V. "CONVERT" Memo MAC M 316 (AI Memo 99), M. I. T. June 1966. view details
  • Guzmán, A. and McIntosh, H. V., "CONVERT" view details Abstract: A programming language is described which is applicable to problems conveniently described by transformation rules. By this is meant that patterns may be prescribed, each being associated with a skeleton, so that a series of such pairs may be searched until a pattern is found which matches an expression to be transformed. The conditions for a match are governed by a code which also allows subexpressions to be identified and eventually substituted into the corresponding skeleton. The primitive patterns and primitive skeletons are described, as well as the principles which allow their elaboration into more complicated patterns and skeletons. The advantages of the language are that it allows one to apply transformation rules to lists and arrays as easily as strings, that both patterns and skeletons may be defined recursively, and that as a consequence programs may be stated quite concisely.

          in [ACM] CACM 9(08) August 1966 view details
  • Guzmán, A. and McIntosh, H.V. "A Program Feature for CONVERT" Memorandum MAC M 305 (AI Memo 95). Project MAC, M.I.T. April 1966. view details
          in [ACM] CACM 9(08) August 1966 view details
  • Bobrow, D review of Guzmán and McIntosh CACM 1966 (CONVERT) view details Abstract: Higher level list and string processing languages can be dichotomized into two major notational classes -- function-oriented vs. format-directed processors. LISP and SLIP are members of the first class, and COMIT, SNOBOL, and AMBIT of the second. It is obvious that each notation is advantageous for different types of problems. CONVERT is an example of a very useful embedding of a format-directed processor in the function-oriented processor of LISP. It is somewhat similar to METEOR and FLIP (also are subsystems within LISP) IN hich interpret algorithms expressed as a set (perhaps recursive) of transformation rules.

    An unusual and important feature of CONVERT is its use of a dictionary to define variable patterns (and formats -- or skeletons as the authors call them) to use in the matching (and reconstruction) process, in addition to the usual repertoire of standard elementary patterns that can be coneatenated to specify compound structures. A variable in a pattern (any symbol not in the standard repertoire) is specified in a dictionary by two items -- a function which specifies the conditions under which this variable matches part of the structure under consideration; and a slot, in which this function can store information about the part of the struc

    ture it matched. A unique feature of these functions is th they can change the function associated with a varia name, so that later occurrences of a variable in a patt may have a different meaning than earlier occurrences the same variable. This use of dictionary variables allo the user great flexibility in defining his own language expressing complex context-dependent transformations. The CONVERT language is very powerful and correspo ingly complex. The reader is well advised to study the deceptively simple and beautiful example given at the end of the paper. It expresses in half a page an algorithm differentiating and simplifying algebraic expressions in in form, going through an intermediate prefix form, and of putting the answer again in infix notation. The paper terse, but well written, and contains a number of very interesting ideas.
          in ACM Computing Reviews 8(01) January-February 1967 view details
  • Guzmán, A. "A primitive Recognizer of Figures in a Scene" (1967) Memorandum Project MAC, MAC M 342 (AI Vision Memo 119) M. I. T., January. view details
          in ACM Computing Reviews 8(01) January-February 1967 view details
  • Guzmán, A. "Scene Analysis Using the Concept of Model" (1967) Report 67-0133; Computer Corporation of America. Cambridge, Mass., USA January. AD-652-017. view details
          in ACM Computing Reviews 8(01) January-February 1967 view details
  • Guzmán, A. "Some Aspects of Pattern Recognition by Computer" (1967) Master’s Thesis, Department of Electrical Engineering, M. I. T., February. AD-656-041. view details
          in ACM Computing Reviews 8(01) January-February 1967 view details
  • Guzmán, A. "Some Aspects of Pattern Recognition by Computer" (1967) mit Project MAC Technical Report, MAC TR 37. view details
          in ACM Computing Reviews 8(01) January-February 1967 view details
  • Guzmán, A. and McIntosh H.V. "Comments on ´All Paths Through a Maze´ pp1525-27 August. view details
          in [iEEE] Proceedings of the IEEE 55(8) August 1967 view details
  • McIntosh H.V.and Guzmán, A. "A Miscellany of CONVERT Programming" Project MAC Memorandum MAC M 346 (AI Memo 130) April 1967. view details
          in [iEEE] Proceedings of the IEEE 55(8) August 1967 view details
  • Abrahams, Paul W. "Symbol manipulation languages". New York: New York University, Courant Inst. of Mathematical Sciences 1968 view details
          in [iEEE] Proceedings of the IEEE 55(8) August 1967 view details
  • Charniak, E. , "CARPS, A Program Which Solves Calculus Word Problems", Report MAC-TR-51, Project MAC, M.I.T., Cambridge, Mass., July 1968 view details External link: Online copy pdf Abstract: A program was written to solve calculus word problems. The program CARPS (Calculus Rate Problem Solver), is restricted to rate problems. The overall plan of the program is similar to Bobrow's STUDENT , the primary difference being the introduction ps
          in [iEEE] Proceedings of the IEEE 55(8) August 1967 view details
  • Sammet, Jean E. "Revised Annotated Descriptor Based Bibliography for the Use of Computers for Non-Numerical Mathematics" 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
  • Guzmán, A. and McIntosh, H.V. "Patterns and Skeletons in CONVERT" view details
          in Bobrow, E. C. and Bobrow, D. G. (eds). The Programming Language LISP: Its Operations and Applications, Vol. II; Berkeley, MIT Press, Cambridge, Mass. 1969. view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 61 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 143 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
  • Leavenworth, Burt M.; Sammet, Jean E. "An overview of nonprocedural languages" pp1-12 view details Abstract: This paper attempts to describe some of the basic characteristics and issues involving the class of programming languages commonly referred to as ?nonprocedural? or ?very high level?. The paper discusses major issues such as terminology, relativeness, and arbitrary sequencing. Five features of nonprocedural languages are described, and a number of specific languages are discussed briefly. A short history of the subject is included.
    Extract: CONVERT
    The specification of a context free grammar in BNF is
    an example of a set of rewriting rules that are order
    independent. The CONVERT package (Guzman and Mclntosh,
    1966) is an example of the introduction of pattern
    matching facilities into LISP.
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • McIntosh, Harold V. and Cisneros, Gerardo "The programming languages REC and Convert" pp81-94 view details Abstract: Two symbol manipulation languages are presented. REC (an acronym for Regular Expression Compiler) is a very compact language possessing a simple control structure. CONVERT is a pattern matching and substitution language well suited to problems whose solution may conveniently be expressed in terms of transformation rules. REC is useful when conciseness is required. such as for microcomputers with limited memory, interactive programming via the keyboard, and so on. Its present form was carefully chosen to facilitate the compilation of CONVERT programs while still preserving a universal appearance. In turn, CONVERT is a natural alternative to consider for an application which is already expressed in terms of transformation rules, as are many compilers, assemblers and symbol manipulation systems. This article primarily describes the appearance of these two languages, but some of the applications which they have been given are mentioned.
          in [SIGPLAN] SIGPLAN Notices 25(07) July 1990 view details