Programming with narrowing: A tutorial
Narrowing is a computation implemented by some declarative programming languages. Research in the last decade has produced significant results on the theory and foundation of narrowing, but little has been published on the use of narrowing in programming. This paper introduces narrowing from a progr...
Uloženo v:
| Vydáno v: | Journal of symbolic computation Ročník 45; číslo 5; s. 501 - 522 |
|---|---|
| Hlavní autor: | |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Elsevier Ltd
01.05.2010
|
| Témata: | |
| ISSN: | 0747-7171, 1095-855X |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Narrowing is a computation implemented by some declarative programming languages. Research in the last decade has produced significant results on the theory and foundation of narrowing, but little has been published on the use of narrowing in programming. This paper introduces narrowing from a programmer’s viewpoint; shows, by means of examples, when, why and how to use narrowing in a program; and discusses the impact of narrowing on software development activities such as design and maintenance. The examples are coded in the programming language Curry, which provides narrowing as a first class feature. |
|---|---|
| AbstractList | Narrowing is a computation implemented by some declarative programming languages. Research in the last decade has produced significant results on the theory and foundation of narrowing, but little has been published on the use of narrowing in programming. This paper introduces narrowing from a programmer’s viewpoint; shows, by means of examples, when, why and how to use narrowing in a program; and discusses the impact of narrowing on software development activities such as design and maintenance. The examples are coded in the programming language Curry, which provides narrowing as a first class feature. |
| Author | Antoy, Sergio |
| Author_xml | – sequence: 1 givenname: Sergio surname: Antoy fullname: Antoy, Sergio email: antoy@cs.pdx.edu organization: Computer Science Department, Portland State University, P.O. Box 751, Portland, OR 97207, USA |
| BookMark | eNp9zz1PwzAQgGELFYm28APYMrElnOs4TmCqKr6kSjCAxGbZzqU4amJkGyr-Pa7KxNDpdMNzp3dGJqMbkZBLCgUFWl33RR9MsYC0Ay0AqhMypdDwvOb8fUKmIEqRCyroGZmF0ANAUzI-JVcv3m28GgY7brKdjR_ZqLx3u7TeZMssfkXnrdqek9NObQNe_M05ebu_e1095uvnh6fVcp2bRSNizg12CjQCYNmysqLIWKXTo7aqa0SjeAdMixJUzRhWtRa6pBxA6VbrRSJzQg93jXcheOzkp7eD8j-SgtyHyl6mULkPlUBlCk1G_DPGRhWtG6NXdntU3h4kpqRvi14GY3E02FqPJsrW2SP6F3Gab0A |
| CitedBy_id | crossref_primary_10_1007_s00165_016_0399_6 crossref_primary_10_1017_S1471068411000263 |
| Cites_doi | 10.1016/j.entcs.2006.10.040 10.1016/j.entcs.2008.06.037 10.1145/263699.263710 10.1016/0743-1066(94)90034-5 10.1016/0022-0000(91)90009-T 10.1007/s10990-007-9000-6 10.1016/0743-1066(92)90024-W 10.1016/0743-1066(92)90026-Y 10.1016/S0743-1066(98)10029-8 10.1145/347476.347484 10.1016/j.jsc.2004.12.007 10.1145/321250.321253 10.1017/S1471068404002303 10.1145/1599410.1599420 10.1145/362575.362577 |
| ContentType | Journal Article |
| Copyright | 2010 Elsevier Ltd |
| Copyright_xml | – notice: 2010 Elsevier Ltd |
| DBID | 6I. AAFTH AAYXX CITATION |
| DOI | 10.1016/j.jsc.2010.01.006 |
| DatabaseName | ScienceDirect Open Access Titles Elsevier:ScienceDirect:Open Access CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1095-855X |
| EndPage | 522 |
| ExternalDocumentID | 10_1016_j_jsc_2010_01_006 S0747717110000143 |
| GroupedDBID | --K --M -~X .DC .~1 0R~ 1B1 1RT 1~. 1~5 29L 4.4 457 4G. 5GY 5VS 6I. 6OB 7-5 71M 8P~ 9JN AACTN AAEDT AAEDW AAFTH AAIAV AAIKJ AAKOC AALRI AAOAW AAQFI AAQXK AAXUO AAYFN ABAOU ABBOA ABEFU ABFNM ABJNI ABMAC ABVKL ABXDB ABYKQ ACAZW ACDAQ ACGFS ACNNM ACRLP ACZNC ADBBV ADEZE ADFGL ADMUD AEBSH AEKER AENEX AEXQZ AFKWA AFTJW AGHFR AGUBO AGYEJ AHHHB AIALX AIEXJ AIGVJ AIKHN AITUG AJBFU AJOXV ALMA_UNASSIGNED_HOLDINGS AMFUW AMRAJ AOUOD ARUGR ASPBG AVWKF AXJTR AZFZN BKOJK BLXMC CAG COF CS3 DM4 DU5 EBS EFBJH EFLBG EJD EO8 EO9 EP2 EP3 FDB FEDTE FGOYB FIRID FNPLU FYGXN G-2 G-Q GBLVA GBOLZ HVGLF HZ~ IHE IXB J1W KOM LG5 M25 M41 MHUIS MO0 N9A NCXOZ O-L O9- OAUVE OK1 OZT P-8 P-9 P2P PC. Q38 R2- RIG RNS ROL RPZ SDF SDG SDP SES SEW SPC SPCBC SSV SSW SSZ T5K TN5 UPT WUQ XPP YQT ZMT ZU3 ~G- 9DU AATTM AAXKI AAYWO AAYXX ABWVN ACLOT ACRPL ACVFH ADCNI ADNMO ADVLN AEIPS AEUPX AFJKZ AFPUW AGQPQ AIGII AIIUN AKBMS AKRWK AKYEP ANKPU APXCP CITATION EFKBS ~HD |
| ID | FETCH-LOGICAL-c297t-5cefa0be00e4d3461e336b435d688eeca5f03b740a833e68b7b41500abdbb24d3 |
| ISICitedReferencesCount | 10 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000276860200002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0747-7171 |
| IngestDate | Sat Nov 29 02:50:58 EST 2025 Tue Nov 18 21:24:49 EST 2025 Fri Feb 23 02:31:32 EST 2024 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 5 |
| Keywords | Program design Narrowing Functional logic programming |
| Language | English |
| License | http://www.elsevier.com/open-access/userlicense/1.0 https://www.elsevier.com/tdm/userlicense/1.0 https://www.elsevier.com/open-access/userlicense/1.0 |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c297t-5cefa0be00e4d3461e336b435d688eeca5f03b740a833e68b7b41500abdbb24d3 |
| OpenAccessLink | https://dx.doi.org/10.1016/j.jsc.2010.01.006 |
| PageCount | 22 |
| ParticipantIDs | crossref_primary_10_1016_j_jsc_2010_01_006 crossref_citationtrail_10_1016_j_jsc_2010_01_006 elsevier_sciencedirect_doi_10_1016_j_jsc_2010_01_006 |
| PublicationCentury | 2000 |
| PublicationDate | 2010-05-01 |
| PublicationDateYYYYMMDD | 2010-05-01 |
| PublicationDate_xml | – month: 05 year: 2010 text: 2010-05-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Journal of symbolic computation |
| PublicationYear | 2010 |
| Publisher | Elsevier Ltd |
| Publisher_xml | – name: Elsevier Ltd |
| References | Wirth (b61) 1971; 14 Hullot (b42) 1980; vol. 87 Aït-Kaci (b2) 1990; vol. 504 Barry, B., 1996. Needed narrowing as the computational strategy of evaluable functions in an extension of Gödel. Master’s thesis, Portland State University. (b38) 2006 López-Fraguas, Sánchez-Hernández (b47) 1999; vol. 1631 Antoy, Echahed, Hanus (b12) 2000; 47 Antoy, Hanus (b15) 2006; vol. 4079 ISO, 1995. Information technology–Programming languages — Prolog–Part 1. General Core. ISO/IEC 13211-1, 1995. (b21) 2003 Meseguer, Thati (b49) 2007; 20 Alpuente, Lucas, Falaschi, Vidal, Hanus (b7) 2005; 5 Braßel, Fischer, Huch (b23) 2008; 216 Echahed, R., Janodet, J.C., 1997. On constructor-based graph rewriting systems. Tech. Rep. 985-I, IMAG. Klop (b45) 1992; vol. II Lux (b48) 1999; vol. 1722 Antoy, S., Hanus, M., 2009. Set functions for functional logic programming. In: Proceedings of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, PPDP 2009, Lisbon, Portugal, pp. 73–82. Reddy (b56) 1985 Alpuente, Hanus, Lucas, Vidal (b6) 2005; 5 González Moreno, López Fraguas, Hortalá González, Rodríguez Artalejo (b35) 1999; 40 (b54) 1999 Milner, Tofte, Harper, MacQueen (b50) 1997 O’Donnell (b52) 1977; vol. 58 Antoy (b11) 2005; 40 Fischer, Kuchen (b32) 2007 Christiansen, Fischer (b26) 2008; vol. 4989 Antoy (b9) 1997; vol. 1298 Hanus, M., 1997. A unified computation model for functional and logic programming. In: Proceedings of the 24th ACM Symposium on Principles of Programming Languages, POPL’97, pp. 80–93. Robinson (b57) 1965; 12 (b25) 2007 Baader, Nipkow (b19) 1998 Moreno-Navarro, Rodríguez-Artalejo (b51) 1992; 12 Antoy, Hanus (b13) 2000; vol. 1794 Antoy (b10) September 2001 Hanus (b36) 1994; 19&20 ACM,, 2000. ACM Pacific NW Region Programming Contest. Available at Antoy, Hanus, Massey, Steiner (b18) 2001 Hanus, M., Kuchen, H., Moreno-Navarro, J.J., 1995. Curry: A truly functional logic language. In: Proceedings of the ILPS’95 Workshop on Visions for the Future of Logic Programming. Portland, Oregon, pp. 95–107. Alpuente, Falaschi, Vidal (b4) 1996 Fay (b31) 1979 Antoy, Hanus (b14) 2005; vol. 3901 Lloyd (b46) 1999 Antoy, Hanus, Liu, Tolmach (b17) 2005; vol. 3474 Fischer, Kuchen (b33) 2008 Alpuente, Falaschi, Vidal (b5) 1998; 9 Giovannetti, Levi, Moiso, Palamidessi (b34) 1991; 42 (accessed 16.03.09). Echahed (b29) 2008; vol. 5214 Brassel, B., Huch, F., 2007. The Kiel Curry System KiCS. In: Seipel, D., Hanus, M. (Eds.), Preproceedings of the 21st Workshop on (Constraint) Logic Programming, WLP 2007, Würzburg, Germany, Technical Report 434, pp. 215–223. Dershowitz, Plaisted (b28) 1988; vol. 11 Sheard (b58) 2007; 174 (b59) 1993 Tolmach, Antoy, Nita (b60) 2004 Albert, Hanus, Vidal (b3) 2002; 2002 Dershowitz, Jouannaud (b27) 1990 O’Donnell (b53) 1985 Antoy (b8) 1992; vol. 632 (b40) 2008 Hanus (b39) 2007; vol. 4670 Bird, Wadler (b22) 1988 Plump (b55) 1999 Hussmann (b43) 1992; 12 Moreno-Navarro (10.1016/j.jsc.2010.01.006_b51) 1992; 12 Bird (10.1016/j.jsc.2010.01.006_b22) 1988 Meseguer (10.1016/j.jsc.2010.01.006_b49) 2007; 20 Plump (10.1016/j.jsc.2010.01.006_b55) 1999 Alpuente (10.1016/j.jsc.2010.01.006_b7) 2005; 5 10.1016/j.jsc.2010.01.006_b16 López-Fraguas (10.1016/j.jsc.2010.01.006_b47) 1999; vol. 1631 Milner (10.1016/j.jsc.2010.01.006_b50) 1997 Wirth (10.1016/j.jsc.2010.01.006_b61) 1971; 14 Antoy (10.1016/j.jsc.2010.01.006_b8) 1992; vol. 632 Antoy (10.1016/j.jsc.2010.01.006_b13) 2000; vol. 1794 Antoy (10.1016/j.jsc.2010.01.006_b9) 1997; vol. 1298 Antoy (10.1016/j.jsc.2010.01.006_b12) 2000; 47 Christiansen (10.1016/j.jsc.2010.01.006_b26) 2008; vol. 4989 Dershowitz (10.1016/j.jsc.2010.01.006_b27) 1990 Alpuente (10.1016/j.jsc.2010.01.006_b4) 1996 10.1016/j.jsc.2010.01.006_b41 Lloyd (10.1016/j.jsc.2010.01.006_b46) 1999 (10.1016/j.jsc.2010.01.006_b21) 2003 Aït-Kaci (10.1016/j.jsc.2010.01.006_b2) 1990; vol. 504 (10.1016/j.jsc.2010.01.006_b38) 2006 Braßel (10.1016/j.jsc.2010.01.006_b23) 2008; 216 10.1016/j.jsc.2010.01.006_b44 (10.1016/j.jsc.2010.01.006_b59) 1993 Lux (10.1016/j.jsc.2010.01.006_b48) 1999; vol. 1722 Giovannetti (10.1016/j.jsc.2010.01.006_b34) 1991; 42 Antoy (10.1016/j.jsc.2010.01.006_b14) 2005; vol. 3901 Antoy (10.1016/j.jsc.2010.01.006_b10) 2001 Fischer (10.1016/j.jsc.2010.01.006_b33) 2008 10.1016/j.jsc.2010.01.006_b30 (10.1016/j.jsc.2010.01.006_b40) 2008 Dershowitz (10.1016/j.jsc.2010.01.006_b28) 1988; vol. 11 10.1016/j.jsc.2010.01.006_b37 Echahed (10.1016/j.jsc.2010.01.006_b29) 2008; vol. 5214 O’Donnell (10.1016/j.jsc.2010.01.006_b53) 1985 Fay (10.1016/j.jsc.2010.01.006_b31) 1979 Hanus (10.1016/j.jsc.2010.01.006_b39) 2007; vol. 4670 Hullot (10.1016/j.jsc.2010.01.006_b42) 1980; vol. 87 Baader (10.1016/j.jsc.2010.01.006_b19) 1998 Alpuente (10.1016/j.jsc.2010.01.006_b5) 1998; 9 Albert (10.1016/j.jsc.2010.01.006_b3) 2002; 2002 Hanus (10.1016/j.jsc.2010.01.006_b36) 1994; 19&20 Klop (10.1016/j.jsc.2010.01.006_b45) 1992; vol. II Sheard (10.1016/j.jsc.2010.01.006_b58) 2007; 174 Alpuente (10.1016/j.jsc.2010.01.006_b6) 2005; 5 Antoy (10.1016/j.jsc.2010.01.006_b18) 2001 10.1016/j.jsc.2010.01.006_b20 Hussmann (10.1016/j.jsc.2010.01.006_b43) 1992; 12 10.1016/j.jsc.2010.01.006_b1 Fischer (10.1016/j.jsc.2010.01.006_b32) 2007 Reddy (10.1016/j.jsc.2010.01.006_b56) 1985 Antoy (10.1016/j.jsc.2010.01.006_b17) 2005; vol. 3474 (10.1016/j.jsc.2010.01.006_b54) 1999 10.1016/j.jsc.2010.01.006_b24 González Moreno (10.1016/j.jsc.2010.01.006_b35) 1999; 40 (10.1016/j.jsc.2010.01.006_b25) 2007 Robinson (10.1016/j.jsc.2010.01.006_b57) 1965; 12 Tolmach (10.1016/j.jsc.2010.01.006_b60) 2004 Antoy (10.1016/j.jsc.2010.01.006_b11) 2005; 40 Antoy (10.1016/j.jsc.2010.01.006_b15) 2006; vol. 4079 O’Donnell (10.1016/j.jsc.2010.01.006_b52) 1977; vol. 58 |
| References_xml | – volume: 19&20 start-page: 583 year: 1994 end-page: 628 ident: b36 article-title: The integration of functions into logic programming: From theory to practice publication-title: Journal of Logic Programming – volume: 2002 year: 2002 ident: b3 article-title: A practical partial evaluator for a multi-paradigm declarative language publication-title: Journal of Functional and Logic Programming – reference: Echahed, R., Janodet, J.C., 1997. On constructor-based graph rewriting systems. Tech. Rep. 985-I, IMAG. – year: 1988 ident: b22 article-title: Introduction to Functional Programming – start-page: 243 year: 1990 end-page: 320 ident: b27 article-title: Rewrite systems publication-title: Handbook of Theoretical Computer Science B: Formal Methods and Semantics – start-page: 45 year: 1996 end-page: 61 ident: b4 article-title: Narrowing-driven partial evaluation of functional logic programs publication-title: ESOP ’96: Proceedings of the 6th European Symposium on Programming Languages and Systems – start-page: 3 year: 1999 end-page: 61 ident: b55 article-title: Term graph rewriting publication-title: Handbook of Graph Grammars, Vol. 2 – volume: vol. 3474 start-page: 108 year: 2005 end-page: 125 ident: b17 article-title: A virtual machine for functional logic computations publication-title: Proc. of the 16th International Workshop on Implementation and Application of Functional Languages – start-page: 161 year: 1979 end-page: 167 ident: b31 article-title: First-order unification in an equational theory publication-title: Proc. 4th Workshop on Automated Deduction – volume: 12 start-page: 191 year: 1992 end-page: 223 ident: b51 article-title: Logic programming with functions and predicates: The language BABEL publication-title: Journal of Logic Programming – volume: 216 start-page: 111 year: 2008 end-page: 124 ident: b23 article-title: Declaring numbers publication-title: Electronic Notes in Theoretical Computer Science – volume: 5 start-page: 273 year: 2005 end-page: 303 ident: b7 article-title: Specialization of functional logic programs based on needed narrowing publication-title: Theory and Practice of Logic Programming – volume: vol. 87 start-page: 318 year: 1980 end-page: 334 ident: b42 article-title: Canonical forms and unification publication-title: Proc. 5th Conference on Automated Deduction – volume: vol. II start-page: 1 year: 1992 end-page: 112 ident: b45 article-title: Term Rewriting Systems publication-title: Handbook of Logic in Computer Science – volume: vol. 1794 start-page: 171 year: 2000 end-page: 185 ident: b13 article-title: Compiling multi-paradigm declarative programs into Prolog publication-title: Proceedings of the Third International Workshop on Frontiers of Combining Systems – year: 1985 ident: b53 article-title: Equational Logic as a Programming Language – start-page: 199 year: September 2001 end-page: 206 ident: b10 article-title: Constructor-based conditional narrowing publication-title: Proc. of the 3rd International Conference on Principles and Practice of Declarative Programming – year: 2006 ident: b38 publication-title: Curry: An Integrated Functional Logic Language (Vers. 0.8.2) – volume: 12 start-page: 237 year: 1992 end-page: 255 ident: b43 article-title: Nondeterministic algebraic specifications and nonconfluent rewriting publication-title: Journal of Logic Programming – volume: vol. 504 start-page: 42 year: 1990 end-page: 58 ident: b2 article-title: An overview of LIFE publication-title: Proceedings of the Workshop on Next Generation Information System Technology – reference: Barry, B., 1996. Needed narrowing as the computational strategy of evaluable functions in an extension of Gödel. Master’s thesis, Portland State University. – volume: vol. 1298 start-page: 16 year: 1997 end-page: 30 ident: b9 article-title: Optimal non-deterministic functional logic computations publication-title: Proceedings of the Sixth International Conference on Algebraic and Logic Programming – volume: vol. 4989 start-page: 322 year: 2008 end-page: 336 ident: b26 article-title: EasyCheck — test data for free publication-title: Proc. of the 9th International Symposium on Functional and Logic Programming – reference: ISO, 1995. Information technology–Programming languages — Prolog–Part 1. General Core. ISO/IEC 13211-1, 1995. – volume: 47 start-page: 776 year: 2000 end-page: 822 ident: b12 article-title: A needed narrowing strategy publication-title: Journal of the ACM – volume: 40 start-page: 875 year: 2005 end-page: 903 ident: b11 article-title: Evaluation strategies for functional logic programming publication-title: Journal of Symbolic Computation – volume: 14 start-page: 221 year: 1971 end-page: 227 ident: b61 article-title: Program development by stepwise refinement publication-title: Communications of the ACM – volume: 5 start-page: 273 year: 2005 end-page: 303 ident: b6 article-title: Specialization of functional logic programs based on needed narrowing publication-title: Theory and Practice of Logic Programming – volume: 20 start-page: 123 year: 2007 end-page: 160 ident: b49 article-title: Symbolic reachability analysis using narrowing and its application to verification of cryptographic protocols publication-title: Higher-Order and Symbolic Computation – start-page: 207 year: 2001 end-page: 217 ident: b18 article-title: An implementation of narrowing strategies publication-title: Proc. of the 3rd International Conference on Principles and Practice of Declarative Programming – volume: 174 start-page: 105 year: 2007 end-page: 128 ident: b58 article-title: Type-level computation using narrowing in publication-title: Electronic Notes in Theoretical Computer Science – volume: vol. 3901 start-page: 6 year: 2005 end-page: 22 ident: b14 article-title: Declarative programming with function patterns publication-title: 15th Int’nl Symp. on Logic-based Program Synthesis and Transformation – year: 1993 ident: b59 publication-title: Term Graph Rewriting Theory and Practice – volume: vol. 58 year: 1977 ident: b52 article-title: Computing in systems described by equations publication-title: Springer LNCS – start-page: 138 year: 1985 end-page: 151 ident: b56 article-title: Narrowing as the operational semantics of functional languages publication-title: International Symposium on Logic Programming – year: 1997 ident: b50 article-title: The Definition of Standard ML — Revised – reference: Hanus, M., 1997. A unified computation model for functional and logic programming. In: Proceedings of the 24th ACM Symposium on Principles of Programming Languages, POPL’97, pp. 80–93. – volume: vol. 5214 start-page: 84 year: 2008 end-page: 98 ident: b29 article-title: Inductively sequential term-graph rewrite systems publication-title: Graph Transformations, 4th International Conference – reference: Hanus, M., Kuchen, H., Moreno-Navarro, J.J., 1995. Curry: A truly functional logic language. In: Proceedings of the ILPS’95 Workshop on Visions for the Future of Logic Programming. Portland, Oregon, pp. 95–107. – start-page: 90 year: 2004 end-page: 102 ident: b60 article-title: Implementing functional logic languages using multiple threads and stores publication-title: Proc. of the 2004 International Conference on Functional Programming – year: 1999 ident: b54 publication-title: Haskell 98: A Non-strict, Purely Functional Language – start-page: 1 year: 1999 end-page: 49 ident: b46 article-title: Programming in an integrated functional and logic language publication-title: Journal of Functional and Logic Programming – volume: 40 start-page: 47 year: 1999 end-page: 87 ident: b35 article-title: An approach to declarative programming based on a rewriting logic publication-title: The Journal of Logic Programming – volume: vol. 632 start-page: 143 year: 1992 end-page: 157 ident: b8 article-title: Definitional trees publication-title: Proceedings of the Third International Conference on Algebraic and Logic Programming – reference: ACM,, 2000. ACM Pacific NW Region Programming Contest. Available at – start-page: 63 year: 2007 end-page: 74 ident: b32 article-title: Systematic generation of glass-box test cases for functional logic programs publication-title: PPDP ’07: Proceedings of the 9th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming – volume: 12 start-page: 23 year: 1965 end-page: 41 ident: b57 article-title: A machine-oriented logic based on the resolution principle publication-title: Journal of ACM – reference: Antoy, S., Hanus, M., 2009. Set functions for functional logic programming. In: Proceedings of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, PPDP 2009, Lisbon, Portugal, pp. 73–82. – year: 2008 ident: b33 article-title: Data-flow testing of declarative programs publication-title: ICFP’08: Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming – year: 2007 ident: b25 publication-title: TOY: A Multiparadigm Declarative Language (version 2.3.1) – volume: vol. 1631 start-page: 244 year: 1999 end-page: 247 ident: b47 article-title: TOY: A multiparadigm declarative system publication-title: Proceedings of the Tenth International Conference on Rewriting Techniques and Applications – year: 1998 ident: b19 article-title: Term Rewriting and All That – volume: 9 year: 1998 ident: b5 article-title: A unifying view of functional and logic program specialization publication-title: ACM Computing Surveys – volume: vol. 1722 start-page: 100 year: 1999 end-page: 113 ident: b48 article-title: Implementing encapsulated search for a lazy functional logic language publication-title: Proc. 4th Fuji Intl. Symposium on Functional and Logic Programming – reference: Brassel, B., Huch, F., 2007. The Kiel Curry System KiCS. In: Seipel, D., Hanus, M. (Eds.), Preproceedings of the 21st Workshop on (Constraint) Logic Programming, WLP 2007, Würzburg, Germany, Technical Report 434, pp. 215–223. – volume: vol. 4670 start-page: 45 year: 2007 end-page: 75 ident: b39 article-title: Multi-paradigm declarative languages publication-title: Proceedings of the International Conference on Logic Programming – year: 2003 ident: b21 publication-title: Term Rewriting Systems – volume: vol. 11 start-page: 21 year: 1988 end-page: 56 ident: b28 article-title: Equational programming publication-title: Machine Intelligence – volume: 42 start-page: 139 year: 1991 end-page: 185 ident: b34 article-title: Kernel LEAF: A logic plus functional language publication-title: The Journal of Computer and System Sciences – volume: vol. 4079 start-page: 87 year: 2006 end-page: 101 ident: b15 article-title: Overlapping rules and logic variables in functional logic programs publication-title: Twenty Second International Conference on Logic Programming – year: 2008 ident: b40 publication-title: PAKCS 1.9.1: The Portland Aachen Kiel Curry System – reference: (accessed 16.03.09). – volume: vol. 11 start-page: 21 year: 1988 ident: 10.1016/j.jsc.2010.01.006_b28 article-title: Equational programming – volume: 9 year: 1998 ident: 10.1016/j.jsc.2010.01.006_b5 article-title: A unifying view of functional and logic program specialization publication-title: ACM Computing Surveys – start-page: 199 year: 2001 ident: 10.1016/j.jsc.2010.01.006_b10 article-title: Constructor-based conditional narrowing – year: 1998 ident: 10.1016/j.jsc.2010.01.006_b19 – volume: 174 start-page: 105 issue: 7 year: 2007 ident: 10.1016/j.jsc.2010.01.006_b58 article-title: Type-level computation using narrowing in Ωmega publication-title: Electronic Notes in Theoretical Computer Science doi: 10.1016/j.entcs.2006.10.040 – volume: 216 start-page: 111 year: 2008 ident: 10.1016/j.jsc.2010.01.006_b23 article-title: Declaring numbers publication-title: Electronic Notes in Theoretical Computer Science doi: 10.1016/j.entcs.2008.06.037 – volume: vol. 1298 start-page: 16 year: 1997 ident: 10.1016/j.jsc.2010.01.006_b9 article-title: Optimal non-deterministic functional logic computations – start-page: 90 year: 2004 ident: 10.1016/j.jsc.2010.01.006_b60 article-title: Implementing functional logic languages using multiple threads and stores – ident: 10.1016/j.jsc.2010.01.006_b37 doi: 10.1145/263699.263710 – volume: vol. 4989 start-page: 322 year: 2008 ident: 10.1016/j.jsc.2010.01.006_b26 article-title: EasyCheck — test data for free – volume: 2002 issue: 1 year: 2002 ident: 10.1016/j.jsc.2010.01.006_b3 article-title: A practical partial evaluator for a multi-paradigm declarative language publication-title: Journal of Functional and Logic Programming – volume: vol. 87 start-page: 318 year: 1980 ident: 10.1016/j.jsc.2010.01.006_b42 article-title: Canonical forms and unification – volume: vol. 4670 start-page: 45 year: 2007 ident: 10.1016/j.jsc.2010.01.006_b39 article-title: Multi-paradigm declarative languages – volume: 19&20 start-page: 583 year: 1994 ident: 10.1016/j.jsc.2010.01.006_b36 article-title: The integration of functions into logic programming: From theory to practice publication-title: Journal of Logic Programming doi: 10.1016/0743-1066(94)90034-5 – ident: 10.1016/j.jsc.2010.01.006_b41 – volume: vol. II start-page: 1 year: 1992 ident: 10.1016/j.jsc.2010.01.006_b45 article-title: Term Rewriting Systems – volume: 42 start-page: 139 year: 1991 ident: 10.1016/j.jsc.2010.01.006_b34 article-title: Kernel LEAF: A logic plus functional language publication-title: The Journal of Computer and System Sciences doi: 10.1016/0022-0000(91)90009-T – year: 1988 ident: 10.1016/j.jsc.2010.01.006_b22 – start-page: 161 year: 1979 ident: 10.1016/j.jsc.2010.01.006_b31 article-title: First-order unification in an equational theory – volume: 20 start-page: 123 issue: 1–2 year: 2007 ident: 10.1016/j.jsc.2010.01.006_b49 article-title: Symbolic reachability analysis using narrowing and its application to verification of cryptographic protocols publication-title: Higher-Order and Symbolic Computation doi: 10.1007/s10990-007-9000-6 – volume: 12 start-page: 191 year: 1992 ident: 10.1016/j.jsc.2010.01.006_b51 article-title: Logic programming with functions and predicates: The language BABEL publication-title: Journal of Logic Programming doi: 10.1016/0743-1066(92)90024-W – volume: vol. 632 start-page: 143 year: 1992 ident: 10.1016/j.jsc.2010.01.006_b8 article-title: Definitional trees – ident: 10.1016/j.jsc.2010.01.006_b1 – start-page: 63 year: 2007 ident: 10.1016/j.jsc.2010.01.006_b32 article-title: Systematic generation of glass-box test cases for functional logic programs – volume: vol. 3474 start-page: 108 year: 2005 ident: 10.1016/j.jsc.2010.01.006_b17 article-title: A virtual machine for functional logic computations – volume: 12 start-page: 237 year: 1992 ident: 10.1016/j.jsc.2010.01.006_b43 article-title: Nondeterministic algebraic specifications and nonconfluent rewriting publication-title: Journal of Logic Programming doi: 10.1016/0743-1066(92)90026-Y – year: 1997 ident: 10.1016/j.jsc.2010.01.006_b50 – volume: 40 start-page: 47 year: 1999 ident: 10.1016/j.jsc.2010.01.006_b35 article-title: An approach to declarative programming based on a rewriting logic publication-title: The Journal of Logic Programming doi: 10.1016/S0743-1066(98)10029-8 – start-page: 3 year: 1999 ident: 10.1016/j.jsc.2010.01.006_b55 article-title: Term graph rewriting – start-page: 1 year: 1999 ident: 10.1016/j.jsc.2010.01.006_b46 article-title: Programming in an integrated functional and logic language publication-title: Journal of Functional and Logic Programming – start-page: 207 year: 2001 ident: 10.1016/j.jsc.2010.01.006_b18 article-title: An implementation of narrowing strategies – volume: 47 start-page: 776 issue: 4 year: 2000 ident: 10.1016/j.jsc.2010.01.006_b12 article-title: A needed narrowing strategy publication-title: Journal of the ACM doi: 10.1145/347476.347484 – year: 2008 ident: 10.1016/j.jsc.2010.01.006_b40 – start-page: 243 year: 1990 ident: 10.1016/j.jsc.2010.01.006_b27 article-title: Rewrite systems – volume: 40 start-page: 875 issue: 1 year: 2005 ident: 10.1016/j.jsc.2010.01.006_b11 article-title: Evaluation strategies for functional logic programming publication-title: Journal of Symbolic Computation doi: 10.1016/j.jsc.2004.12.007 – volume: vol. 504 start-page: 42 year: 1990 ident: 10.1016/j.jsc.2010.01.006_b2 article-title: An overview of LIFE – year: 2007 ident: 10.1016/j.jsc.2010.01.006_b25 – start-page: 138 year: 1985 ident: 10.1016/j.jsc.2010.01.006_b56 article-title: Narrowing as the operational semantics of functional languages – volume: 12 start-page: 23 issue: 1 year: 1965 ident: 10.1016/j.jsc.2010.01.006_b57 article-title: A machine-oriented logic based on the resolution principle publication-title: Journal of ACM doi: 10.1145/321250.321253 – ident: 10.1016/j.jsc.2010.01.006_b20 – ident: 10.1016/j.jsc.2010.01.006_b24 – volume: vol. 1794 start-page: 171 year: 2000 ident: 10.1016/j.jsc.2010.01.006_b13 article-title: Compiling multi-paradigm declarative programs into Prolog – year: 2006 ident: 10.1016/j.jsc.2010.01.006_b38 – year: 1993 ident: 10.1016/j.jsc.2010.01.006_b59 – volume: 5 start-page: 273 issue: 3 year: 2005 ident: 10.1016/j.jsc.2010.01.006_b6 article-title: Specialization of functional logic programs based on needed narrowing publication-title: Theory and Practice of Logic Programming doi: 10.1017/S1471068404002303 – volume: vol. 1722 start-page: 100 year: 1999 ident: 10.1016/j.jsc.2010.01.006_b48 article-title: Implementing encapsulated search for a lazy functional logic language – year: 2008 ident: 10.1016/j.jsc.2010.01.006_b33 article-title: Data-flow testing of declarative programs – year: 1985 ident: 10.1016/j.jsc.2010.01.006_b53 – volume: vol. 5214 start-page: 84 year: 2008 ident: 10.1016/j.jsc.2010.01.006_b29 article-title: Inductively sequential term-graph rewrite systems – ident: 10.1016/j.jsc.2010.01.006_b30 – year: 1999 ident: 10.1016/j.jsc.2010.01.006_b54 – start-page: 45 year: 1996 ident: 10.1016/j.jsc.2010.01.006_b4 article-title: Narrowing-driven partial evaluation of functional logic programs – volume: vol. 4079 start-page: 87 year: 2006 ident: 10.1016/j.jsc.2010.01.006_b15 article-title: Overlapping rules and logic variables in functional logic programs – year: 2003 ident: 10.1016/j.jsc.2010.01.006_b21 – volume: vol. 58 year: 1977 ident: 10.1016/j.jsc.2010.01.006_b52 article-title: Computing in systems described by equations – ident: 10.1016/j.jsc.2010.01.006_b16 doi: 10.1145/1599410.1599420 – volume: vol. 1631 start-page: 244 year: 1999 ident: 10.1016/j.jsc.2010.01.006_b47 article-title: TOY: A multiparadigm declarative system – volume: vol. 3901 start-page: 6 year: 2005 ident: 10.1016/j.jsc.2010.01.006_b14 article-title: Declarative programming with function patterns – volume: 5 start-page: 273 issue: 3 year: 2005 ident: 10.1016/j.jsc.2010.01.006_b7 article-title: Specialization of functional logic programs based on needed narrowing publication-title: Theory and Practice of Logic Programming doi: 10.1017/S1471068404002303 – ident: 10.1016/j.jsc.2010.01.006_b44 – volume: 14 start-page: 221 issue: 4 year: 1971 ident: 10.1016/j.jsc.2010.01.006_b61 article-title: Program development by stepwise refinement publication-title: Communications of the ACM doi: 10.1145/362575.362577 |
| SSID | ssj0009435 |
| Score | 1.939374 |
| Snippet | Narrowing is a computation implemented by some declarative programming languages. Research in the last decade has produced significant results on the theory... |
| SourceID | crossref elsevier |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 501 |
| SubjectTerms | Functional logic programming Narrowing Program design |
| Title | Programming with narrowing: A tutorial |
| URI | https://dx.doi.org/10.1016/j.jsc.2010.01.006 |
| Volume | 45 |
| WOSCitedRecordID | wos000276860200002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVESC databaseName: Elsevier SD Freedom Collection Journals 2021 customDbUrl: eissn: 1095-855X dateEnd: 20180228 omitProxy: false ssIdentifier: ssj0009435 issn: 0747-7171 databaseCode: AIEXJ dateStart: 19950101 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3NS8MwFA-yefDitzi_6EE8KJV0adLWWxFFPQwPE3YrTZqKQ6vYKvrf-9Ik3dycuIOXUEKTNvmFl5f3fnkPocOIZJ7IFOcpxdL1M8Zc7qWhKyWoIxnxhOR5nWwi6PXCwSC6NfnyyjqdQFAU4cdH9PKvUEMdgK2uzs4Bd9MpVMAzgA4lwA7ln4C_1Yyrp8bKWtRxFs3F5vikUlELHkwv02pp-fnEVazgmmz-9t1RHxeVNt2BhLnXBC5rMdDObmMx0IIFjhAuHOO8cSmogzoatOmYSKOmqd4dqb5FPCV4tQ1geDosheHLeYoyN9plrGd9YvNpKIGWbTZMoItEdZFgL6mjqbe7AY1AYrXj64vBzSiksq_Tp9rRWJ91zd6b-I-ftY4xTaK_ipbNXDuxhm4NLchiHa3Y9BqOkbYb6GgMSUch6TRInjmxY3HcRHeXF_3zK9ektXBFNwoqlwqZp5hLjKWfEZ95khDGYTAZC0MpRUpzTHjg4zQkRLKQBxy0LIxTnnHehSZbqFU8F3IbOZ7AJGTq7nAa-DmjERwmRZYHec4EpYR2ELbDToSJ-a5SjzwmM6e7g46bJi864MlvL_t2LhOjsWlNLIF1MbvZzjzf2EVLo0W8h1rV65vcR4vivXooXw_MovgCTBNeug |
| linkProvider | Elsevier |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Programming+with+narrowing%3A+A+tutorial&rft.jtitle=Journal+of+symbolic+computation&rft.au=Antoy%2C+Sergio&rft.date=2010-05-01&rft.issn=0747-7171&rft.volume=45&rft.issue=5&rft.spage=501&rft.epage=522&rft_id=info:doi/10.1016%2Fj.jsc.2010.01.006&rft.externalDBID=n%2Fa&rft.externalDocID=10_1016_j_jsc_2010_01_006 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0747-7171&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0747-7171&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0747-7171&client=summon |