{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,5]],"date-time":"2024-09-05T17:48:05Z","timestamp":1725558485884},"publisher-location":"Berlin, Heidelberg","reference-count":43,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783642133206"},{"type":"electronic","value":"9783642133213"}],"license":[{"start":{"date-parts":[[2010,1,1]],"date-time":"2010-01-01T00:00:00Z","timestamp":1262304000000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2010]]},"DOI":"10.1007\/978-3-642-13321-3_22","type":"book-chapter","created":{"date-parts":[[2010,6,22]],"date-time":"2010-06-22T06:24:11Z","timestamp":1277187851000},"page":"397-425","source":"Crossref","is-referenced-by-count":7,"title":["Gradual Refinement"],"prefix":"10.1007","author":[{"given":"Meng","family":"Wang","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jeremy","family":"Gibbons","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kazutaka","family":"Matsuda","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhenjiang","family":"Hu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"22_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"16","DOI":"10.1007\/978-3-540-27764-4_3","volume-title":"Mathematics of Program Construction","author":"A. Alimarine","year":"2004","unstructured":"Alimarine, A., Smetsers, S.: Optimizing generic functions. In: Kozen, D. (ed.) MPC 2004. LNCS, vol.\u00a03125, pp. 16\u201331. Springer, Heidelberg (2004)"},{"key":"22_CR2","doi-asserted-by":"crossref","first-page":"86","DOI":"10.1145\/1088348.1088357","volume-title":"Haskell Workshop","author":"A. Alimarine","year":"2005","unstructured":"Alimarine, A., Smetsers, S., van Weelden, A., van Eekelen, M., Plasmeijer, R.: There and back again: Arrows for invertible programming. In: Haskell Workshop, pp. 86\u201397. ACM, New York (2005)"},{"issue":"4","key":"22_CR3","doi-asserted-by":"publisher","first-page":"487","DOI":"10.1145\/1780.1781","volume":"6","author":"R.S. Bird","year":"1984","unstructured":"Bird, R.S.: The promotion and accumulation strategies in transformational programming. ACM Transactions on Programming Languages and Systems\u00a06(4), 487\u2013504 (1984)","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"22_CR4","series-title":"NATO ASI Series\u00a0F","first-page":"3","volume-title":"Logic of Programming and Calculi of Discrete Design","author":"R.S. Bird","year":"1987","unstructured":"Bird, R.S.: An introduction to the theory of lists. In: Broy, M. (ed.) Logic of Programming and Calculi of Discrete Design. NATO ASI Series\u00a0F, vol.\u00a036, pp. 3\u201342. Springer, Heidelberg (1987); Also available as Technical Monograph PRG-56, from the Programming Research Group, Oxford University"},{"key":"22_CR5","first-page":"287","volume-title":"Research Topics in Functional Programming","author":"R.S. Bird","year":"1990","unstructured":"Bird, R.S.: A calculus of functions for program derivation. In: Research Topics in Functional Programming, pp. 287\u2013307. Addison-Wesley, Reading (1990)"},{"key":"22_CR6","volume-title":"Principles of Programming Languages","author":"A. Bohannon","year":"2008","unstructured":"Bohannon, A., Foster, J.N., Pierce, B.C., Pilkiewicz, A., Schmitt, A.: Boomerang: Resourceful lenses for string data. In: Principles of Programming Languages, January 2008. ACM, New York (2008)"},{"key":"22_CR7","first-page":"136","volume-title":"Lisp and Functional Programming","author":"R. Burstall","year":"1980","unstructured":"Burstall, R., MacQueen, D., Sannella, D.: Hope: An experimental applicative language. In: Lisp and Functional Programming, pp. 136\u2013143. ACM, New York (1980)"},{"issue":"2","key":"22_CR8","doi-asserted-by":"publisher","first-page":"171","DOI":"10.1017\/S095679680000068X","volume":"3","author":"F.W. Burton","year":"1993","unstructured":"Burton, F.W., Cameron, R.D.: Pattern matching with abstract data types. Journal of Functional Programming\u00a03(2), 171\u2013190 (1993)","journal-title":"Journal of Functional Programming"},{"key":"22_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"273","DOI":"10.1007\/978-3-540-73589-2_14","volume-title":"ECOOP 2007 \u2013 Object-Oriented Programming","author":"B. Emir","year":"2007","unstructured":"Emir, B., Odersky, M., Williams, J.: Matching objects with patterns. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol.\u00a04609, pp. 273\u2013298. Springer, Heidelberg (2007)"},{"key":"22_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"21","DOI":"10.1007\/3-540-63237-9_17","volume-title":"Implementation of Functional Languages","author":"M. Erwig","year":"1997","unstructured":"Erwig, M.: Active patterns. In: Kluge, W.E. (ed.) IFL 1996. LNCS, vol.\u00a01268, pp. 21\u201340. Springer, Heidelberg (1997)"},{"key":"22_CR11","volume-title":"Haskell Workshop","author":"M. Erwig","year":"2000","unstructured":"Erwig, M., Peyton Jones, S.: Pattern guards and transformational patterns. In: Haskell Workshop. ACM, New York (2000)"},{"key":"22_CR12","unstructured":"Fokkinga, M., Meijer, E.: Program calculation properties of continuous algebras. Technical Report CS-R9104, CWI, Amsterdam, Netherlands (January 1991)"},{"key":"22_CR13","doi-asserted-by":"crossref","unstructured":"Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bidirectional tree transformations: A linguistic approach to the view update problem. ACM Transactions on Programming Languages and Systems\u00a029(3) (May 2007); Preliminary version in POPL \u201905 (2005)","DOI":"10.1145\/1232420.1232424"},{"key":"22_CR14","doi-asserted-by":"publisher","first-page":"60","DOI":"10.1109\/CSF.2009.25","volume-title":"CSF \u201909: Proceedings of the 2009 22nd IEEE Computer Security Foundations Symposium","author":"J.N. Foster","year":"2009","unstructured":"Foster, J.N., Pierce, B.C., Zdancewic, S.: Updatable security views. In: CSF \u201909: Proceedings of the 2009 22nd IEEE Computer Security Foundations Symposium, Washington, DC, USA, pp. 60\u201374. IEEE Computer Society Press, Los Alamitos (2009)"},{"key":"22_CR15","first-page":"383","volume-title":"International Conference on Functional Programming","author":"J.N. Foster","year":"2008","unstructured":"Foster, J.N., Pilkiewicz, A., Pierce, B.C.: Quotient lenses. In: International Conference on Functional Programming, pp. 383\u2013396. ACM, New York (2008)"},{"key":"22_CR16","doi-asserted-by":"crossref","unstructured":"Frisch, A., Castagna, G., Benzaken, V.: Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types. Journal of the ACM\u00a055(4) (2008)","DOI":"10.1145\/1391289.1391293"},{"key":"22_CR17","first-page":"178","volume-title":"Partial Evaluation and Program Manipulation","author":"Z. Hu","year":"2004","unstructured":"Hu, Z., Mu, S.-C., Takeichi, M.: A programmable editor for developing structured documents based on bidirectional transformations. In: Partial Evaluation and Program Manipulation, pp. 178\u2013189. ACM, New York (2004)"},{"issue":"1-3","key":"22_CR18","doi-asserted-by":"publisher","first-page":"67","DOI":"10.1016\/S0167-6423(99)00023-4","volume":"37","author":"J. Hughes","year":"2000","unstructured":"Hughes, J.: Generalising monads to arrows. Science of Computer Programming\u00a037(1-3), 67\u2013111 (2000)","journal-title":"Science of Computer Programming"},{"key":"22_CR19","doi-asserted-by":"crossref","unstructured":"Jay, C.B.: The pattern calculus. ACM Transactions on Programming Languages and Systems\u00a026(6) (2004)","DOI":"10.1145\/1034774.1034775"},{"key":"22_CR20","first-page":"81","volume-title":"Principles of Programming Languages","author":"C.S. Lee","year":"2001","unstructured":"Lee, C.S., Jones, N.D., Ben-Amram, A.M.: The size-change principle for program termination. In: Principles of Programming Languages, pp. 81\u201392. ACM, New York (2001)"},{"key":"22_CR21","unstructured":"Licata, D., Peyton Jones, S.: View patterns: lightweight views for Haskell (2007), http:\/\/hackage.haskell.org\/trac\/ghc\/wiki\/ViewPatterns"},{"key":"22_CR22","volume-title":"Program Development in Java: Abstraction, Specification, and Object-Oriented Design","author":"B. Liskov","year":"2000","unstructured":"Liskov, B., Guttag, J.: Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Addison-Wesley, Boston (2000)"},{"key":"22_CR23","doi-asserted-by":"crossref","unstructured":"Liskov, B., Zilles, S.: Programming with abstract data types. In: ACM Symposium on Very High Level Languages (1974)","DOI":"10.1145\/800233.807045"},{"key":"22_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"110","DOI":"10.1007\/3-540-36388-2_9","volume-title":"Practical Aspects of Declarative Languages","author":"J. Liu","year":"2002","unstructured":"Liu, J., Myers, A.C.: JMatch: Iterable abstract pattern matching for Java. In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol.\u00a02562, pp. 110\u2013127. Springer, Heidelberg (2002)"},{"key":"22_CR25","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1145\/1706356.1706366","volume-title":"PEPM \u201910: Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation","author":"J.P. Magalh\u00e3es","year":"2010","unstructured":"Magalh\u00e3es, J.P., Holdermans, S., Jeuring, J., L\u00f6h, A.: Optimizing generics is easy! In: PEPM \u201910: Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation, pp. 33\u201342. ACM, New York (2010)"},{"issue":"1","key":"22_CR26","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1007\/s00165-003-0013-6","volume":"16","author":"C. Martin","year":"2004","unstructured":"Martin, C., Gibbons, J., Bayley, I.: Disciplined, efficient, generalised folds for nested datatypes. Formal Aspects of Computing\u00a016(1), 19\u201335 (2004)","journal-title":"Formal Aspects of Computing"},{"key":"22_CR27","series-title":"CWI-Monographs","first-page":"289","volume-title":"CWI Symposium on Mathematics and Computer Science","author":"L.G.L.T. Meertens","year":"1986","unstructured":"Meertens, L.G.L.T.: Algorithmics: Towards programming as a mathematical activity. In: CWI Symposium on Mathematics and Computer Science. CWI-Monographs, vol.\u00a01, pp. 289\u2013344. North-Holland, Amsterdam (1986)"},{"key":"22_CR28","series-title":"Lecture Notes in Computer Science","first-page":"61","volume-title":"Compiler Construction","author":"P.-E. Moreau","year":"2003","unstructured":"Moreau, P.-E., Ringeissen, C., Vittek, M.: A pattern matching compiler for multiple target languages. In: Hedin, G. (ed.) CC 2003. LNCS, vol.\u00a02622, pp. 61\u201376. Springer, Heidelberg (2003)"},{"issue":"2","key":"22_CR29","doi-asserted-by":"publisher","first-page":"96","DOI":"10.1145\/359060.359069","volume":"22","author":"E. Morel","year":"1979","unstructured":"Morel, E., Renvoise, C.: Global optimization by suppression of partial redundancies. Communications of the ACM\u00a022(2), 96\u2013103 (1979)","journal-title":"Communications of the ACM"},{"key":"22_CR30","doi-asserted-by":"publisher","first-page":"146","DOI":"10.1145\/1250734.1250752","volume-title":"PLDI \u201907: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation","author":"K. Morita","year":"2007","unstructured":"Morita, K., Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: Automatic inversion generates divide-and-conquer parallel programs. In: PLDI \u201907: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 146\u2013155. ACM, New York (2007)"},{"key":"22_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/978-3-540-30477-7_2","volume-title":"Programming Languages and Systems","author":"S.-C. Mu","year":"2004","unstructured":"Mu, S.-C., Hu, Z., Takeichi, M.: An algebraic approach to bi-directional updating. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol.\u00a03302, pp. 2\u201318. Springer, Heidelberg (2004)"},{"key":"22_CR32","series-title":"Lecture Notes in Computer Science","first-page":"289","volume-title":"Mathematics of Program Construction","author":"S.-C. Mu","year":"2004","unstructured":"Mu, S.-C., Hu, Z., Takeichi, M.: An injective language for reversible computation. In: Kozen, D. (ed.) MPC 2004. LNCS, vol.\u00a03125, pp. 289\u2013313. Springer, Heidelberg (2004)"},{"key":"22_CR33","doi-asserted-by":"crossref","first-page":"61","DOI":"10.1145\/1411318.1411327","volume-title":"Workshop on Generic Programming","author":"P. Nogueira","year":"2008","unstructured":"Nogueira, P., Moreno-Navarro, J.J.: Bialgebra views: A way for polytypic programming to cohabit with data abstraction. In: Workshop on Generic Programming, pp. 61\u201373. ACM, New York (2008)"},{"key":"22_CR34","unstructured":"Okasaki, C.: Views for Standard ML. In: ACM Workshop on ML (1998)"},{"key":"22_CR35","first-page":"110","volume-title":"International Conference on Functional Programming","author":"P. Palao Gostanza","year":"1996","unstructured":"Palao Gostanza, P., Pe\u00f1a, R., N\u00fa\u00f1ez, M.: A new look at pattern matching in abstract data types. In: International Conference on Functional Programming, pp. 110\u2013121. ACM, New York (1996)"},{"key":"22_CR36","first-page":"71","volume-title":"International Conference on Functional Programming","author":"D. Sereni","year":"2007","unstructured":"Sereni, D.: Termination analysis and call graph construction for higher-order functional programs. In: Ramsey, N. (ed.) International Conference on Functional Programming, pp. 71\u201384. ACM Press, New York (2007)"},{"key":"22_CR37","doi-asserted-by":"crossref","unstructured":"Sleep, M.R., Holmstr\u00f6m, S.: A short note concerning lazy reduction rules for append. Software: Practice and Experience\u00a012(11) (1982)","DOI":"10.1002\/spe.4380121109"},{"key":"22_CR38","first-page":"1","volume-title":"International Conference on Functional Programming","author":"G.L. Steele Jr","year":"2009","unstructured":"Steele Jr, G.L.: Organizing functional code for parallel execution or, foldl and foldr considered slightly harmful. In: International Conference on Functional Programming, pp. 1\u20132. ACM, New York (2009)"},{"key":"22_CR39","first-page":"29","volume-title":"International Conference on Functional Programming","author":"D. Syme","year":"2007","unstructured":"Syme, D., Neverov, G., Margetson, J.: Extensible pattern matching via a lightweight language extension. In: International Conference on Functional Programming, pp. 29\u201340. ACM, New York (2007)"},{"issue":"2-3","key":"22_CR40","doi-asserted-by":"publisher","first-page":"181","DOI":"10.1016\/0167-6423(90)90070-T","volume":"13","author":"S. Thompson","year":"1990","unstructured":"Thompson, S.: Lawful functions and program verification in Miranda. Science of Computer Programming\u00a013(2-3), 181\u2013218 (1990)","journal-title":"Science of Computer Programming"},{"key":"22_CR41","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-46584-7_1","volume-title":"Practical Aspects of Declarative Languages","author":"M. Tullsen","year":"2000","unstructured":"Tullsen, M.: First class patterns. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol.\u00a01753, p. 1. Springer, Heidelberg (2000)"},{"issue":"3","key":"22_CR42","doi-asserted-by":"publisher","first-page":"83","DOI":"10.1145\/24697.24706","volume":"22","author":"P. Wadler","year":"1987","unstructured":"Wadler, P.: A critique of Abelson and Sussman: Why calculating is better than scheming. ACM SIGPLAN Notices\u00a022(3), 83\u201394 (1987)","journal-title":"ACM SIGPLAN Notices"},{"key":"22_CR43","first-page":"307","volume-title":"Principles of Programming Languages","author":"P. Wadler","year":"1987","unstructured":"Wadler, P.: Views: A way for pattern matching to cohabit with data abstraction. In: Principles of Programming Languages, pp. 307\u2013313. ACM, New York (1987)"}],"container-title":["Lecture Notes in Computer Science","Mathematics of Program Construction"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-13321-3_22","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,10,29]],"date-time":"2021-10-29T22:50:38Z","timestamp":1635547838000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-13321-3_22"}},"subtitle":["Blending Pattern Matching with Data Abstraction"],"short-title":[],"issued":{"date-parts":[[2010]]},"ISBN":["9783642133206","9783642133213"],"references-count":43,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-13321-3_22","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2010]]}}}