Constructing language processors with algebra combinators
Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. The principal attraction of MMS is that families of language constructs can be independently specified and later combined in a mix-and-match fashion to creat...
Uloženo v:
| Vydáno v: | Science of computer programming Ročník 75; číslo 7; s. 543 - 572 |
|---|---|
| Hlavní autoři: | , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Elsevier B.V
01.07.2010
|
| Témata: | |
| ISSN: | 0167-6423, 1872-7964 |
| 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 | Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. The principal attraction of MMS is that families of language constructs can be independently specified and later combined in a mix-and-match fashion to create a complete language semantics. This has proved useful for constructing formal, yet executable, semantics when prototyping languages. In this work we demonstrate that MMS has an additional
software engineering benefit. In addition to composing semantics for various language constructs, we can use MMS to compose various differing semantics for the same language constructs. This capability allows us to compose and reuse orthogonal language tasks such as type checking and compilation. We describe
algebra combinators, the principal vehicle for achieving this reuse, along with a series of applications of the technique for common language processing tasks. |
|---|---|
| AbstractList | Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. The principal attraction of MMS is that families of language constructs can be independently specified and later combined in a mix-and-match fashion to create a complete language semantics. This has proved useful for constructing formal, yet executable, semantics when prototyping languages. In this work we demonstrate that MMS has an additional
software engineering benefit. In addition to composing semantics for various language constructs, we can use MMS to compose various differing semantics for the same language constructs. This capability allows us to compose and reuse orthogonal language tasks such as type checking and compilation. We describe
algebra combinators, the principal vehicle for achieving this reuse, along with a series of applications of the technique for common language processing tasks. |
| Author | Weaver, Philip Kimmell, Garrin Frisby, Nicolas Alexander, Perry |
| Author_xml | – sequence: 1 givenname: Nicolas surname: Frisby fullname: Frisby, Nicolas email: nfrisby@ittc.ku.edu organization: Information Technology and Telecommunication Center, Department of Electrical Engineering and Computer Science, The University of Kansas, 2335 Irving Hill Road, Lawrence, KS 66045, United States – sequence: 2 givenname: Garrin surname: Kimmell fullname: Kimmell, Garrin email: kimmell@ittc.ku.edu organization: Information Technology and Telecommunication Center, Department of Electrical Engineering and Computer Science, The University of Kansas, 2335 Irving Hill Road, Lawrence, KS 66045, United States – sequence: 3 givenname: Philip surname: Weaver fullname: Weaver, Philip email: pweaver@signalicorp.com organization: Signalicorp, 3034 NE Tillamook Street, Portland, OR 97212, United States – sequence: 4 givenname: Perry surname: Alexander fullname: Alexander, Perry email: alex@ittc.ku.edu organization: Information Technology and Telecommunication Center, Department of Electrical Engineering and Computer Science, The University of Kansas, 2335 Irving Hill Road, Lawrence, KS 66045, United States |
| BookMark | eNp9j7FOwzAURS1UJNrCF7DkBxKe7SSOBwZUAUWqxAKz5djPwVVrV3YK4u9JKTPTG949V_csyCzEgITcUqgo0PZuW2XjTawYgKwoqwDEBZnTTrBSyLaekfmUEmVbM35FFjlvAaCtBZ0TuYohj-loRh-GYqfDcNQDFocUDeYcUy6-_PhR6N2AfdKFifveBz1Oj2ty6fQu483fXZL3p8e31brcvD6_rB42pWENH0snXSc4t7W0klNrXK-hc7Q1zTQMWgsWsGFWOyug6fq-R2YoANNOWhBW8yXh516TYs4JnTokv9fpW1FQJ3u1Vb_26mSvKFOT_UTdnymcpn16TKcMBoPWJzSjstH_y_8AUTJneQ |
| Cites_doi | 10.1016/0890-5401(91)90052-4 10.1017/S095679680300488X 10.1017/S0956796807006326 10.1145/640136.604179 10.1007/BF01211391 10.1017/S0956796897002864 |
| ContentType | Journal Article |
| Copyright | 2010 Elsevier B.V. |
| Copyright_xml | – notice: 2010 Elsevier B.V. |
| DBID | 6I. AAFTH AAYXX CITATION |
| DOI | 10.1016/j.scico.2009.12.007 |
| DatabaseName | ScienceDirect Open Access Titles Elsevier:ScienceDirect:Open Access CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1872-7964 |
| EndPage | 572 |
| ExternalDocumentID | 10_1016_j_scico_2009_12_007 S0167642309001749 |
| GroupedDBID | --K --M .DC .~1 0R~ 123 1B1 1RT 1~. 1~5 4.4 457 4G. 5VS 6I. 7-5 71M 8P~ 9JN AACTN AAEDT AAEDW AAFTH AAIAV AAIKJ AAKOC AALRI AAOAW AAQFI AAQXK AAXUO AAYFN ABBOA ABFNM ABJNI ABMAC ABTAH ABVKL ABXDB ABYKQ ACDAQ ACGFS ACNNM ACRLP ACZNC ADBBV ADEZE ADHUB ADMUD AEBSH AEKER AENEX AEXQZ AFFNX AFKWA AFTJW AGHFR AGUBO AGYEJ AHHHB AHZHX AIALX AIEXJ AIKHN AITUG AJBFU AJOXV ALMA_UNASSIGNED_HOLDINGS AMFUW AMRAJ AOUOD ASPBG AVWKF AXJTR AZFZN BKOJK BLXMC CS3 DU5 E.L EBS EFJIC EFLBG EJD EO8 EO9 EP2 EP3 FDB FEDTE FGOYB FIRID FNPLU FYGXN G-2 G-Q GBLVA GBOLZ HVGLF HZ~ IHE IXB J1W KOM LG9 M26 M41 MO0 N9A NCXOZ O-L O9- OAUVE OK1 OZT P-8 P-9 P2P PC. Q38 R2- RIG ROL RPZ SDF SDG SDP SES SEW SPC SPCBC SSV SSZ T5K TN5 WUQ XPP ZMT ZY4 ~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-c253t-f9f8733d49d931dcfba08f16c596406d0d0e52dafd7058bbbe2c1002af9d07da3 |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000278243200005&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0167-6423 |
| IngestDate | Sat Nov 29 03:37:14 EST 2025 Fri Feb 23 02:37:17 EST 2024 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 7 |
| Keywords | Generic programming Modular semantics |
| 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-c253t-f9f8733d49d931dcfba08f16c596406d0d0e52dafd7058bbbe2c1002af9d07da3 |
| OpenAccessLink | https://dx.doi.org/10.1016/j.scico.2009.12.007 |
| PageCount | 30 |
| ParticipantIDs | crossref_primary_10_1016_j_scico_2009_12_007 elsevier_sciencedirect_doi_10_1016_j_scico_2009_12_007 |
| PublicationCentury | 2000 |
| PublicationDate | 2010-07-01 |
| PublicationDateYYYYMMDD | 2010-07-01 |
| PublicationDate_xml | – month: 07 year: 2010 text: 2010-07-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Science of computer programming |
| PublicationYear | 2010 |
| Publisher | Elsevier B.V |
| Publisher_xml | – name: Elsevier B.V |
| References | Meertens (b26) 1992; 4 L. Duponcheel, Using catamorphisms, subtypes and monad transformers for writing modular functional interpreters, 1995 M.P. Jones, L. Duponcheel, Composing monads, Research report YALEU/DCS/RR-1004, Yale University, 1993 Gayo, Díez, Lovelle, del Río (b8) 2001; 44 Liang, Hudak (b22) 1996; vol. 1058 Lämmel, Visser (b19) 2002; vol. 2257 D. Espinosa, Semantic Lego, Ph.D. Thesis, Columbia University, 1995 Lämmel, Visser (b20) 2003; vol. 2562 E. Moggi, An abstract view of programming languages, Technical Report ECS-LFCS-90-113, Edinburgh Univ., 1990 (b16) 2003 Lämmel, Jones (b17) 2003; 38 Lämmel, Jones (b18) 2004 Huet (b10) 1997; 7 IEEE. IEEE Standard VHDL Language Reference Manual, 1994 Chakravarty, Keller, Jones, Marlow (b5) 2005 Harrison, Kamin (b9) 2000 Meijer, Fokkinga, Paterson (b27) 1991; vol. 523 Sheard (b32) 1997 McBride, Paterson (b25) 2008; 18 Alexander (b2) 2006 Weaver, Kimmell, Frisby, Alexander (b38) 2007 Moggi (b30) 1991; 93 Wadler (b36) 1995; vol. 925 Jones (b14) 2000; vol. 1782 R. Lämmel, J. Visser, J. Kort, Dealing with large bananas, in: Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6 July 2000, Utrecht University, 2000, pp. 46–59 Peyton Jones (b31) 2001; 180 Wadler (b37) 1990 Sheard, Pasalic (b33) 2004; 14 Abott, Altenkirch, Ghani, McBride (b1) 2005; 65 Liang, Hudak, Jones (b23) 1995 Bawden (b3) 1999 Hutton (b11) 1998 Meijer, Jeuring (b28) 1995; vol. 925 Steele (b34) 1994 Jansson, Jeuring (b13) 1997 Cartwright, Felleisen (b4) 1994; vol. 789 G. Malcolm, Algebraic Data Types and Program Transformation, Ph.D. Thesis, Groningen University, 1990 Visser (b35) 2001; vol. 2051 Steele (10.1016/j.scico.2009.12.007_b34) 1994 10.1016/j.scico.2009.12.007_b12 10.1016/j.scico.2009.12.007_b15 Weaver (10.1016/j.scico.2009.12.007_b38) 2007 Wadler (10.1016/j.scico.2009.12.007_b37) 1990 Visser (10.1016/j.scico.2009.12.007_b35) 2001; vol. 2051 Sheard (10.1016/j.scico.2009.12.007_b32) 1997 Lämmel (10.1016/j.scico.2009.12.007_b17) 2003; 38 Alexander (10.1016/j.scico.2009.12.007_b2) 2006 Hutton (10.1016/j.scico.2009.12.007_b11) 1998 (10.1016/j.scico.2009.12.007_b16) 2003 Gayo (10.1016/j.scico.2009.12.007_b8) 2001; 44 10.1016/j.scico.2009.12.007_b6 10.1016/j.scico.2009.12.007_b7 Bawden (10.1016/j.scico.2009.12.007_b3) 1999 Meertens (10.1016/j.scico.2009.12.007_b26) 1992; 4 Liang (10.1016/j.scico.2009.12.007_b23) 1995 Jansson (10.1016/j.scico.2009.12.007_b13) 1997 Chakravarty (10.1016/j.scico.2009.12.007_b5) 2005 Jones (10.1016/j.scico.2009.12.007_b14) 2000; vol. 1782 Huet (10.1016/j.scico.2009.12.007_b10) 1997; 7 10.1016/j.scico.2009.12.007_b21 McBride (10.1016/j.scico.2009.12.007_b25) 2008; 18 10.1016/j.scico.2009.12.007_b24 Peyton Jones (10.1016/j.scico.2009.12.007_b31) 2001; 180 Abott (10.1016/j.scico.2009.12.007_b1) 2005; 65 Cartwright (10.1016/j.scico.2009.12.007_b4) 1994; vol. 789 Wadler (10.1016/j.scico.2009.12.007_b36) 1995; vol. 925 Lämmel (10.1016/j.scico.2009.12.007_b19) 2002; vol. 2257 Meijer (10.1016/j.scico.2009.12.007_b28) 1995; vol. 925 Lämmel (10.1016/j.scico.2009.12.007_b18) 2004 Moggi (10.1016/j.scico.2009.12.007_b30) 1991; 93 Lämmel (10.1016/j.scico.2009.12.007_b20) 2003; vol. 2562 Sheard (10.1016/j.scico.2009.12.007_b33) 2004; 14 Liang (10.1016/j.scico.2009.12.007_b22) 1996; vol. 1058 10.1016/j.scico.2009.12.007_b29 Meijer (10.1016/j.scico.2009.12.007_b27) 1991; vol. 523 Harrison (10.1016/j.scico.2009.12.007_b9) 2000 |
| References_xml | – start-page: 4 year: 1999 end-page: 12 ident: b3 article-title: Quasiquotation in Lisp publication-title: Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 1999, San Antonio, TX, USA, 22–23 January 1999 – start-page: 333 year: 1995 end-page: 343 ident: b23 article-title: Monad transformers and modular interpreters publication-title: Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages – volume: vol. 925 start-page: 228 year: 1995 end-page: 266 ident: b28 article-title: Merging monads and folds for functional programming publication-title: Tutorial Text of Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques, Båstad, Sweden, 24–30 May 1995 – volume: vol. 1058 start-page: 219 year: 1996 end-page: 234 ident: b22 article-title: Modular denotational semantics for compiler construction publication-title: Proceedings of Programming Languages and Systems, European Symposium on Programming – reference: D. Espinosa, Semantic Lego, Ph.D. Thesis, Columbia University, 1995 – volume: 65 start-page: 1 year: 2005 end-page: 28 ident: b1 publication-title: Fundamentae Informatica – start-page: 155 year: 2007 end-page: 164 ident: b38 article-title: Constructing language processors with algebra combinators publication-title: Proceedings of International Conference on Generative Programming and Component Engineering – reference: G. Malcolm, Algebraic Data Types and Program Transformation, Ph.D. Thesis, Groningen University, 1990 – volume: vol. 2562 start-page: 357 year: 2003 end-page: 375 ident: b20 article-title: A Strafunski application letter publication-title: Proceedings of International Symposium on Practical Aspects of Declarative Languages – start-page: 280 year: 1998 end-page: 288 ident: b11 article-title: Fold and unfold for program semantics publication-title: Proceedings of ACM SIGPLAN International Conference on Functional Programming – volume: vol. 925 start-page: 24 year: 1995 end-page: 52 ident: b36 article-title: Monads for functional programming publication-title: Tutorial Text of Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques, Båstad, Sweden, 24–30 May 1995 – start-page: 470 year: 1997 end-page: 482 ident: b13 article-title: PolyP—A polytypic programming language extension publication-title: Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages – volume: 4 start-page: 413 year: 1992 end-page: 424 ident: b26 article-title: Paramorphisms publication-title: Formal Aspects of Computing – volume: 7 start-page: 549 year: 1997 end-page: 554 ident: b10 article-title: The Zipper publication-title: Journal of Functional Programming – reference: E. Moggi, An abstract view of programming languages, Technical Report ECS-LFCS-90-113, Edinburgh Univ., 1990 – reference: L. Duponcheel, Using catamorphisms, subtypes and monad transformers for writing modular functional interpreters, 1995 – volume: 180 year: 2001 ident: b31 article-title: Tackling the Awkward Squad: Monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell publication-title: Engineering Theories of Software Construction – volume: 38 start-page: 26 year: 2003 end-page: 37 ident: b17 article-title: Scrap your boilerplate: A practical design pattern for generic programming publication-title: SIGPLAN Notices – volume: vol. 1782 start-page: 230 year: 2000 end-page: 244 ident: b14 article-title: Type classes with functional dependencies publication-title: Proceedings of Programming Languages and Systems, European Symposium on Programming – volume: vol. 2257 start-page: 137 year: 2002 end-page: 154 ident: b19 article-title: Typed combinators for generic traversal publication-title: Proceedings of International Symposium on Practical Aspects of Declarative Languages – volume: 44 year: 2001 ident: b8 article-title: LPS: A language prototyping system using modular monadic semantics publication-title: Electronic Notes on Theoretical Computer Science – start-page: 244 year: 2004 end-page: 255 ident: b18 article-title: Scrap more boilerplate: Reflection, zips, and generalised casts publication-title: Proceedings of ACM SIGPLAN International Conference on Functional Programming – volume: vol. 789 start-page: 244 year: 1994 end-page: 272 ident: b4 article-title: Extensible denotational language specifications publication-title: Proceedings of International Conference on Theoretical Aspects of Computer Software – start-page: 61 year: 1990 end-page: 78 ident: b37 article-title: Comprehending monads publication-title: Proceedings of ACM Conference on LISP and Functional Programming, Nice, France, 27–29 June 1990 – year: 2006 ident: b2 article-title: System-Level Design with Rosetta – volume: 18 start-page: 1 year: 2008 end-page: 13 ident: b25 article-title: Applicative programming with effects publication-title: Journal of Functional Programming – volume: vol. 523 start-page: 124 year: 1991 end-page: 144 ident: b27 article-title: Functional programming with bananas, lenses, envelopes and barbed wire publication-title: Proceedings of ACM Conference on Functional Programming Languages and Computer Architecture – reference: R. Lämmel, J. Visser, J. Kort, Dealing with large bananas, in: Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6 July 2000, Utrecht University, 2000, pp. 46–59 – volume: 14 start-page: 547 year: 2004 end-page: 587 ident: b33 article-title: Two-level types and parameterized modules publication-title: Journal of Functional Programming – reference: IEEE. IEEE Standard VHDL Language Reference Manual, 1994 – volume: 93 start-page: 55 year: 1991 end-page: 92 ident: b30 article-title: Notions of computation and monads publication-title: Information and Computation – start-page: 22 year: 1997 end-page: 35 ident: b32 article-title: A type-directed, on-line partial evaluator for a polymorphic language publication-title: Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation – start-page: 213 year: 2000 end-page: 229 ident: b9 article-title: Metacomputation-based compiler architecture publication-title: Proceedings of International Conference on Mathematics of Program Construction – year: 2003 ident: b16 publication-title: Haskell 98 Language and Libraries — The Revised Report – start-page: 1 year: 2005 end-page: 13 ident: b5 article-title: Associated types with class publication-title: Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages – start-page: 472 year: 1994 end-page: 492 ident: b34 article-title: Building interpreters by composing monads publication-title: Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages – volume: vol. 2051 start-page: 357 year: 2001 end-page: 361 ident: b35 article-title: Stratego: A language for program transformation based on rewriting strategies — System description of stratego 0.5 publication-title: Proceedings of International Conference on Rewriting Techniques and Applications – reference: M.P. Jones, L. Duponcheel, Composing monads, Research report YALEU/DCS/RR-1004, Yale University, 1993 – volume: vol. 789 start-page: 244 year: 1994 ident: 10.1016/j.scico.2009.12.007_b4 article-title: Extensible denotational language specifications – volume: vol. 523 start-page: 124 year: 1991 ident: 10.1016/j.scico.2009.12.007_b27 article-title: Functional programming with bananas, lenses, envelopes and barbed wire – ident: 10.1016/j.scico.2009.12.007_b12 – volume: 65 start-page: 1 issue: 1–2 year: 2005 ident: 10.1016/j.scico.2009.12.007_b1 article-title: ∂ for data publication-title: Fundamentae Informatica – year: 2003 ident: 10.1016/j.scico.2009.12.007_b16 – volume: vol. 2562 start-page: 357 year: 2003 ident: 10.1016/j.scico.2009.12.007_b20 article-title: A Strafunski application letter – volume: 180 year: 2001 ident: 10.1016/j.scico.2009.12.007_b31 article-title: Tackling the Awkward Squad: Monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell publication-title: Engineering Theories of Software Construction – start-page: 333 year: 1995 ident: 10.1016/j.scico.2009.12.007_b23 article-title: Monad transformers and modular interpreters – start-page: 213 year: 2000 ident: 10.1016/j.scico.2009.12.007_b9 article-title: Metacomputation-based compiler architecture – ident: 10.1016/j.scico.2009.12.007_b24 – start-page: 244 year: 2004 ident: 10.1016/j.scico.2009.12.007_b18 article-title: Scrap more boilerplate: Reflection, zips, and generalised casts – volume: 93 start-page: 55 issue: 1 year: 1991 ident: 10.1016/j.scico.2009.12.007_b30 article-title: Notions of computation and monads publication-title: Information and Computation doi: 10.1016/0890-5401(91)90052-4 – volume: 14 start-page: 547 issue: 5 year: 2004 ident: 10.1016/j.scico.2009.12.007_b33 article-title: Two-level types and parameterized modules publication-title: Journal of Functional Programming doi: 10.1017/S095679680300488X – start-page: 61 year: 1990 ident: 10.1016/j.scico.2009.12.007_b37 article-title: Comprehending monads – ident: 10.1016/j.scico.2009.12.007_b7 – year: 2006 ident: 10.1016/j.scico.2009.12.007_b2 – start-page: 4 year: 1999 ident: 10.1016/j.scico.2009.12.007_b3 article-title: Quasiquotation in Lisp – volume: vol. 2257 start-page: 137 year: 2002 ident: 10.1016/j.scico.2009.12.007_b19 article-title: Typed combinators for generic traversal – start-page: 22 year: 1997 ident: 10.1016/j.scico.2009.12.007_b32 article-title: A type-directed, on-line partial evaluator for a polymorphic language – ident: 10.1016/j.scico.2009.12.007_b15 – volume: vol. 2051 start-page: 357 year: 2001 ident: 10.1016/j.scico.2009.12.007_b35 article-title: Stratego: A language for program transformation based on rewriting strategies — System description of stratego 0.5 – volume: vol. 925 start-page: 228 year: 1995 ident: 10.1016/j.scico.2009.12.007_b28 article-title: Merging monads and folds for functional programming – volume: vol. 1782 start-page: 230 year: 2000 ident: 10.1016/j.scico.2009.12.007_b14 article-title: Type classes with functional dependencies – volume: 18 start-page: 1 issue: 1 year: 2008 ident: 10.1016/j.scico.2009.12.007_b25 article-title: Applicative programming with effects publication-title: Journal of Functional Programming doi: 10.1017/S0956796807006326 – volume: vol. 925 start-page: 24 year: 1995 ident: 10.1016/j.scico.2009.12.007_b36 article-title: Monads for functional programming – start-page: 470 year: 1997 ident: 10.1016/j.scico.2009.12.007_b13 article-title: PolyP—A polytypic programming language extension – volume: 38 start-page: 26 issue: 3 year: 2003 ident: 10.1016/j.scico.2009.12.007_b17 article-title: Scrap your boilerplate: A practical design pattern for generic programming publication-title: SIGPLAN Notices doi: 10.1145/640136.604179 – ident: 10.1016/j.scico.2009.12.007_b21 – volume: 44 issue: 2 year: 2001 ident: 10.1016/j.scico.2009.12.007_b8 article-title: LPS: A language prototyping system using modular monadic semantics publication-title: Electronic Notes on Theoretical Computer Science – start-page: 155 year: 2007 ident: 10.1016/j.scico.2009.12.007_b38 article-title: Constructing language processors with algebra combinators – volume: vol. 1058 start-page: 219 year: 1996 ident: 10.1016/j.scico.2009.12.007_b22 article-title: Modular denotational semantics for compiler construction – start-page: 472 year: 1994 ident: 10.1016/j.scico.2009.12.007_b34 article-title: Building interpreters by composing monads – start-page: 1 year: 2005 ident: 10.1016/j.scico.2009.12.007_b5 article-title: Associated types with class – ident: 10.1016/j.scico.2009.12.007_b6 – volume: 4 start-page: 413 issue: 5 year: 1992 ident: 10.1016/j.scico.2009.12.007_b26 article-title: Paramorphisms publication-title: Formal Aspects of Computing doi: 10.1007/BF01211391 – ident: 10.1016/j.scico.2009.12.007_b29 – volume: 7 start-page: 549 issue: 5 year: 1997 ident: 10.1016/j.scico.2009.12.007_b10 article-title: The Zipper publication-title: Journal of Functional Programming doi: 10.1017/S0956796897002864 – start-page: 280 year: 1998 ident: 10.1016/j.scico.2009.12.007_b11 article-title: Fold and unfold for program semantics |
| SSID | ssj0006471 |
| Score | 1.850134 |
| Snippet | Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. The principal... |
| SourceID | crossref elsevier |
| SourceType | Index Database Publisher |
| StartPage | 543 |
| SubjectTerms | Generic programming Modular semantics |
| Title | Constructing language processors with algebra combinators |
| URI | https://dx.doi.org/10.1016/j.scico.2009.12.007 |
| Volume | 75 |
| WOSCitedRecordID | wos000278243200005&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: 1872-7964 dateEnd: 20180131 omitProxy: false ssIdentifier: ssj0006471 issn: 0167-6423 databaseCode: AIEXJ dateStart: 19950201 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3da9swEBdZuoe9rNva0o9t-GFvq4tsWZb1WEr3xSiD9SNvRrakktJ4IS0hf0D_8J58kmOaUtbBXkwwOHHufjrdne7uR8gnlTCuwW-Pk8SqOAOXJJYaAleZm9QyWlPTksGc_xQnJ8VoJH8NBnehF2Z-LZqmWCzk9L-qGu6Bsl3r7DPU3X0p3IDPoHS4gtrh-leKdxScOBS2uezSkZ-n2BDgqHWwne360h0Zu5JyiI1d5H3T91PDkvdF5473IZRyTcJm1_aMjP1ozhZRankyNJ5M_InGVzWbjTsIXhjla0YxldMBLjTaYNHwzFcn-3yEO0oX_XzEaqMM5i3BHkOog7bMoK0tBDj3EoeYB2OMNCoedKJnWXnGeps0R76fFfuPqYirA3AfamztbJO9SKz7YLD2b_dS7p2odHt1Jl-QtRTCJzoka4ffj0c_uh09x8C9-xNhelVbJ7jyU497OD2v5fQNee3DjegQYfKWDEzzjqwHKo_Iq3mDyD5qooCaaImayKEm8qiJeqjZJGdfjk-PvsWeVSOuU85uYyttIRjTmdSSJbq2laKFTfKagyporqmmhqdaWS0oL6qqMmnt5vQqC4tYaMW2yLD505htEtEaguGMs7yCqJqbXFaw8HWaVCKj1tBqh-wHSZRTHJ5ShqrCq7IVnKNBlWWSliC4HZIHaZXe_0O_rgT1PvXg7r8-uEdeLSH8ngxBzuYDeVnPb8c3s48eBvfgjII3 |
| 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=Constructing+language+processors+with+algebra+combinators&rft.jtitle=Science+of+computer+programming&rft.au=Frisby%2C+Nicolas&rft.au=Kimmell%2C+Garrin&rft.au=Weaver%2C+Philip&rft.au=Alexander%2C+Perry&rft.date=2010-07-01&rft.pub=Elsevier+B.V&rft.issn=0167-6423&rft.eissn=1872-7964&rft.volume=75&rft.issue=7&rft.spage=543&rft.epage=572&rft_id=info:doi/10.1016%2Fj.scico.2009.12.007&rft.externalDocID=S0167642309001749 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0167-6423&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0167-6423&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0167-6423&client=summon |