{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,22]],"date-time":"2025-10-22T22:32:33Z","timestamp":1761172353829,"version":"build-2065373602"},"publisher-location":"Cham","reference-count":15,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783032032805","type":"print"},{"value":"9783032032812","type":"electronic"}],"license":[{"start":{"date-parts":[[2025,10,23]],"date-time":"2025-10-23T00:00:00Z","timestamp":1761177600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,10,23]],"date-time":"2025-10-23T00:00:00Z","timestamp":1761177600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2026]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>OpenVADL is an open source implementation of the Vienna Architecture Description Language (VADL). VADL is a processor description language (PDL) that enables the concise formal specification of processor architectures. OpenVADL automatically generates an assembler, an LLVM based compiler and a QEMU based instruction set simulator from a single VADL processor specification. Automatic generation of synthesizable specifications in a hardware description language is under development. VADL strictly separates the instruction set architecture (ISA) specification from the microarchitecture (MiA) specification. VADL\u2019s MiA specification operates at a higher level of abstraction compared to existing PDLs. This article introduces OpenVADL, describes the generator techniques in detail and shows the performance of the generators in an empirical evaluation. The evaluation demonstrates the capabilities of OpenVADL and its efficiency. An OpenVADL generated instruction set simulator is up to 77% faster\u00a0than the official human written QEMU frontend for the RISC-V RV64IM instruction set architecture.<\/jats:p>","DOI":"10.1007\/978-3-032-03281-2_11","type":"book-chapter","created":{"date-parts":[[2025,10,22]],"date-time":"2025-10-22T04:57:03Z","timestamp":1761109023000},"page":"156-171","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["OpenVADL: An Open Source Implementation of\u00a0the\u00a0Vienna Architecture Description Language"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0009-0000-5621-3476","authenticated-orcid":false,"given":"Florian","family":"Freitag","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1871-7347","authenticated-orcid":false,"given":"Linus","family":"Halder","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0005-7059-3555","authenticated-orcid":false,"given":"Benedikt","family":"Huber","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0005-8889-1104","authenticated-orcid":false,"given":"Benjamin","family":"Kasper","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0001-2469-6183","authenticated-orcid":false,"given":"Michael","family":"Nestler","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0009-9811-3583","authenticated-orcid":false,"given":"Kevin","family":"Per","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0006-0445-3738","authenticated-orcid":false,"given":"Matthias","family":"Raschhofer","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0009-4664-9837","authenticated-orcid":false,"given":"Alexander","family":"Ripar","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0001-5328-9181","authenticated-orcid":false,"given":"Johannes","family":"Zottele","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0009-0002-7668-6259","authenticated-orcid":false,"given":"Andreas","family":"Krall","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,10,23]]},"reference":[{"key":"11_CR1","unstructured":"Embench: A modern embedded benchmark suite (2024). https:\/\/www.embench.org\/. Accessed 15 Jan 2024"},{"key":"11_CR2","unstructured":"Spike RISC-V ISA Simulator (2024). https:\/\/github.com\/riscv-software-src\/riscv-isa-sim. Accessed 15 Jan 2024"},{"key":"11_CR3","unstructured":"Bellard, F.: QEMU, a fast and portable dynamic translator. In: USENIX Annual Technical Conference, FREENIX Track, pp. 41\u201346. USENIX (2005). https:\/\/www.usenix.org\/legacy\/event\/usenix05\/tech\/freenix\/full_papers\/bellard\/bellard.pdf"},{"key":"11_CR4","unstructured":"Bettini, L.: Implementing Domain Specific Languages with Xtext and Xtend - Second Edition, 2nd edn. Packt Publishing (2016). https:\/\/dl.acm.org\/doi\/10.5555\/3074444"},{"issue":"3","key":"11_CR5","doi-asserted-by":"publisher","first-page":"35","DOI":"10.1145\/202530.202534","volume":"30","author":"C Click","year":"1995","unstructured":"Click, C., Paleczny, M.: A simple graph-based intermediate representation. SIGPLAN Not. 30(3), 35\u201349 (1995). https:\/\/doi.org\/10.1145\/202530.202534","journal-title":"SIGPLAN Not."},{"issue":"4","key":"11_CR6","doi-asserted-by":"publisher","first-page":"451","DOI":"10.1145\/115372.115320","volume":"13","author":"R Cytron","year":"1991","unstructured":"Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. 13(4), 451\u2013490 (1991). https:\/\/doi.org\/10.1145\/115372.115320","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"11_CR7","doi-asserted-by":"crossref","unstructured":"Duboscq, G., Stadler, L., W\u00fcrthinger, T., Simon, D., Wimmer, C., M\u00f6ssenb\u00f6ck, H.: Graal IR: an extensible declarative intermediate representation. In: Proceedings of the Asia-Pacific Programming Languages and Compilers Workshop, pp.\u00a01\u20139 (2013). https:\/\/lafo.ssw.uni-linz.ac.at\/pub\/papers\/2013_APPLC_GraalIR.pdf","DOI":"10.1145\/2542142.2542143"},{"key":"11_CR8","doi-asserted-by":"publisher","unstructured":"Freitag, F., et al.: The Vienna Architecture Description Language (2025). https:\/\/doi.org\/10.48550\/arXiv.2402.09087","DOI":"10.48550\/arXiv.2402.09087"},{"key":"11_CR9","doi-asserted-by":"publisher","unstructured":"Hochrainer, C., Krall, A.: A Pred-LL(*) parsable typed higher-order macro system for architecture description languages. In: Proceedings of the 22nd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2023, pp. 29\u201341. Association for Computing Machinery, New York (2023). https:\/\/doi.org\/10.1145\/3624007.3624052","DOI":"10.1145\/3624007.3624052"},{"key":"11_CR10","doi-asserted-by":"crossref","unstructured":"Huber, B., Krall, A.: Pattern matching, transformation and code replacement on a polyhedral representation of nested loops. In: Varbanescu, A.L., Simmhan, Y. (eds.) International Conference on Computing Frontiers (CF 2025). ACM (2025)","DOI":"10.1145\/3719276.3725197"},{"key":"11_CR11","doi-asserted-by":"publisher","unstructured":"Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, CGO 2004, p.\u00a075. IEEE Computer Society, USA (2004). https:\/\/doi.org\/10.1109\/CGO.2004.1281665","DOI":"10.1109\/CGO.2004.1281665"},{"key":"11_CR12","doi-asserted-by":"publisher","unstructured":"Lattner, C., et al.: MLIR: scaling compiler infrastructure for domain specific computation. In: 2021 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO), pp. 2\u201314 (2021). https:\/\/doi.org\/10.1109\/CGO51591.2021.9370308","DOI":"10.1109\/CGO51591.2021.9370308"},{"key":"11_CR13","unstructured":"M\u00f6ssenb\u00f6ck, H., L\u00f6berbauer, M., W\u00f6\u00df, A.: The Compiler Generator Coco\/R (2018). https:\/\/ssw.jku.at\/Research\/Projects\/Coco\/"},{"key":"11_CR14","unstructured":"Nestler, M.: Efficient parsing of OpenVADL. Bachelor\u2019s thesis, Technische Universit\u00e4t Wien (2024). https:\/\/www.complang.tuwien.ac.at\/vadl\/papers\/NestlerFinal.pdf"},{"key":"11_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"192","DOI":"10.1007\/978-3-540-45213-3_25","volume-title":"Modular Programming Languages","author":"A W\u00f6\u00df","year":"2003","unstructured":"W\u00f6\u00df, A., L\u00f6berbauer, M., M\u00f6ssenb\u00f6ck, H.: LL(1) conflict resolution in a recursive descent compiler generator. In: B\u00f6sz\u00f6rm\u00e9nyi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 192\u2013201. Springer, Heidelberg (2003). https:\/\/doi.org\/10.1007\/978-3-540-45213-3_25"}],"container-title":["Lecture Notes in Computer Science","Architecture of Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-032-03281-2_11","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,22]],"date-time":"2025-10-22T04:57:07Z","timestamp":1761109027000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-032-03281-2_11"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,23]]},"ISBN":["9783032032805","9783032032812"],"references-count":15,"URL":"https:\/\/doi.org\/10.1007\/978-3-032-03281-2_11","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,10,23]]},"assertion":[{"value":"23 October 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"ARCS","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Architecture of Computing Systems","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Kiel","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Germany","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2025","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22 April 2025","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"24 April 2025","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"38","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"arcs2025","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/arcs-conference.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}