Matches in SemOpenAlex for { <https://semopenalex.org/work/W181154243> ?p ?o ?g. }
Showing items 1 to 63 of
63
with 100 items per page.
- W181154243 abstract "A declarative program specifies a set of logical constraints between a set of objects. The computer searches for the objects satisfying the constraints (i.e., the solution). An imperative program must specify a detailed algorithm for finding the solution.Declarative programming can increase productivity (by making programs shorter and simpler). However, some problems discourage its widespread use. This thesis discusses how to make declarative programming more useful, using the new language Q.A denotational description of pure Q defines a powerful specification language. A complete implementation (that can find concrete solutions for any constraint) is theoretically impossible. We must settle for concrete solutions in limited but useful cases. A technique called narrowing combines the power of Prolog-style logic programming (logic variables, unification, non-determinism) with the notational convenience (true expression evaluation) and first-class function values of programming. Additionally, Q supports more general constraints, including automatic solution of linear equations. A novel technique implements logical constraints by embedding logic variables (representing parameters) inside functionally dependent variables (representing results of constraints).Run-time efficiency requires an optimizing compiler. One should pay for extra power only when it is used. One optimization replaces expensive logic variables and unification with cheap simple variables and assignment. It works for any function written in a functional style. Also, the support for backtracking (and in general continuations) is non-intrusive, using the standard C calling convention and stack, combined with some stack manipulation tricks when required.Logic languages have poorly supported data abstraction and type definition. Types in Q are coercion functions, and hence first-class values, so a parametric type is just a higher-order function. A class is a type derived from a function that creates new records. Classes are used as the basis of a powerful module facility. Special methods that implement application make functions into true objects (that can contain internal state).Declarative languages usually communicate poorly with other languages, which complicates calling low-level or previously-written code. The Q implementation strives for maximum compatibility with C. It uses C as a portable assembly language, with standard calling conventions and data formats." @default.
- W181154243 created "2016-06-24" @default.
- W181154243 creator A5064712874 @default.
- W181154243 date "1989-01-03" @default.
- W181154243 modified "2023-09-27" @default.
- W181154243 title "Efficiently combining logical constraints with functions" @default.
- W181154243 hasPublicationYear "1989" @default.
- W181154243 type Work @default.
- W181154243 sameAs 181154243 @default.
- W181154243 citedByCount "2" @default.
- W181154243 crossrefType "journal-article" @default.
- W181154243 hasAuthorship W181154243A5064712874 @default.
- W181154243 hasConcept C126255220 @default.
- W181154243 hasConcept C128838566 @default.
- W181154243 hasConcept C137631369 @default.
- W181154243 hasConcept C156884757 @default.
- W181154243 hasConcept C173404611 @default.
- W181154243 hasConcept C177264268 @default.
- W181154243 hasConcept C199360897 @default.
- W181154243 hasConcept C33923547 @default.
- W181154243 hasConcept C41008148 @default.
- W181154243 hasConcept C80444323 @default.
- W181154243 hasConcept C81721847 @default.
- W181154243 hasConcept C96146094 @default.
- W181154243 hasConceptScore W181154243C126255220 @default.
- W181154243 hasConceptScore W181154243C128838566 @default.
- W181154243 hasConceptScore W181154243C137631369 @default.
- W181154243 hasConceptScore W181154243C156884757 @default.
- W181154243 hasConceptScore W181154243C173404611 @default.
- W181154243 hasConceptScore W181154243C177264268 @default.
- W181154243 hasConceptScore W181154243C199360897 @default.
- W181154243 hasConceptScore W181154243C33923547 @default.
- W181154243 hasConceptScore W181154243C41008148 @default.
- W181154243 hasConceptScore W181154243C80444323 @default.
- W181154243 hasConceptScore W181154243C81721847 @default.
- W181154243 hasConceptScore W181154243C96146094 @default.
- W181154243 hasLocation W1811542431 @default.
- W181154243 hasOpenAccess W181154243 @default.
- W181154243 hasPrimaryLocation W1811542431 @default.
- W181154243 hasRelatedWork W114885797 @default.
- W181154243 hasRelatedWork W1490031588 @default.
- W181154243 hasRelatedWork W1577133977 @default.
- W181154243 hasRelatedWork W168078688 @default.
- W181154243 hasRelatedWork W1865016462 @default.
- W181154243 hasRelatedWork W2001839929 @default.
- W181154243 hasRelatedWork W2034781759 @default.
- W181154243 hasRelatedWork W2074136925 @default.
- W181154243 hasRelatedWork W2087062265 @default.
- W181154243 hasRelatedWork W2094518006 @default.
- W181154243 hasRelatedWork W2140447075 @default.
- W181154243 hasRelatedWork W2184414213 @default.
- W181154243 hasRelatedWork W2253830531 @default.
- W181154243 hasRelatedWork W2464083211 @default.
- W181154243 hasRelatedWork W2565370635 @default.
- W181154243 hasRelatedWork W2568899666 @default.
- W181154243 hasRelatedWork W2604777673 @default.
- W181154243 hasRelatedWork W2885517479 @default.
- W181154243 hasRelatedWork W2963180860 @default.
- W181154243 hasRelatedWork W3021966546 @default.
- W181154243 isParatext "false" @default.
- W181154243 isRetracted "false" @default.
- W181154243 magId "181154243" @default.
- W181154243 workType "article" @default.