• DocumentCode
    745262
  • Title

    R++: adding path-based rules to C++

  • Author

    Litman, Diane ; Patel-Schneider, Peter F. ; Mishra, Anil ; Crawford, James ; Dvorak, Daniel

  • Author_Institution
    Res. Dept., AT&T Labs., Florham Park, NJ, USA
  • Volume
    14
  • Issue
    3
  • fYear
    2002
  • Firstpage
    638
  • Lastpage
    658
  • Abstract
    Object-oriented languages and rule-based languages offer two distinct and useful programming abstractions. However, previous attempts to integrate data-driven rules into object-oriented languages have typically achieved an uneasy union at best. R++ is a new, closer integration of the rule-based and object-oriented paradigms that extends C++ with a single programming construct, the path-based rule, as a new kind of class member. Path-based rules-data-driven rules that are restricted to following pointers between objects-are like automatic methods that are triggered by changes to the objects they monitor. Path-based rules provide a useful level of abstraction that encourages a more declarative style of programming and are valuable in object-oriented designs as a means of modeling dynamic collections of interdependent objects. Unlike more traditional pattern-matching rules, path-based rules are not at odds with the object-oriented paradigm and offer performance advantages for many natural applications
  • Keywords
    C++ language; knowledge based systems; logic programming; logic programming languages; object-oriented programming; pattern matching; C++ language; R++ language; data-driven rules; declarative programming; object-oriented designs; object-oriented languages; path-based rules; pattern-matching rules; pointers; programming abstractions; rule-based languages; Computerized monitoring; Dynamic programming; Object oriented modeling; Object oriented programming;
  • fLanguage
    English
  • Journal_Title
    Knowledge and Data Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1041-4347
  • Type

    jour

  • DOI
    10.1109/TKDE.2002.1000347
  • Filename
    1000347