Safe typing of functional logic programs with opaque patterns and local bindings
Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject...
Gespeichert in:
| Veröffentlicht in: | Information and computation Jg. 235; S. 36 - 69 |
|---|---|
| Hauptverfasser: | , , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
Elsevier Inc
01.04.2014
|
| Schlagworte: | |
| ISSN: | 0890-5401, 1090-2651 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject of improvement. One is related to a problematic feature of functional logic languages not taken under consideration by standard systems: it is known that the use of opaque HO patterns in left-hand sides of program rules may produce undesirable effects from the point of view of types. We re-examine the problem, and propose two variants of a Damas–Milner-like type system where certain uses of HO patterns (even opaque) are permitted while preserving type safety. The considered formal framework is that of programs without extra variables and using let-rewriting as reduction mechanism. The other aspect addressed is the different ways in which polymorphism of local definitions can be handled. At the same time that we formalize the type system, we have made the effort of technically clarifying the overall process of type inference in a whole program. |
|---|---|
| AbstractList | Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject of improvement. One is related to a problematic feature of functional logic languages not taken under consideration by standard systems: it is known that the use of opaque HO patterns in left-hand sides of program rules may produce undesirable effects from the point of view of types. We re-examine the problem, and propose two variants of a Damas–Milner-like type system where certain uses of HO patterns (even opaque) are permitted while preserving type safety. The considered formal framework is that of programs without extra variables and using let-rewriting as reduction mechanism. The other aspect addressed is the different ways in which polymorphism of local definitions can be handled. At the same time that we formalize the type system, we have made the effort of technically clarifying the overall process of type inference in a whole program. |
| Author | Rodríguez-Hortalá, Juan López-Fraguas, Francisco J. Martin-Martin, Enrique |
| Author_xml | – sequence: 1 givenname: Francisco J. surname: López-Fraguas fullname: López-Fraguas, Francisco J. email: fraguas@sip.ucm.es – sequence: 2 givenname: Enrique surname: Martin-Martin fullname: Martin-Martin, Enrique email: emartinm@fdi.ucm.es – sequence: 3 givenname: Juan surname: Rodríguez-Hortalá fullname: Rodríguez-Hortalá, Juan email: juanrh@fdi.ucm.es |
| BookMark | eNp1kE1LAzEURYNUsK3uXeYPzPjezGTSupPiFxQU1HVIk5ea0iZjMlX6751St67eXdxzeZwJG4UYiLFrhBIB25tN6U1ZATYlYAnQnLExwhyKqhU4YmOYDVk0gBdskvMGAFE07Zi9vmlHvD90Pqx5dNztg-l9DHrLt3HtDe9SXCe9y_zH9588dvprT7zTfU8pZK6DHXpmaK98sMNGvmTnTm8zXf3dKft4uH9fPBXLl8fnxd2yMFUj-8JYsEJIqEXVrpq6lRLRyJmdm8ohSq3rmRQkGyHbebtykjQi1ECahLSVk_WUwWnXpJhzIqe65Hc6HRSCOhpRG-WNOhpRgGowMiC3J4SGv749JZWNp2DI-kSmVzb6_-FfR-5p8w |
| Cites_doi | 10.1145/44501.45065 10.1007/BF01018828 10.1145/6041.6042 10.1145/186025.186031 10.1145/640128.604150 10.1145/169701.169687 10.1016/j.entcs.2006.05.049 10.1002/(SICI)1096-9942(199901/03)5:1<35::AID-TAPO4>3.0.CO;2-4 10.1137/0201010 10.1145/1721654.1721675 |
| ContentType | Journal Article |
| Copyright | 2014 Elsevier Inc. |
| Copyright_xml | – notice: 2014 Elsevier Inc. |
| DBID | 6I. AAFTH AAYXX CITATION |
| DOI | 10.1016/j.ic.2014.01.004 |
| DatabaseName | ScienceDirect Open Access Titles Elsevier:ScienceDirect:Open Access CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Engineering Computer Science |
| EISSN | 1090-2651 |
| EndPage | 69 |
| ExternalDocumentID | 10_1016_j_ic_2014_01_004 S0890540114000054 |
| GroupedDBID | --K --M --Z -~X .~1 0R~ 1B1 1~. 1~5 29I 4.4 457 4G. 5GY 5VS 6I. 6TJ 7-5 71M 8P~ 9JN AACTN AAEDT AAEDW AAFTH AAIAV AAIKJ AAKOC AALRI AAOAW AAQFI AAQXK AAXUO AAYFN ABAOU ABBOA ABFNM ABJNI ABMAC ABTAH ABVKL ABXDB ABYKQ ACAZW ACDAQ ACGFS ACNNM ACRLP ACZNC ADBBV ADEZE ADFGL ADMUD AEBSH AEKER AENEX AEXQZ AFKWA AFTJW AGHFR AGUBO AGYEJ AHHHB AHZHX AIALX AIEXJ AIKHN AITUG AJBFU AJOXV ALMA_UNASSIGNED_HOLDINGS AMFUW AMRAJ AOUOD ARUGR ASPBG AVWKF AXJTR AZFZN BKOJK BLXMC CAG COF CS3 DM4 DU5 E3Z EBS EFBJH EFLBG EJD EO8 EO9 EP2 EP3 FDB FEDTE FGOYB FIRID FNPLU FYGXN G-Q G8K GBLVA GBOLZ HVGLF HZ~ H~9 IHE IXB J1W KOM LG5 LX9 M41 MHUIS MO0 MVM 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 WH7 WUQ XJT XPP ZMT ZU3 ZY4 ~G- 9DU AATTM AAXKI AAYWO AAYXX ABDPE 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-c247t-cd0d55703526b4367711c78d9c2f117aa3875e7457696bf7ea11030eae57d2f73 |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000332418800003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0890-5401 |
| IngestDate | Sat Nov 29 01:56:33 EST 2025 Fri Feb 23 02:25:06 EST 2024 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Keywords | Functional-logic programming Type systems Opaque patterns Let bindings |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c247t-cd0d55703526b4367711c78d9c2f117aa3875e7457696bf7ea11030eae57d2f73 |
| OpenAccessLink | https://dx.doi.org/10.1016/j.ic.2014.01.004 |
| PageCount | 34 |
| ParticipantIDs | crossref_primary_10_1016_j_ic_2014_01_004 elsevier_sciencedirect_doi_10_1016_j_ic_2014_01_004 |
| PublicationCentury | 2000 |
| PublicationDate | 2014-04-01 |
| PublicationDateYYYYMMDD | 2014-04-01 |
| PublicationDate_xml | – month: 04 year: 2014 text: 2014-04-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Information and computation |
| PublicationYear | 2014 |
| Publisher | Elsevier Inc |
| Publisher_xml | – name: Elsevier Inc |
| References | Fischer (br0120) 2011 Kfoury, Tiuryn, Urzyczyn (br0260) 1993; 15 Hanus (br0030) 2006 Mycroft (br0250) 1984 Odersky, Sulzmann, Wehr (br0360) 1999; 5 Lux (br0160) 2007 Schrijvers, Peyton Jones, Sulzmann, Vytiniotis (br0350) 2009 Johann, Voigtländer (br0330) 2004 López-Fraguas, Martin-Martin, Rodríguez-Hortalá (br0420) 2010; vol. 5979 Cheney, Hinze (br0220) 2003 Brassel (br0140) 2008 Hanus (br0040) 2007; vol. 4670 Reynolds (br0300) 1983 López-Fraguas, Martin-Martin, Rodríguez-Hortalá (br0150) 2010; vol. 6461 González-Moreno, Hortalá-González, Rodríguez-Artalejo (br0130) 2001 Läufer, Odersky (br0200) 1994; 16 Antoy, Hanus (br0370) 2006; vol. 4079 López-Fraguas, Martin-Martin, Rodríguez-Hortalá (br0410) 2012 Martin-Martin (br0430) 2009 González-Moreno, Hortalá-González, Rodríguez-Artalejo (br0080) 1997 Caballero, López-Fraguas (br0100) 1999 Martin-Martin (br0070) 2011 Wright (br0170) 1995; 8 Damas (br0230) 1985 Seidel, Voigtländer (br0320) 2010; vol. 6009 Xi, Chen, Chen (br0210) 2003; 38 Perry (br0290) 1991 Wadler (br0310) 1989 Antoy, Tolmach (br0400) 1999; vol. 1722 J.J. Moreno-Navarro, J. Mariño, A. del Pozo-Pietro, Á. Herranz-Nieva, J. García-Martín, Adding type classes to functional-logic languages, in: 1996 Joint Conference on Declarative Programming, APPIA-GULP-PRODE '96, pp. 427–438. Mitchell, Plotkin (br0190) 1988; 10 Damas, Milner (br0010) 1982 de Dios Castro, López-Fraguas (br0380) 2007; 188 Christiansen, Seidel, Voigtländer (br0340) 2010 W. Lux, Adding Haskell-style overloading to Curry, in: Workshop of Working Group 2.1.4 of the German Computing Science Association GI, pp. 67–76. Antoy, Hanus (br0390) 2010; 53 Cardelli, Wegner (br0280) 1985; 17 López-Fraguas, Sánchez-Hernández (br0020) 1999; vol. 1631 Caballero, García-Ruiz, Sáenz-Pérez (br0110) 2011; vol. 6539 Hudak, Hughes, Peyton Jones, Wadler (br0180) 2007 Peyton Jones (br0240) 1987 López-Fraguas, Rodríguez-Hortalá, Sánchez-Hernández (br0090) 2008; vol. 4989 Tarjan (br0270) 1972; 1 10.1016/j.ic.2014.01.004_br0050 Läufer (10.1016/j.ic.2014.01.004_br0200) 1994; 16 Odersky (10.1016/j.ic.2014.01.004_br0360) 1999; 5 Kfoury (10.1016/j.ic.2014.01.004_br0260) 1993; 15 Antoy (10.1016/j.ic.2014.01.004_br0370) 2006; vol. 4079 López-Fraguas (10.1016/j.ic.2014.01.004_br0420) 2010; vol. 5979 Damas (10.1016/j.ic.2014.01.004_br0230) 1985 González-Moreno (10.1016/j.ic.2014.01.004_br0080) 1997 Antoy (10.1016/j.ic.2014.01.004_br0390) 2010; 53 Fischer (10.1016/j.ic.2014.01.004_br0120) Wadler (10.1016/j.ic.2014.01.004_br0310) 1989 Schrijvers (10.1016/j.ic.2014.01.004_br0350) 2009 Wright (10.1016/j.ic.2014.01.004_br0170) 1995; 8 Tarjan (10.1016/j.ic.2014.01.004_br0270) 1972; 1 Antoy (10.1016/j.ic.2014.01.004_br0400) 1999; vol. 1722 Hanus (10.1016/j.ic.2014.01.004_br0030) González-Moreno (10.1016/j.ic.2014.01.004_br0130) 2001 Seidel (10.1016/j.ic.2014.01.004_br0320) 2010; vol. 6009 Peyton Jones (10.1016/j.ic.2014.01.004_br0240) 1987 Cheney (10.1016/j.ic.2014.01.004_br0220) 2003 Brassel (10.1016/j.ic.2014.01.004_br0140) Reynolds (10.1016/j.ic.2014.01.004_br0300) 1983 10.1016/j.ic.2014.01.004_br0060 Hanus (10.1016/j.ic.2014.01.004_br0040) 2007; vol. 4670 Caballero (10.1016/j.ic.2014.01.004_br0100) 1999 Mitchell (10.1016/j.ic.2014.01.004_br0190) 1988; 10 de Dios Castro (10.1016/j.ic.2014.01.004_br0380) 2007; 188 Perry (10.1016/j.ic.2014.01.004_br0290) 1991 López-Fraguas (10.1016/j.ic.2014.01.004_br0150) 2010; vol. 6461 Damas (10.1016/j.ic.2014.01.004_br0010) 1982 Lux (10.1016/j.ic.2014.01.004_br0160) Johann (10.1016/j.ic.2014.01.004_br0330) 2004 López-Fraguas (10.1016/j.ic.2014.01.004_br0020) 1999; vol. 1631 Hudak (10.1016/j.ic.2014.01.004_br0180) 2007 Christiansen (10.1016/j.ic.2014.01.004_br0340) 2010 López-Fraguas (10.1016/j.ic.2014.01.004_br0410) 2012 Martin-Martin (10.1016/j.ic.2014.01.004_br0430) 2009 Mycroft (10.1016/j.ic.2014.01.004_br0250) 1984 López-Fraguas (10.1016/j.ic.2014.01.004_br0090) 2008; vol. 4989 Martin-Martin (10.1016/j.ic.2014.01.004_br0070) 2011 Cardelli (10.1016/j.ic.2014.01.004_br0280) 1985; 17 Caballero (10.1016/j.ic.2014.01.004_br0110) 2011; vol. 6539 Xi (10.1016/j.ic.2014.01.004_br0210) 2003; 38 |
| References_xml | – volume: 10 start-page: 470 year: 1988 end-page: 502 ident: br0190 article-title: Abstract types have existential type publication-title: ACM Trans. Program. Lang. Syst. – volume: 188 start-page: 3 year: 2007 end-page: 19 ident: br0380 article-title: Extra variables can be eliminated from functional logic programs publication-title: Electron. Notes Theor. Comput. Sci. – volume: vol. 4079 start-page: 87 year: 2006 end-page: 101 ident: br0370 article-title: Overlapping rules and logic variables in functional logic programs publication-title: Proceedings of the 22nd International Conference on Logic Programming – volume: vol. 4989 start-page: 147 year: 2008 end-page: 162 ident: br0090 article-title: Rewriting and call-time choice: the HO case publication-title: Proceedings of the 9th International Symposium on Functional and Logic Programming – start-page: 2001 year: 2001 ident: br0130 article-title: Polymorphic types in functional logic programming publication-title: J. Funct. Logic Program. – volume: 1 start-page: 146 year: 1972 end-page: 160 ident: br0270 article-title: Depth-first search and linear graph algorithms publication-title: SIAM J. Comput. – start-page: 39 year: 2010 end-page: 48 ident: br0340 article-title: Free theorems for functional logic programs publication-title: Proceedings of the 4th ACM SIGPLAN Workshop on Programming Languages Meets Program Verification – volume: 16 start-page: 1411 year: 1994 end-page: 1430 ident: br0200 article-title: Polymorphic type inference and abstract data types publication-title: ACM Trans. Program. Lang. Syst. – reference: J.J. Moreno-Navarro, J. Mariño, A. del Pozo-Pietro, Á. Herranz-Nieva, J. García-Martín, Adding type classes to functional-logic languages, in: 1996 Joint Conference on Declarative Programming, APPIA-GULP-PRODE '96, pp. 427–438. – start-page: 153 year: 1997 end-page: 167 ident: br0080 article-title: A higher order rewriting logic for functional logic programming publication-title: Proceedings of the 14th International Conference on Logic Programming – volume: 53 start-page: 74 year: 2010 end-page: 85 ident: br0390 article-title: Functional logic programming publication-title: Commun. ACM – volume: vol. 1631 start-page: 244 year: 1999 end-page: 247 ident: br0020 article-title: Toy: A multiparadigm declarative system publication-title: Proceedings of the 10th International Conference on Rewriting Techniques and Applications – volume: 38 start-page: 224 year: 2003 end-page: 235 ident: br0210 article-title: Guarded recursive datatype constructors publication-title: SIGPLAN Not. – volume: vol. 1722 start-page: 335 year: 1999 end-page: 352 ident: br0400 article-title: Typed higher-order narrowing without higher-order strategies publication-title: Proceedings of the 4th International Symposium on Functional and Logic Programming – year: 2003 ident: br0220 article-title: First-class phantom types – year: 1985 ident: br0230 article-title: Type assignment in programming languages – volume: 5 start-page: 35 year: 1999 end-page: 55 ident: br0360 article-title: Type inference with constrained types publication-title: Theory Pract. Object Syst. – start-page: 347 year: 1989 end-page: 359 ident: br0310 article-title: Theorems for free! publication-title: Proceedings of the 4th International Conference on Functional Programming Languages and Computer Architecture – start-page: 121 year: 2011 end-page: 130 ident: br0070 article-title: Type classes in functional logic programming publication-title: Proceedings of the 2011 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation – start-page: 85 year: 1999 end-page: 99 ident: br0100 article-title: A functional-logic perspective on parsing publication-title: Proceedings of the 4th International Symposium on Functional and Logic Programming – start-page: 207 year: 1982 end-page: 212 ident: br0010 article-title: Principal type-schemes for functional programs publication-title: Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages – start-page: 341 year: 2009 end-page: 352 ident: br0350 article-title: Complete and decidable type inference for GADTs publication-title: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming – start-page: 99 year: 2004 end-page: 110 ident: br0330 article-title: Free theorems in the presence of publication-title: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages – year: 2007 ident: br0160 article-title: Münster Curry user's guide, release 0.9.11 – start-page: 83 year: 2012 end-page: 92 ident: br0410 article-title: Well-typed narrowing with extra variables in functional-logic programming publication-title: Proceedings of the 2012 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation – volume: 17 start-page: 471 year: 1985 end-page: 522 ident: br0280 article-title: On understanding types, data abstraction, and polymorphism publication-title: ACM Comput. Surv. – start-page: 513 year: 1983 end-page: 523 ident: br0300 article-title: Types, abstraction and parametric polymorphism publication-title: Inf. Process. – volume: vol. 4670 start-page: 45 year: 2007 end-page: 75 ident: br0040 article-title: Multi-paradigm declarative languages publication-title: Proceedings of the 23rd International Conference on Logic Programming – year: 2011 ident: br0120 article-title: Call-time choice and extensionality – post to the Curry mailing list – year: 1987 ident: br0240 article-title: The Implementation of Functional Programming Languages, Prentice-Hall International Series in Computer Science – year: 2009 ident: br0430 article-title: Advances in type systems for functional logic programming – volume: vol. 6539 start-page: 145 year: 2011 end-page: 159 ident: br0110 article-title: Integrating xpath with the functional-logic language toy publication-title: Proceedings of the 13th International Symposium on Practical Aspects of Declarative Languages – volume: 8 start-page: 343 year: 1995 end-page: 355 ident: br0170 article-title: Simple imperative polymorphism publication-title: LISP Symb. Comput. – volume: 15 start-page: 290 year: 1993 end-page: 311 ident: br0260 article-title: Type reconstruction in the presence of polymorphic recursion publication-title: ACM Trans. Program. Lang. Syst. – volume: vol. 6009 start-page: 175 year: 2010 end-page: 190 ident: br0320 article-title: Automatically generating counterexamples to naive free theorems publication-title: Proceedings of 10th International Symposium on Functional and Logic Programming – year: 2008 ident: br0140 article-title: Two to three ways to write an unsafe type cast without importing unsafe – post to the Curry mailing list – year: 2006 ident: br0030 article-title: Curry: An integrated functional logic language – year: 1991 ident: br0290 article-title: The implementation of practical functional programming languages – start-page: 12-1 year: 2007 end-page: 12-55 ident: br0180 article-title: A history of Haskell: Being lazy with class publication-title: Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages – start-page: 217 year: 1984 end-page: 228 ident: br0250 article-title: Polymorphic type schemes and recursive definitions publication-title: Proceedings of the 6th Colloquium on International Symposium on Programming – volume: vol. 5979 start-page: 128 year: 2010 end-page: 144 ident: br0420 article-title: New results on type systems for functional logic programming publication-title: 18th International Workshop on Functional and (Constraint) Logic Programming – reference: W. Lux, Adding Haskell-style overloading to Curry, in: Workshop of Working Group 2.1.4 of the German Computing Science Association GI, pp. 67–76. – volume: vol. 6461 start-page: 80 year: 2010 end-page: 96 ident: br0150 article-title: Liberal typing for functional logic programs publication-title: Proceedings of the 8th Asian Symposium on Programming Languages and Systems – start-page: 347 year: 1989 ident: 10.1016/j.ic.2014.01.004_br0310 article-title: Theorems for free! – year: 1991 ident: 10.1016/j.ic.2014.01.004_br0290 – start-page: 12-1 year: 2007 ident: 10.1016/j.ic.2014.01.004_br0180 article-title: A history of Haskell: Being lazy with class – volume: vol. 6539 start-page: 145 year: 2011 ident: 10.1016/j.ic.2014.01.004_br0110 article-title: Integrating xpath with the functional-logic language toy – volume: 10 start-page: 470 year: 1988 ident: 10.1016/j.ic.2014.01.004_br0190 article-title: Abstract types have existential type publication-title: ACM Trans. Program. Lang. Syst. doi: 10.1145/44501.45065 – start-page: 39 year: 2010 ident: 10.1016/j.ic.2014.01.004_br0340 article-title: Free theorems for functional logic programs – ident: 10.1016/j.ic.2014.01.004_br0060 – volume: vol. 1631 start-page: 244 year: 1999 ident: 10.1016/j.ic.2014.01.004_br0020 article-title: Toy: A multiparadigm declarative system – start-page: 153 year: 1997 ident: 10.1016/j.ic.2014.01.004_br0080 article-title: A higher order rewriting logic for functional logic programming – volume: 8 start-page: 343 year: 1995 ident: 10.1016/j.ic.2014.01.004_br0170 article-title: Simple imperative polymorphism publication-title: LISP Symb. Comput. doi: 10.1007/BF01018828 – start-page: 83 year: 2012 ident: 10.1016/j.ic.2014.01.004_br0410 article-title: Well-typed narrowing with extra variables in functional-logic programming – start-page: 207 year: 1982 ident: 10.1016/j.ic.2014.01.004_br0010 article-title: Principal type-schemes for functional programs – ident: 10.1016/j.ic.2014.01.004_br0120 – volume: vol. 6461 start-page: 80 year: 2010 ident: 10.1016/j.ic.2014.01.004_br0150 article-title: Liberal typing for functional logic programs – start-page: 217 year: 1984 ident: 10.1016/j.ic.2014.01.004_br0250 article-title: Polymorphic type schemes and recursive definitions – start-page: 2001 year: 2001 ident: 10.1016/j.ic.2014.01.004_br0130 article-title: Polymorphic types in functional logic programming publication-title: J. Funct. Logic Program. – year: 1985 ident: 10.1016/j.ic.2014.01.004_br0230 – volume: 17 start-page: 471 year: 1985 ident: 10.1016/j.ic.2014.01.004_br0280 article-title: On understanding types, data abstraction, and polymorphism publication-title: ACM Comput. Surv. doi: 10.1145/6041.6042 – year: 2009 ident: 10.1016/j.ic.2014.01.004_br0430 – ident: 10.1016/j.ic.2014.01.004_br0160 – start-page: 85 year: 1999 ident: 10.1016/j.ic.2014.01.004_br0100 article-title: A functional-logic perspective on parsing – volume: 16 start-page: 1411 year: 1994 ident: 10.1016/j.ic.2014.01.004_br0200 article-title: Polymorphic type inference and abstract data types publication-title: ACM Trans. Program. Lang. Syst. doi: 10.1145/186025.186031 – volume: vol. 4989 start-page: 147 year: 2008 ident: 10.1016/j.ic.2014.01.004_br0090 article-title: Rewriting and call-time choice: the HO case – volume: 38 start-page: 224 year: 2003 ident: 10.1016/j.ic.2014.01.004_br0210 article-title: Guarded recursive datatype constructors publication-title: SIGPLAN Not. doi: 10.1145/640128.604150 – volume: 15 start-page: 290 year: 1993 ident: 10.1016/j.ic.2014.01.004_br0260 article-title: Type reconstruction in the presence of polymorphic recursion publication-title: ACM Trans. Program. Lang. Syst. doi: 10.1145/169701.169687 – start-page: 121 year: 2011 ident: 10.1016/j.ic.2014.01.004_br0070 article-title: Type classes in functional logic programming – start-page: 513 year: 1983 ident: 10.1016/j.ic.2014.01.004_br0300 article-title: Types, abstraction and parametric polymorphism publication-title: Inf. Process. – volume: vol. 6009 start-page: 175 year: 2010 ident: 10.1016/j.ic.2014.01.004_br0320 article-title: Automatically generating counterexamples to naive free theorems – ident: 10.1016/j.ic.2014.01.004_br0030 – volume: 188 start-page: 3 year: 2007 ident: 10.1016/j.ic.2014.01.004_br0380 article-title: Extra variables can be eliminated from functional logic programs publication-title: Electron. Notes Theor. Comput. Sci. doi: 10.1016/j.entcs.2006.05.049 – year: 2003 ident: 10.1016/j.ic.2014.01.004_br0220 – volume: 5 start-page: 35 year: 1999 ident: 10.1016/j.ic.2014.01.004_br0360 article-title: Type inference with constrained types publication-title: Theory Pract. Object Syst. doi: 10.1002/(SICI)1096-9942(199901/03)5:1<35::AID-TAPO4>3.0.CO;2-4 – volume: vol. 5979 start-page: 128 year: 2010 ident: 10.1016/j.ic.2014.01.004_br0420 article-title: New results on type systems for functional logic programming – ident: 10.1016/j.ic.2014.01.004_br0050 – volume: vol. 1722 start-page: 335 year: 1999 ident: 10.1016/j.ic.2014.01.004_br0400 article-title: Typed higher-order narrowing without higher-order strategies – ident: 10.1016/j.ic.2014.01.004_br0140 – year: 1987 ident: 10.1016/j.ic.2014.01.004_br0240 – start-page: 99 year: 2004 ident: 10.1016/j.ic.2014.01.004_br0330 article-title: Free theorems in the presence of seq – volume: vol. 4670 start-page: 45 year: 2007 ident: 10.1016/j.ic.2014.01.004_br0040 article-title: Multi-paradigm declarative languages – start-page: 341 year: 2009 ident: 10.1016/j.ic.2014.01.004_br0350 article-title: Complete and decidable type inference for GADTs – volume: vol. 4079 start-page: 87 year: 2006 ident: 10.1016/j.ic.2014.01.004_br0370 article-title: Overlapping rules and logic variables in functional logic programs – volume: 1 start-page: 146 year: 1972 ident: 10.1016/j.ic.2014.01.004_br0270 article-title: Depth-first search and linear graph algorithms publication-title: SIAM J. Comput. doi: 10.1137/0201010 – volume: 53 start-page: 74 year: 2010 ident: 10.1016/j.ic.2014.01.004_br0390 article-title: Functional logic programming publication-title: Commun. ACM doi: 10.1145/1721654.1721675 |
| SSID | ssj0011546 |
| Score | 2.0042677 |
| Snippet | Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas–Milner... |
| SourceID | crossref elsevier |
| SourceType | Index Database Publisher |
| StartPage | 36 |
| SubjectTerms | Functional-logic programming Let bindings Opaque patterns Type systems |
| Title | Safe typing of functional logic programs with opaque patterns and local bindings |
| URI | https://dx.doi.org/10.1016/j.ic.2014.01.004 |
| Volume | 235 |
| WOSCitedRecordID | wos000332418800003&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: 1090-2651 dateEnd: 20171231 omitProxy: false ssIdentifier: ssj0011546 issn: 0890-5401 databaseCode: AIEXJ dateStart: 19950101 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3NS9xAFB8W9dAe2mpbar-Yg5cikcxMkkmOtt2iIiLUwt7CzGRGIpJd1l2R_g_-z7752s1qhXrwEsJAJiHvx5v3-XsI7aQNIEVTnkgKYshomieCE5kUWWmMKFmhpHHDJvjJSTkaVaeDwW3shbm-5F1X3txUk2cVNayBsG3r7BPEvdgUFuAehA5XEDtc_0vwv4XRNrIaypntwRXifU7NxYqs0NYGPrMlcJ04ms3OEza7821Xtq7h5apvvobmpVmsYVZuJsRKMv_Ypt6_s4n-m4BRfD73DWNhfoca7x7tLYPglsEgWRIZDLtp62vAQw6o8Xn8n-dz2O3AOQpugfh-kgDsELMg_VKXoNqq1JZkkL4epizvaVJW9M5kP83lgbb3gYeLvdZyUZLM8a_6YcarxNr3DrxFGWKscLuoW1XbHeqU1I5ddp3yvAIlub5_OBwdLdJSJHR-xc8PeW9fMLj6Ff-2c3q2y9kb9Co4HXjfg2UTDXS3hV7HgR446Pct9LLHTvkWnVokYY8kPDZ4iSTskIQjkrBFEvZIwhFJGPCBHZJwRNI79OfX8OzHQRIGcCSKZnyWqCZtHEVbTguZsYJzQhQvm0pRQwgXgoG3q3kGPmtVSMO1IHZqnRY65w01nL1Ha9240x8QlkLL1IDBqWieSV6KUsjM-ippxaSqym30Lf6ueuJ5VurHxLONWPyfdbATvf1XAzAeferjE97wCb1YwvYzWptN5_oL2lDXs_Zq-jWg4g50DIbA |
| 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=Safe+typing+of+functional+logic+programs+with+opaque+patterns+and+local+bindings&rft.jtitle=Information+and+computation&rft.au=L%C3%B3pez-Fraguas%2C+Francisco+J.&rft.au=Martin-Martin%2C+Enrique&rft.au=Rodr%C3%ADguez-Hortal%C3%A1%2C+Juan&rft.date=2014-04-01&rft.issn=0890-5401&rft.volume=235&rft.spage=36&rft.epage=69&rft_id=info:doi/10.1016%2Fj.ic.2014.01.004&rft.externalDBID=n%2Fa&rft.externalDocID=10_1016_j_ic_2014_01_004 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0890-5401&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0890-5401&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0890-5401&client=summon |