COMIT II(ID:178/com008)

String-handling and pattern-matching language 


String-handling and pattern-matching language

Places
Structures:
Related languages
COMIT => COMIT II   Evolution of
COMIT II => CLPP   Evolution of aspects
COMIT II => SP/1   Influence

References:
  • Yngve, Victor "Computer Programming with COMIT II" MIT, Cambridge Mass 1963. view details
  • Yngve, Victor, "COMIT" view details
          in [ACM] CACM 6(03) (Mar 1963) view details
  • Leavenworth, B. review of Yngve 1962 ACM view details Abstract: Based on his experience with early descriptions of COMIT, the author is convinced that documentation for different purposes should be kept separate. Therefore, three publications are available for COMIT, a primer, a reference manual, and an operators manual. The primer contains exercises with answers, and problems to be run on the computer. The latter can be graded by a problem-grading program written in COMIT.

    The author admits that, while the reference manual is explicit on syntax, it must rely on detailed flow charts for specification of semantics. One wonders whether the specification of the compiler written in a high-level language would not be a better form of documentation than detailed flow charts. Interestingly, the manual itself is preserved;on Flexowriter tapes. Perhaps subsequent revisions could be updated automatically by an editing program?

    A good suggestion made by the author is that primers should be subjected to several iterations with feedback from users. He closes with the thought that manuals should be as accurate as the checked-out program, which would seem to argue for the point of view put forth above.

          in ACM Computing Reviews 5(01) January-February 1964 view details
  • Fano, Robert "The MAC system: a progress report" pp131-150 view details
          in Sass, M. and W. Wilkinson, eds. Computer Augmentation of Human Reasoning Spartan Books, Washington, D.C., 1965 view details
  • Lecarme, O. "Interface du système COMIT II pour fonctionnement sur IBM 7044 avec le système IBSYS-IBJOB". Grenoble, 1966. view details
          in Sass, M. and W. Wilkinson, eds. Computer Augmentation of Human Reasoning Spartan Books, Washington, D.C., 1965 view details
  • Foster, J. M. "List processing" London, McDonald 1967 view details
          in Sass, M. and W. Wilkinson, eds. Computer Augmentation of Human Reasoning Spartan Books, Washington, D.C., 1965 view details
  • Bobrow, Daniel Review of Foster 1967 view details Extract: Review
    [ Book ] FOSTER, J. M.
    List processing.
    American Elsevier Publ., New York, 1967, 54 pp. $4.50.

    This tiny (54 pages) monograph on list processing is a beautiful introduction to techniques which have been used for some time in many applications. Among the topics included are: 1) the representations of lists (both in the computer and externally); and 2) operations on lists, garbage collection, and typical list languages. One short chapter is also devoted to an example of list processing used in a program to perform syntactic analysis of language. All the examples in the book are programmed in an extended A~Go~ with added list processing functions, and are carefully chosen to illustrate important points about list processing. The book's principal weakness is its lack of depth, which is not really to be expected in such a brief monograph. The summary of the list processing languages IPL-V, LISP, FLIP, FLPL, and COMIT are too brief to give any real feeling for these languages to people who have not seen them before. But these are minor quibbles with a very fine book which will broaden the outlook of people who think of computers only as tools to manipulate numbers, and will allow them to begin to appreciate what can be done with list processing techniques for symbol manipula
    tion. D. a. Bobrow, Cambridge, Mass.

          in ACM Computing Reviews 9(01) January 1968 view details
  • Macleod, IA "SP/1 - a FORTRAN integrated string processor" pp255-260 view details Extract: Introduction
    In general, string processing systems deal with data which
    is in the form of unstructured strings of characters.
    COMIT (Yngve, 1962), SNOBOL-3 (Farber, Griswold
    and Polansky, 1966) and SNOBOL4 (Griswold, Poage
    and Polansky, 1968) are three well-known string processing
    languages. Typical of the types of operation
    possible in these languages are matching, insertion,
    replacement and concatenation of strings and substrings.
    With the increasing usage of computers in many different
    fields, the distinction between numeric and non-numeric
    applications is becoming less apparent, as for example
    in information retrieval problems. Consequently it
    seems desirable that a single programming system should
    incorporate efficient numeric and non-numeric capabilities.
    The SP/1 system described here has been designed
    and implemented as a string processing system embedded
    in FORTRAN-IV.
    To avoid adding to the diversity of programming
    systems already in existence and since SNOBOL is a wellknown
    language whose syntax is readily adaptable to a
    FORTRAN environment, the operations provided in
    SP/I are similar to those available in SNOBOL-3.
    Unlike, for example DASH (Milner, 1967), which is a
    string processing extension embedded in ALGOL, SP/1
    is both a syntactic and semantic extension to FORTRAN.
    The string processing statements can be represented by
    a set of macros which are expanded into FORTRAN
    statements by a macro generator (Macleod and Pengelly,
    1969) prior to compilation. The macros have been
    designed so that there is a close similarity between the
    syntax of the corresponding SP/1 and SNOBOL3
    statements.
    For example, the SNOBOL-3 statement
    REPEAT E "(" *V* ")" = V /S (REPEAT)
    deletes all the pairs of left and right parentheses from a
    string E. The corresponding SP/I statement is
    In addition, SP/1 provides a data type known as an
    association which may have a range of alternative values
    associated with it. This data type is in some ways
    similar to the pattern type in SNOBOL-IV and the
    assertion type in AXLE (Cohen and Wegstein, 1965).
    A further distinctive feature of SP/1 is that strings are
    stored as sequences of atoms where an atom is the
    smallest meaningful unit of the string. The size of an
    atom is determined on input as shown below, but
    normally an atom may be regarded as a single character
    symbol or as a group of consecutive alphameric characters.
    The latter could be the case for example in text
    processing where one atom would be equivalent to a
    word of text. This approach allows the processor to
    operate on strings composed of text words while retaining
    the capability to manipulate strings of individual symbols
    where required. This provides faster operation with a
    considerable saving in storage requirements in the text
    processing types of applications where the smallest
    logical unit of information is a word of text. Thus,
    essentially, there are two modes of operation, character
    and text, corresponding to the two types of storage. In
    the current version of SP/1 mixed mode operations are
    not allowable. The method of string storage, which
    involves a hash table, is described elsewhere (Macleod,
    1969a). Extract: Introduction
    In general, string processing systems deal with data which
    is in the form of unstructured strings of characters.
    COMIT (Yngve, 1962), SNOBOL-3 (Farber, Griswold
    and Polansky, 1966) and SNOBOL4 (Griswold, Poage
    and Polansky, 1968) are three well-known string processing
    languages. Typical of the types of operation
    possible in these languages are matching, insertion,
    replacement and concatenation of strings and substrings.
    With the increasing usage of computers in many different
    fields, the distinction between numeric and non-numeric
    applications is becoming less apparent, as for example
    in information retrieval problems. Consequently it
    seems desirable that a single programming system should
    incorporate efficient numeric and non-numeric capabilities.
    The SP/1 system described here has been designed
    and implemented as a string processing system embedded
    in FORTRAN-IV.
    To avoid adding to the diversity of programming
    systems already in existence and since SNOBOL is a wellknown
    language whose syntax is readily adaptable to a
    FORTRAN environment, the operations provided in
    SP/I are similar to those available in SNOBOL-3.
    Unlike, for example DASH (Milner, 1967), which is a
    string processing extension embedded in ALGOL, SP/1
    is both a syntactic and semantic extension to FORTRAN.
    The string processing statements can be represented by
    a set of macros which are expanded into FORTRAN
    statements by a macro generator (Macleod and Pengelly,
    1969) prior to compilation. The macros have been
    designed so that there is a close similarity between the
    syntax of the corresponding SP/1 and SNOBOL3
    statements.
    For example, the SNOBOL-3 statement
    REPEAT E "(" *V* ")" = V /S (REPEAT)
    deletes all the pairs of left and right parentheses from a
    string E. The corresponding SP/I statement is
    In addition, SP/1 provides a data type known as an
    association which may have a range of alternative values
    associated with it. This data type is in some ways
    similar to the pattern type in SNOBOL-IV and the
    assertion type in AXLE (Cohen and Wegstein, 1965).
    A further distinctive feature of SP/1 is that strings are
    stored as sequences of atoms where an atom is the
    smallest meaningful unit of the string. The size of an
    atom is determined on input as shown below, but
    normally an atom may be regarded as a single character
    symbol or as a group of consecutive alphameric characters.
    The latter could be the case for example in text
    processing where one atom would be equivalent to a
    word of text. This approach allows the processor to
    operate on strings composed of text words while retaining
    the capability to manipulate strings of individual symbols
    where required. This provides faster operation with a
    considerable saving in storage requirements in the text
    processing types of applications where the smallest
    logical unit of information is a word of text. Thus,
    essentially, there are two modes of operation, character
    and text, corresponding to the two types of storage. In
    the current version of SP/1 mixed mode operations are
    not allowable. The method of string storage, which
    involves a hash table, is described elsewhere (Macleod,
    1969a).
          in The Computer Journal 13(3) view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Gazdar, Gerald "COMIT ==> PATR II" ACL Anthology: T87 T87-1009 1987 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details