{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:16:41Z","timestamp":1763468201011},"publisher-location":"Berlin, Heidelberg","reference-count":36,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783662442012"},{"type":"electronic","value":"9783662442029"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014]]},"DOI":"10.1007\/978-3-662-44202-9_5","type":"book-chapter","created":{"date-parts":[[2014,7,17]],"date-time":"2014-07-17T02:01:13Z","timestamp":1405562473000},"page":"105-130","source":"Crossref","is-referenced-by-count":31,"title":["Safely Composable Type-Specific Languages"],"prefix":"10.1007","author":[{"given":"Cyrus","family":"Omar","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Darya","family":"Kurilova","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ligia","family":"Nistor","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Benjamin","family":"Chung","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alex","family":"Potanin","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jonathan","family":"Aldrich","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"5_CR1","doi-asserted-by":"crossref","unstructured":"Adams, M.D.: Principled parsing for indentation-sensitive languages: Revisiting Landin\u2019s offside rule. In: Principles of Programming Languages (2013)","DOI":"10.1145\/2429069.2429129"},{"key":"5_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"157","DOI":"10.1007\/11561347_12","volume-title":"Generative Programming and Component Engineering","author":"M. Bravenboer","year":"2005","unstructured":"Bravenboer, M., Vermaas, R., Vinju, J.J., Visser, E.: Generalized type-based disambiguation of meta programs with concrete object syntax. In: Gl\u00fcck, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol.\u00a03676, pp. 157\u2013172. Springer, Heidelberg (2005)"},{"key":"5_CR3","doi-asserted-by":"crossref","unstructured":"Clark, T., Sammut, P., Willans, J.S.: Beyond annotations: A proposal for extensible Java (XJ). In: Source Code Analysis and Manipulation (2008)","DOI":"10.1109\/SCAM.2008.34"},{"key":"5_CR4","unstructured":"de Rauglaudre, D.: Camlp4 - Reference Manual (2003), http:\/\/caml.inria.fr\/pub\/docs\/manual-camlp4\/"},{"key":"5_CR5","unstructured":"Diekmann, L., Tratt, L.: Parsing composed grammars with language boxes. In: Workshop on Scalable Language Specification (2013)"},{"key":"5_CR6","doi-asserted-by":"crossref","unstructured":"Erdweg, S., Rendel, T., K\u00e4stner, C., Ostermann, K.: SugarJ: library-based language extensibility. In: Object-Oriented Programming Systems, Languages, and Applications (2011)","DOI":"10.1145\/2048147.2048199"},{"key":"5_CR7","doi-asserted-by":"crossref","unstructured":"Erdweg, S., Rieger, F.: A framework for extensible languages. In: Generative Programming: Concepts & Experiences (2013)","DOI":"10.1145\/2517208.2517210"},{"issue":"2","key":"5_CR8","doi-asserted-by":"publisher","first-page":"131","DOI":"10.1006\/jvlc.1996.0009","volume":"7","author":"T. Green","year":"1996","unstructured":"Green, T., Petre, M.: Usability analysis of visual programming environments: A \u2018cognitive dimensions\u2019 framework. Journal of Visual Languages and Computing\u00a07(2), 131\u2013174 (1996)","journal-title":"Journal of Visual Languages and Computing"},{"key":"5_CR9","doi-asserted-by":"crossref","unstructured":"Harper, R.: Practical Foundations for Programming Languages. Cambridge University Press (2012)","DOI":"10.1017\/CBO9781139342131"},{"key":"5_CR10","doi-asserted-by":"crossref","unstructured":"Harper, R., Stone, C.: A Type-Theoretic Interpretation of Standard ML. In: Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press (2000)","DOI":"10.7551\/mitpress\/5641.003.0019"},{"key":"5_CR11","doi-asserted-by":"crossref","unstructured":"Ichikawa, K., Chiba, S.: Composable user-defined operators that can express user-defined literals. In: Modularity (2014)","DOI":"10.1145\/2577080.2577092"},{"key":"5_CR12","unstructured":"JetBrains. JetBrains MPS \u2013 Meta Programming System, http:\/\/www.jetbrains.com\/mps\/"},{"issue":"3","key":"5_CR13","doi-asserted-by":"publisher","first-page":"16","DOI":"10.1145\/2565878","volume":"20","author":"V. Karakoidas","year":"2014","unstructured":"Karakoidas, V.: On domain-specific languages usage (why DSLs really matter). Crossroads\u00a020(3), 16\u201317 (2014)","journal-title":"Crossroads"},{"key":"5_CR14","doi-asserted-by":"crossref","unstructured":"Kats, L.C.L., Visser, E.: The Spoofax language workbench: Rules for declarative specification of languages and IDEs. In: Object-Oriented Programming Systems, Languages, and Applications (2010)","DOI":"10.1145\/1869459.1869497"},{"key":"5_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1007\/978-3-642-36089-3_4","volume-title":"Software Language Engineering","author":"L. Krishnan","year":"2013","unstructured":"Krishnan, L., Van Wyk, E.: Termination analysis for higher-order attribute grammars. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol.\u00a07745, pp. 44\u201363. Springer, Heidelberg (2013)"},{"key":"5_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"589","DOI":"10.1007\/978-3-642-31057-7_26","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"B. Lee","year":"2012","unstructured":"Lee, B., Grimm, R., Hirzel, M., McKinley, K.S.: Marco: Safe, expressive macros for any language. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol.\u00a07313, pp. 589\u2013613. Springer, Heidelberg (2012)"},{"key":"5_CR17","doi-asserted-by":"crossref","unstructured":"Leroy, X.: Formal verification of a realistic compiler. Communications of the ACM (2009)","DOI":"10.1145\/1538788.1538814"},{"key":"5_CR18","doi-asserted-by":"crossref","unstructured":"Loh, A., van der Storm, T., Cook, W.R.: Managed data: Modular strategies for data abstraction. In: Onward! (2012)","DOI":"10.1145\/2384592.2384609"},{"key":"5_CR19","unstructured":"Microsoft Corporation. Expression Trees (C# and Visual Basic), http:\/\/msdn.microsoft.com\/en-us\/library\/bb397951.aspx"},{"key":"5_CR20","doi-asserted-by":"crossref","unstructured":"Miller, H., Haller, P., Burmako, E., Odersky, M.: Instant pickles: Generating object-oriented pickler combinators for fast and extensible serialization. In: Object Oriented Programming Systems, Languages & Applications (2013)","DOI":"10.1145\/2509136.2509547"},{"key":"5_CR21","unstructured":"M\u00f6ller, E.: SRFI-49: Indentation-sensitive syntax (2005), http:\/\/srfi.schemers.org\/srfi-49\/srfi-49.html"},{"key":"5_CR22","doi-asserted-by":"crossref","unstructured":"Nistor, L., Kurilova, D., Balzer, S., Chung, B., Potanin, A., Aldrich, J.: Wyvern: A simple, typed, and pure object-oriented language. In: MechAnisms for SPEcialization, Generalization and Inheritance (2013)","DOI":"10.1145\/2489828.2489830"},{"key":"5_CR23","doi-asserted-by":"crossref","unstructured":"Omar, C., Chung, B., Kurilova, D., Potanin, A., Aldrich, J.: Type-directed, whitespace-delimited parsing for embedded DSLs. In: Globalization of Domain Specific Languages (2013)","DOI":"10.1145\/2489812.2489815"},{"key":"5_CR24","doi-asserted-by":"crossref","unstructured":"Omar, C., Kurilova, D., Nistor, L., Chung, B., Potanin, A., Aldrich, J.: Safely Composable Type-Specific Languages. Technical Report CMU-ISR-14-106, Carnegie Mellon University (2014)","DOI":"10.1007\/978-3-662-44202-9_5"},{"key":"5_CR25","doi-asserted-by":"crossref","unstructured":"Omar, C., Yoon, Y., LaToza, T.D., Myers, B.A.: Active code completion. In: International Conference on Software Engineering (2012)","DOI":"10.1109\/ICSE.2012.6227133"},{"key":"5_CR26","unstructured":"OWASP. OWASP Top 10 2013 (2013), https:\/\/www.owasp.org\/index.php\/Top_10_2013-Top_10"},{"key":"5_CR27","doi-asserted-by":"crossref","unstructured":"Palmer, Z., Smith, S.F.: Backstage Java: Making a Difference in Metaprogramming. In: Object-Oriented Programming Systems, Languages, and Applications (2011)","DOI":"10.1145\/2048066.2048137"},{"issue":"1","key":"5_CR28","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/345099.345100","volume":"22","author":"B.C. Pierce","year":"2000","unstructured":"Pierce, B.C., Turner, D.N.: Local type inference. ACM Trans. Program. Lang. Syst.\u00a022(1), 1\u201344 (2000)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"5_CR29","doi-asserted-by":"crossref","unstructured":"Schwerdfeger, A.C., Van Wyk, E.R.: Verifiable composition of deterministic grammars. In: Programming Language Design and Implementation (2009)","DOI":"10.1145\/1542476.1542499"},{"issue":"12","key":"5_CR30","doi-asserted-by":"publisher","first-page":"60","DOI":"10.1145\/636517.636528","volume":"37","author":"T. Sheard","year":"2002","unstructured":"Sheard, T., Jones, S.: Template meta-programming for Haskell. ACM SIGPLAN Notices\u00a037(12), 60\u201375 (2002)","journal-title":"ACM SIGPLAN Notices"},{"key":"5_CR31","volume-title":"Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory","author":"J.E. Stoy","year":"1977","unstructured":"Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1977)"},{"key":"5_CR32","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"117","DOI":"10.1007\/3-540-45046-7_7","volume-title":"Reflection and Software Engineering","author":"M. Tatsubori","year":"2000","unstructured":"Tatsubori, M., Chiba, S., Killijian, M.-O., Itano, K.: OpenJava: A Class-based Macro System for Java. In: Cazzola, W., Houmb, S.H., Tisato, F. (eds.) Reflection and Software Engineering. LNCS, vol.\u00a01826, pp. 117\u2013133. Springer, Heidelberg (2000)"},{"key":"5_CR33","doi-asserted-by":"crossref","unstructured":"Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H., Noble, J.: Qualitas corpus: A curated collection of Java code for empirical studies. In: Asia Pacific Software Engineering Conference (2010)","DOI":"10.1109\/APSEC.2010.46"},{"key":"5_CR34","doi-asserted-by":"crossref","unstructured":"Tratt, L.: Domain specific language implementation via compile-time meta-programming. ACM Trans. Program. Lang. Syst.\u00a030(6) (October 2008)","DOI":"10.1145\/1391956.1391958"},{"key":"5_CR35","unstructured":"van den Brand, M.G.J.: Pregmatic: A Generator for Incremental Programming Environments. PhD thesis, Katholieke Universiteit Nijmegen (1992)"},{"key":"5_CR36","doi-asserted-by":"crossref","unstructured":"Van Wyk, E.R., Schwerdfeger, A.C.: Context-aware scanning for parsing extensible languages. In: Generative Programming and Component Engineering (2007)","DOI":"10.1145\/1289971.1289983"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2014 \u2013 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-662-44202-9_5","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,5,30]],"date-time":"2024-05-30T14:16:31Z","timestamp":1717078591000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-662-44202-9_5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014]]},"ISBN":["9783662442012","9783662442029"],"references-count":36,"URL":"https:\/\/doi.org\/10.1007\/978-3-662-44202-9_5","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2014]]}}}