{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,31]],"date-time":"2025-10-31T13:38:44Z","timestamp":1761917924614,"version":"3.40.3"},"publisher-location":"Cham","reference-count":17,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030921231"},{"type":"electronic","value":"9783030921248"}],"license":[{"start":{"date-parts":[[2021,1,1]],"date-time":"2021-01-01T00:00:00Z","timestamp":1609459200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,12,3]],"date-time":"2021-12-03T00:00:00Z","timestamp":1638489600000},"content-version":"vor","delay-in-days":336,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2021]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Within the printing industry, much of the variety in printed applications comes from the variety in finishing. Finishing comprises the processing of sheets of paper after being printed, e.g. to form books. The configuration space of finishers, i.e. all possible configurations given the available features and hardware capabilities, are large. Current control software minimally assists operators in finding useful configurations. Using a classical modelling and integration approach to support a variety of configuration spaces is suboptimal with respect to operatability, development time, and maintenance burden.<\/jats:p><jats:p>In this paper, we explore the use of a modeling language for finishers to realize optimizing decision making over configuration parameters in a systematic way and to reduce development time by generating control software from models.<\/jats:p><jats:p>We present CSX, a domain-specific language for high-level declarative specification of finishers that supports specification of the configuration parameters and the automated exploration of the configuration space of finishers. The language serves as an interface to constraint solving, i.e., we use low-level SMT constraint solving to find configurations for high-level specifications. We present a denotational semantics that expresses a translation of CSX specifications to SMT constraints. We describe the implementation of the CSX compiler and the CSX programming environment (IDE), which supports well-formedness checking, inhabitance checking, and interactive configuration space exploration. We evaluate CSX by modelling two realistic finishers. Benchmarks show that CSX has practical performance (&lt;1s) for several scenarios of configuration space exploration.<\/jats:p>","DOI":"10.1007\/978-3-030-92124-8_24","type":"book-chapter","created":{"date-parts":[[2021,12,2]],"date-time":"2021-12-02T17:18:47Z","timestamp":1638465527000},"page":"423-442","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Configuration Space Exploration for\u00a0Digital Printing Systems"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3014-8324","authenticated-orcid":false,"given":"Jasper","family":"Denkers","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marvin","family":"Brunner","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Louis","family":"van Gool","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7384-3370","authenticated-orcid":false,"given":"Eelco","family":"Visser","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2021,12,3]]},"reference":[{"key":"24_CR1","doi-asserted-by":"publisher","unstructured":"van Antwerpen, H., N\u00e9ron, P., Tolmach, A.P., Visser, E., Wachsmuth, G.: A constraint language for static semantic analysis based on scope graphs. In: Erwig, M., Rompf, T. (eds.) Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2016, St. Petersburg, FL, USA, 20\u201322 January 2016, pp. 49\u201360. ACM (2016). https:\/\/doi.org\/10.1145\/2847538.2847543","DOI":"10.1145\/2847538.2847543"},{"issue":"1\u20132","key":"24_CR2","doi-asserted-by":"publisher","first-page":"52","DOI":"10.1016\/j.scico.2007.11.003","volume":"72","author":"M Bravenboer","year":"2008","unstructured":"Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego\/XT 01.7. A language and toolset for program transformation. Sci. Comput. Program. 72(1\u20132), 52\u201370 (2008). https:\/\/doi.org\/10.1016\/j.scico.2007.11.003","journal-title":"Sci. Comput. Program."},{"key":"24_CR3","doi-asserted-by":"publisher","first-page":"63","DOI":"10.1016\/j.cola.2019.05.001","volume":"53","author":"JC Dagef\u00f6rde","year":"2019","unstructured":"Dagef\u00f6rde, J.C., Kuchen, H.: A compiler and virtual machine for constraint-logic object-oriented programming with muli. J. Comput. Lang. 53, 63\u201378 (2019). https:\/\/doi.org\/10.1016\/j.cola.2019.05.001","journal-title":"J. Comput. Lang."},{"issue":"5\/6","key":"24_CR4","doi-asserted-by":"publisher","first-page":"523","DOI":"10.1016\/S0747-7171(06)80004-0","volume":"15","author":"A van Deursen","year":"1993","unstructured":"van Deursen, A., Klint, P., Tip, F.: Origin tracking. J. Symb. Comput. 15(5\/6), 523\u2013545 (1993)","journal-title":"J. Symb. Comput."},{"key":"24_CR5","doi-asserted-by":"publisher","first-page":"24","DOI":"10.1016\/j.cl.2015.08.007","volume":"44","author":"S Erdweg","year":"2015","unstructured":"Erdweg, S., et al.: Evaluating and comparing language workbenches: existing results and benchmarks for the future. Comput. Lang. Syst. Struct. 44, 24\u201347 (2015). https:\/\/doi.org\/10.1016\/j.cl.2015.08.007","journal-title":"Comput. Lang. Syst. Struct."},{"issue":"2","key":"24_CR6","doi-asserted-by":"publisher","first-page":"256","DOI":"10.1145\/505145.505149","volume":"11","author":"D Jackson","year":"2002","unstructured":"Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11(2), 256\u2013290 (2002). https:\/\/doi.org\/10.1145\/505145.505149","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"24_CR7","doi-asserted-by":"publisher","unstructured":"Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs. In: Cook, W.R., Clarke, S., Rinard, M.C. (eds.) Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, pp. 444\u2013463. ACM, Reno\/Tahoe (2010). https:\/\/doi.org\/10.1145\/1869459.1869497","DOI":"10.1145\/1869459.1869497"},{"key":"24_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"182","DOI":"10.1007\/978-3-642-40561-7_13","volume-title":"Software Engineering and Formal Methods","author":"S Keshishzadeh","year":"2013","unstructured":"Keshishzadeh, S., Mooij, A.J., Mousavi, M.R.: Early fault detection in DSLs using SMT solving and automated debugging. In: Hierons, R.M., Merayo, M.G., Bravetti, M. (eds.) SEFM 2013. LNCS, vol. 8137, pp. 182\u2013196. Springer, Heidelberg (2013). https:\/\/doi.org\/10.1007\/978-3-642-40561-7_13"},{"key":"24_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"529","DOI":"10.1007\/978-3-540-74970-7_38","volume-title":"Principles and Practice of Constraint Programming \u2013 CP 2007","author":"N Nethercote","year":"2007","unstructured":"Nethercote, N., Stuckey, P.J., Becket, R., Brand, S., Duck, G.J., Tack, G.: MiniZinc: towards a standard CP modelling language. In: Bessi\u00e8re, C. (ed.) CP 2007. LNCS, vol. 4741, pp. 529\u2013543. Springer, Heidelberg (2007). https:\/\/doi.org\/10.1007\/978-3-540-74970-7_38"},{"key":"24_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"205","DOI":"10.1007\/978-3-662-46669-8_9","volume-title":"Programming Languages and Systems","author":"P Neron","year":"2015","unstructured":"Neron, P., Tolmach, A., Visser, E., Wachsmuth, G.: A theory of name resolution. In: Vitek, J. (ed.) ESOP 2015. LNCS, vol. 9032, pp. 205\u2013231. Springer, Heidelberg (2015). https:\/\/doi.org\/10.1007\/978-3-662-46669-8_9"},{"key":"24_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-030-58768-0_1","volume-title":"Software Engineering and Formal Methods","author":"LE de Souza Amorim","year":"2020","unstructured":"de Souza Amorim, L.E., Visser, E.: Multi-purpose syntax definition with SDF3. In: de Boer, F., Cerone, A. (eds.) SEFM 2020. LNCS, vol. 12310, pp. 1\u201323. Springer, Cham (2020). https:\/\/doi.org\/10.1007\/978-3-030-58768-0_1"},{"key":"24_CR12","doi-asserted-by":"publisher","unstructured":"Stoel, J., van der Storm, T., Vinju, J.J.: AlleAlle: bounded relational model finding with unbounded data. In: Masuhara, H., 0001, T.P. (eds.) Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2019, Athens, Greece, 23\u201324 October 2019, pp. 46\u201361. ACM (2019). https:\/\/doi.org\/10.1145\/3359591.3359726","DOI":"10.1145\/3359591.3359726"},{"issue":"2","key":"24_CR13","first-page":"55","volume":"35","author":"PJ Stuckey","year":"2014","unstructured":"Stuckey, P.J., Feydy, T., Schutt, A., Tack, G., Fischer, J.: The MiniZinc challenge 2008\u20132013. AI Mag. 35(2), 55\u201360 (2014)","journal-title":"AI Mag."},{"key":"24_CR14","doi-asserted-by":"publisher","unstructured":"Torlak, E., Bod\u00edk, R.: Growing solver-aided languages with rosette. In: Hosking, A.L., Eugster, P.T., Hirschfeld, R. (eds.) ACM Symposium on New Ideas in Programming and Reflections on Software, Onward! 2013, part of SPLASH 2013, Indianapolis, IN, USA, 26\u201331 October 2013, pp. 135\u2013152. ACM (2013). https:\/\/doi.org\/10.1145\/2509578.2509586","DOI":"10.1145\/2509578.2509586"},{"key":"24_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"632","DOI":"10.1007\/978-3-540-71209-1_49","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"E Torlak","year":"2007","unstructured":"Torlak, E., Jackson, D.: Kodkod: a relational model finder. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 632\u2013647. Springer, Heidelberg (2007). https:\/\/doi.org\/10.1007\/978-3-540-71209-1_49"},{"key":"24_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1007\/978-3-319-93317-7_1","volume-title":"Theory and Practice of Model Transformation","author":"M Voelter","year":"2018","unstructured":"Voelter, M.: The design, evolution, and use of KernelF. In: Rensink, A., S\u00e1nchez Cuadrado, J. (eds.) ICMT 2018. LNCS, vol. 10888, pp. 3\u201355. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-93317-7_1"},{"key":"24_CR17","doi-asserted-by":"publisher","first-page":"93","DOI":"10.1007\/978-3-030-73758-0_4","volume-title":"Domain-Specific Languages in Practice","author":"M Voelter","year":"2021","unstructured":"Voelter, M., Ko\u0161\u010dejev, S., Riedel, M., Deitsch, A., Hinkelmann, A.: A domain-specific language for payroll calculations: an experience report from DATEV. In: Domain-Specific Languages in Practice, pp. 93\u2013130. Springer, Cham (2021). https:\/\/doi.org\/10.1007\/978-3-030-73758-0_4"}],"container-title":["Lecture Notes in Computer Science","Software Engineering and Formal Methods"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-92124-8_24","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,12,2]],"date-time":"2021-12-02T17:22:24Z","timestamp":1638465744000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-92124-8_24"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021]]},"ISBN":["9783030921231","9783030921248"],"references-count":17,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-92124-8_24","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2021]]},"assertion":[{"value":"3 December 2021","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"SEFM","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Software Engineering and Formal Methods","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2021","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"6 December 2021","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"10 December 2021","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"19","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"sefm2021","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/sefm-conference.github.io\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"86","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"22","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"4","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"26% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"6.5","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}