• DocumentCode
    987392
  • Title

    Parsing languages by pattern matching

  • Author

    Rus, Teodor

  • Author_Institution
    Dept. of Comput. Sci., Iowa Univ., Iowa City, IA, USA
  • Volume
    14
  • Issue
    4
  • fYear
    1988
  • fDate
    4/1/1988 12:00:00 AM
  • Firstpage
    498
  • Lastpage
    511
  • Abstract
    The language of universal algebras is used as an alternative approach for programming language specification. BNF (Backus-Naur form) rules are used for specifying the signature of the language algebras instead of the context-free syntax. The algorithm for program parsing is inductively defined by the following universal algebraic construction: any function defined on the generators of a free algebra taking values in the carrier of another similar algebra can be uniquely extended to a homomorphism between the two algebras; any conventional programming language can be specified by a finite set of BNF rules and its algebra of symbols is generated by a finite set of generator classes. Thus, any function defined on the finite set of generators offers an algebraic mechanism for a universal algorithm for source language program parsing. The right-hand side of the BNF rules are the patterns searched by the algorithm in the source text of the program. The essential feature of this algorithm is that it can be used as a driver for code generation and optimization in a translator.
  • Keywords
    grammars; high level languages; program compilers; program interpreters; BNF; Backus-Naur form; code generation; language algebras; pattern matching; program parsing; programming language specification; signature; translator; universal algebras; Algebra; Cities and towns; Computer aided instruction; Computer languages; Computer science; Pattern matching; Program processors; Programming profession; Text recognition;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.4672
  • Filename
    4672