Abstract

This chapter introduces some new techniques and applications of declarative programming. Declarative programming is a user friendly interface between the computer and the user. It simply requires the programmer to put in the specifications for the value to be computed, and the computer uses the appropriate algorithm to carry out the function. The chapter discusses some approaches to declarative programming, like constraint systems and local propagation networks, which distributes the logic among several objects. The discussion also includes the implementation of a local propagation network and the problems associated with it. The chapter also details the linear equations and Linogram, a drawing system that has a behavior to recursively draw all the feature's sub-features. A module to solve the systems of linear equations forms the main component of the linogram. Linogram has another class, called constraint, which represents constraints. The method to derive constraints is also presented. Intrinsic constraint sets are represented by the class Intrinsic_Constraint_Set which are a simple container class that holds a list of Constraint objects. There are also synthetic constraints that support arithmetic rather than mere aggregation. A synthetic constraint set is represented by a hash because each constraint in the set has a label that is used to determine the constraints in other sets it will fraternize with. There are several methods for operating feature-value objects and adding a feature to a constraint. The current version of 1inogram adds the constant to each synthetic constraint. This happens to be correct for features that represent numbers. The chapter concludes with praser extensions used in linogram and some missing features of linogram.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.