A case for data-oriented specifications: simpler implementation of B tools and DSLs
Considering programs as data enables powerful meta-programming. One example is Lisp’s macro system, which gives rise to powerful transformations of programs and allows easy implementation of domain-specific languages. Formal specifications, however, usually do not rely on such mechanisms and are mos...
Uloženo v:
| Vydáno v: | Innovations in systems and software engineering Ročník 21; číslo 3; s. 939 - 959 |
|---|---|
| Hlavní autoři: | , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Heidelberg
Springer Nature B.V
01.09.2025
|
| Témata: | |
| ISSN: | 1614-5046, 1614-5054 |
| 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 | Considering programs as data enables powerful meta-programming. One example is Lisp’s macro system, which gives rise to powerful transformations of programs and allows easy implementation of domain-specific languages. Formal specifications, however, usually do not rely on such mechanisms and are mostly written by hand in a textual format (or using specialised domain-specific language (DSL) tools). In this paper, we investigate the opportunities that stem from considering specifications as data. For this, we embedded the B specification language in Clojure, a modern Lisp. We use Clojure as a functional meta-programming language and the ProB Java API to capture the semantics of B, i.e., to find solutions for constraints or animate machines. From our experience, it is especially useful for tool development and generation of constraints and machines from external data sources. It can also be used to implement language extensions and to design DSLs. |
|---|---|
| AbstractList | Considering programs as data enables powerful meta-programming. One example is Lisp’s macro system, which gives rise to powerful transformations of programs and allows easy implementation of domain-specific languages. Formal specifications, however, usually do not rely on such mechanisms and are mostly written by hand in a textual format (or using specialised domain-specific language (DSL) tools). In this paper, we investigate the opportunities that stem from considering specifications as data. For this, we embedded the B specification language in Clojure, a modern Lisp. We use Clojure as a functional meta-programming language and the ProB Java API to capture the semantics of B, i.e., to find solutions for constraints or animate machines. From our experience, it is especially useful for tool development and generation of constraints and machines from external data sources. It can also be used to implement language extensions and to design DSLs. |
| Author | Körner, Philipp Mager, Florian Roßbach, Jan |
| Author_xml | – sequence: 1 givenname: Philipp orcidid: 0000-0001-7256-9560 surname: Körner fullname: Körner, Philipp – sequence: 2 givenname: Florian surname: Mager fullname: Mager, Florian – sequence: 3 givenname: Jan surname: Roßbach fullname: Roßbach, Jan |
| BookMark | eNo9kEtLAzEUhYNUsK3-AVcB19E878y4q_UJAy6q65DJ3MCUdjIm04X_3rEVV-fC-bgHvgWZ9bFHQq4FvxWcF3dZCKU049Iwzk0FTJ2RuQChmeFGz_5vDRdkkfN2gsCAmpPNinqXkYaYaOtGx2LqsB-xpXlA34XOu7GLfb6nudsPO0z0GPuJORY0BvpAxxh3mbq-pY-bOl-S8-B2Ga_-ckk-n58-1q-sfn95W69q5mUhR9ZI6b3SrcSmaLx23ISyKVUAr4JAUYAAqFSjK19WAdHrBooKgg7GtFUbCrUkN6e_Q4pfB8yj3cZD6qdJq6QxJYcSzETJE-VTzDlhsEPq9i59W8Htrzx7kmcnefYozyr1AzmfY98 |
| Cites_doi | 10.1109/FormaliSE.2019.00013 10.1109/ICECCS54210.2022.00017 10.1007/978-3-319-05032-4_17 10.1016/j.cola.2020.100963 10.1017/CBO9780511624162 10.1007/978-3-031-63790-2_5 10.1007/978-3-642-30729-4_3 10.1017/CBO9781139195881 10.1145/3536430 10.1007/978-3-030-73758-0_5 10.1007/978-3-540-71209-1_49 10.1007/978-3-319-33600-8_10 10.1145/3179993 10.1007/978-3-540-78800-3_24 10.1109/FOSE.2007.14 10.1007/978-3-030-73758-0 10.1007/978-3-662-43652-3_5 10.1007/978-3-319-33600-8_11 10.1002/9781119002727.ch2 10.5220/0002925402790287 10.1007/978-3-030-76020-5_9 10.1007/978-3-030-58298-2_8 10.1007/978-1-4842-2535-6 10.1007/978-3-319-98938-9_20 10.1007/s00165-018-0461-7 10.1007/978-3-030-63461-2_19 10.1007/978-3-319-19249-9_30 10.1007/978-3-030-34968-4_25 10.1007/978-3-030-48077-6_8 10.1007/978-3-319-91271-4_20 10.1145/298595.298598 10.1007/978-3-031-25803-9_5 10.1016/j.scico.2019.102378 10.1007/978-3-642-39698-4_5 10.1145/3386321 10.1007/s00165-015-0351-1 10.1007/978-3-642-03466-4_2 10.1007/978-3-030-48077-6_27 10.1007/978-3-031-63790-2_17 10.1007/3-540-58179-0_69 10.1145/3550356.3561561 10.1145/2509578.2509586 |
| ContentType | Journal Article |
| Copyright | The Author(s) 2025. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License. |
| Copyright_xml | – notice: The Author(s) 2025. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License. |
| DBID | AAYXX CITATION JQ2 |
| DOI | 10.1007/s11334-025-00596-3 |
| DatabaseName | CrossRef ProQuest Computer Science Collection |
| DatabaseTitle | CrossRef ProQuest Computer Science Collection |
| DatabaseTitleList | CrossRef ProQuest Computer Science Collection |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1614-5054 |
| EndPage | 959 |
| ExternalDocumentID | 10_1007_s11334_025_00596_3 |
| GroupedDBID | -Y2 .86 .VR 06D 0R~ 0VY 203 29I 2J2 2JN 2JY 2KG 2LR 2P1 2VQ 2~H 30V 4.4 406 408 409 40D 40E 5GY 5VS 67Z 6NX 95- 95. 95~ 96X AABHQ AACDK AAHNG AAIAL AAJBT AAJKR AANZL AAPKM AARHV AARTL AASML AATNV AATVU AAUYE AAWCG AAYIU AAYQN AAYTO AAYXX ABAKF ABBBX ABBRH ABBXA ABDBE ABDZT ABECU ABFSG ABFTD ABFTV ABHLI ABHQN ABJCF ABJNI ABJOX ABKCH ABKTR ABMNI ABMQK ABNWP ABQBU ABQSL ABRTQ ABSXP ABTEG ABTHY ABTKH ABTMW ABULA ABWNU ABXPI ACAOD ACBXY ACDTI ACGFS ACHSB ACHXU ACKNC ACMDZ ACMLO ACOKC ACOMO ACPIV ACREN ACSNA ACSTC ACZOJ ADHHG ADHIR ADHKG ADKNI ADKPE ADRFC ADTPH ADURQ ADYFF ADYOE ADZKW AEBTG AEFQL AEGAL AEGNC AEJHL AEJRE AEKMD AEMSY AEOHA AEPYU AETLH AEVLU AEXYK AEZWR AFBBN AFDZB AFFHD AFGCZ AFHIU AFKRA AFLOW AFOHR AFQWF AFWTZ AFYQB AFZKB AGAYW AGDGC AGJBK AGMZJ AGQEE AGQMX AGQPQ AGRTI AGWIL AGWZB AGYKE AHAVH AHBYD AHKAY AHPBZ AHSBF AHWEU AHYZX AIAKS AIGIU AIIXL AILAN AITGF AIXLP AJBLW AJRNO AJZVZ ALMA_UNASSIGNED_HOLDINGS ALWAN AMKLP AMTXH AMXSW AMYLF AMYQR AOCGG ARAPS ARMRJ ASPBG ATHPR AVWKF AXYYD AYFIA AYJHY AZFZN B-. BA0 BDATZ BENPR BGLVJ BGNMA BSONS CAG CCPQU CITATION COF CS3 CSCUP DDRTE DL5 DNIVK DPUIP EBLON EBS EIOEI EJD ESBYG FEDTE FERAY FFXSO FIGPU FINBP FNLPD FRRFC FSGXE FWDCC GGCAI GGRSB GJIRD GNWQR GQ7 GQ8 GXS H13 HCIFZ HF~ HG5 HG6 HLICF HMJXF HQYDN HRMNR HVGLF HZ~ I09 IHE IJ- IKXTQ IWAJR IXC IXD IXE IZIGR IZQ I~X I~Z J-C J0Z JBSCW JCJTX JZLTJ K7- KDC KOV LAS LLZTM M4Y M7S MA- N2Q NB0 NPVJJ NQJWS NU0 O9- O93 O9J OAM P9O PF0 PHGZM PHGZT PQGLB PT4 PTHSS QOS R89 R9I ROL RPX RSV S16 S1Z S27 S3B SAP SCO SDH SHX SISQX SJYHP SNE SNPRN SNX SOHCF SOJ SPISZ SRMVM SSLCW STPWE SZN T13 TSG TSK TSV TUC U2A UG4 UOJIU UTJUX UZXMN VC2 VFIZW W23 W48 WK8 YLTOR Z45 ZMTXR ~A9 AAYZH AESKC JQ2 |
| ID | FETCH-LOGICAL-c272t-b22cc34d2eb7bc4a05f8b83f6c3f1e17616693b49c89feec4b6796f4f55d9df73 |
| IEDL.DBID | RSV |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001444973900001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 1614-5046 |
| IngestDate | Wed Oct 01 06:57:07 EDT 2025 Sat Nov 29 07:31:58 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 3 |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c272t-b22cc34d2eb7bc4a05f8b83f6c3f1e17616693b49c89feec4b6796f4f55d9df73 |
| Notes | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
| ORCID | 0000-0001-7256-9560 |
| OpenAccessLink | https://link.springer.com/content/pdf/10.1007/s11334-025-00596-3.pdf |
| PQID | 3255806865 |
| PQPubID | 2044145 |
| PageCount | 21 |
| ParticipantIDs | proquest_journals_3255806865 crossref_primary_10_1007_s11334_025_00596_3 |
| PublicationCentury | 2000 |
| PublicationDate | 2025-09-00 20250901 |
| PublicationDateYYYYMMDD | 2025-09-01 |
| PublicationDate_xml | – month: 09 year: 2025 text: 2025-09-00 |
| PublicationDecade | 2020 |
| PublicationPlace | Heidelberg |
| PublicationPlace_xml | – name: Heidelberg |
| PublicationTitle | Innovations in systems and software engineering |
| PublicationYear | 2025 |
| Publisher | Springer Nature B.V |
| Publisher_xml | – name: Springer Nature B.V |
| References | 596_CR16 C Dannen (596_CR14) 2017 596_CR18 596_CR17 596_CR19 JR Abrial (596_CR4) 2010; 12 M Leuschel (596_CR39) 2008; 10 596_CR20 596_CR22 596_CR25 596_CR24 596_CR49 596_CR48 A Bucchiarone (596_CR9) 2021 D Hansen (596_CR23) 2020; 22 JR Abrial (596_CR2) 1996 M Ozkaya (596_CR43) 2020; 58 596_CR50 S Krings (596_CR32) 2020; 188 596_CR52 596_CR10 596_CR54 596_CR53 596_CR11 596_CR55 596_CR13 596_CR38 596_CR37 D Schneider (596_CR51) 2018; 30 C Gomes (596_CR21) 2018; 51 596_CR41 596_CR40 596_CR42 596_CR45 Y Bertot (596_CR7) 2010 596_CR44 596_CR47 P Körner (596_CR33) 2020; 57 596_CR46 596_CR27 CH Cai (596_CR12) 2022; 34 596_CR26 596_CR29 596_CR28 I Dobrikov (596_CR15) 2016; 28 596_CR1 JR Abrial (596_CR3) 2010 L Bettini (596_CR8) 2016 596_CR5 C Baier (596_CR6) 2008 596_CR30 596_CR31 596_CR34 596_CR36 596_CR35 |
| References_xml | – ident: 596_CR45 doi: 10.1109/FormaliSE.2019.00013 – ident: 596_CR47 doi: 10.1109/ICECCS54210.2022.00017 – ident: 596_CR1 doi: 10.1007/978-3-319-05032-4_17 – volume: 58 year: 2020 ident: 596_CR43 publication-title: J Comput Lang doi: 10.1016/j.cola.2020.100963 – volume-title: The B-Book: assigning programs to meanings year: 1996 ident: 596_CR2 doi: 10.1017/CBO9780511624162 – volume: 57 start-page: 160 year: 2020 ident: 596_CR33 publication-title: Form Methods Syst Des – ident: 596_CR29 doi: 10.1007/978-3-031-63790-2_5 – ident: 596_CR22 doi: 10.1007/978-3-642-30729-4_3 – volume-title: Modeling in event-B: system and software engineering year: 2010 ident: 596_CR3 doi: 10.1017/CBO9781139195881 – volume: 34 start-page: 1 year: 2022 ident: 596_CR12 publication-title: Form Asp Comput doi: 10.1145/3536430 – ident: 596_CR46 doi: 10.1007/978-3-030-73758-0_5 – ident: 596_CR53 doi: 10.1007/978-3-540-71209-1_49 – ident: 596_CR25 doi: 10.1007/978-3-319-33600-8_10 – volume: 22 start-page: 315 year: 2020 ident: 596_CR23 publication-title: Softw Tools Technol Transf – volume: 51 start-page: 1 issue: 3 year: 2018 ident: 596_CR21 publication-title: ACM Comput Surv doi: 10.1145/3179993 – ident: 596_CR42 doi: 10.1007/978-3-540-78800-3_24 – ident: 596_CR18 doi: 10.1109/FOSE.2007.14 – volume: 10 start-page: 185 issue: 2 year: 2008 ident: 596_CR39 publication-title: Softw Tools Technol Transf – year: 2021 ident: 596_CR9 publication-title: Springer doi: 10.1007/978-3-030-73758-0 – ident: 596_CR19 – ident: 596_CR41 doi: 10.1007/978-3-662-43652-3_5 – ident: 596_CR13 doi: 10.1007/978-3-319-33600-8_11 – ident: 596_CR35 doi: 10.1002/9781119002727.ch2 – ident: 596_CR27 doi: 10.5220/0002925402790287 – ident: 596_CR36 – ident: 596_CR37 doi: 10.1007/978-3-030-76020-5_9 – ident: 596_CR10 doi: 10.1007/978-3-030-58298-2_8 – volume-title: Introducing Ethereum and solidity year: 2017 ident: 596_CR14 doi: 10.1007/978-1-4842-2535-6 – ident: 596_CR48 doi: 10.1007/978-3-319-98938-9_20 – volume-title: Implementing domain-specific languages with Xtext and Xtend year: 2016 ident: 596_CR8 – volume: 30 start-page: 545 year: 2018 ident: 596_CR51 publication-title: Form Asp Comput doi: 10.1007/s00165-018-0461-7 – ident: 596_CR28 doi: 10.1007/978-3-030-63461-2_19 – ident: 596_CR50 doi: 10.1007/978-3-319-19249-9_30 – ident: 596_CR55 doi: 10.1007/978-3-030-34968-4_25 – ident: 596_CR54 – ident: 596_CR16 doi: 10.1007/978-3-030-48077-6_8 – volume-title: Interactive theorem proving and program development: Coq’Art the calculus of inductive constructions year: 2010 ident: 596_CR7 – ident: 596_CR24 doi: 10.1007/978-3-319-91271-4_20 – ident: 596_CR17 doi: 10.1145/298595.298598 – ident: 596_CR30 doi: 10.1007/978-3-031-25803-9_5 – volume: 12 start-page: 447 issue: 6 year: 2010 ident: 596_CR4 publication-title: Softw Tools Technol Transf – ident: 596_CR49 – volume-title: Principles of model checking year: 2008 ident: 596_CR6 – volume: 188 start-page: 1 year: 2020 ident: 596_CR32 publication-title: Sci Comput Program doi: 10.1016/j.scico.2019.102378 – ident: 596_CR20 – ident: 596_CR11 doi: 10.1007/978-3-642-39698-4_5 – ident: 596_CR26 doi: 10.1145/3386321 – volume: 28 start-page: 295 issue: 2 year: 2016 ident: 596_CR15 publication-title: Form Asp Comput doi: 10.1007/s00165-015-0351-1 – ident: 596_CR34 doi: 10.1007/978-3-642-03466-4_2 – ident: 596_CR38 – ident: 596_CR40 doi: 10.1007/978-3-030-48077-6_27 – ident: 596_CR5 doi: 10.1007/978-3-031-63790-2_17 – ident: 596_CR44 doi: 10.1007/3-540-58179-0_69 – ident: 596_CR31 doi: 10.1145/3550356.3561561 – ident: 596_CR52 doi: 10.1145/2509578.2509586 |
| SSID | ssj0056563 |
| Score | 2.346144 |
| Snippet | Considering programs as data enables powerful meta-programming. One example is Lisp’s macro system, which gives rise to powerful transformations of programs... |
| SourceID | proquest crossref |
| SourceType | Aggregation Database Index Database |
| StartPage | 939 |
| SubjectTerms | Constraints Domain specific languages Formal specifications Java Libraries LISP (programming language) Programming languages Semantics Specification and description languages Syntax |
| Title | A case for data-oriented specifications: simpler implementation of B tools and DSLs |
| URI | https://www.proquest.com/docview/3255806865 |
| Volume | 21 |
| WOSCitedRecordID | wos001444973900001&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: PRVAVX databaseName: SpringerLINK Contemporary 1997-Present customDbUrl: eissn: 1614-5054 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0056563 issn: 1614-5046 databaseCode: RSV dateStart: 20050401 isFulltext: true titleUrlDefault: https://link.springer.com/search?facet-content-type=%22Journal%22 providerName: Springer Nature |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB5K8eDF-sRqlRy8abCbZLNZb_VRPEgRq9LbsskmUNBd6a7-fjPpFinowVNuIXx5zDeTmfkAzqRFYq8ZdUORU-FNCM0xkM-VU5FlWkmlg9hEMpmo2Sx97MDFnz_4l3Xk3ShBUXY1aMVQbO0ZSYZyBU_T19Wzi8QkZNN7e0Nj7_W1FTK_T7FuhdYf4WBZxr3_rWkbtloGSUbLLd-Bji13obdSZyDtZd2D6YgYb6KIZ6UE80BphS2NPcEkWF2JGULLYN0VqefYInhBwvDeFiOVpHLkmjRV9VaTvCzI7fSh3oeX8d3zzT1tJRSoYQlrqGbMGC4KZnWijciHsVNacScNd5GNEhlJmXItUqNSZ60RGuNKTrg4LtLCJfwAumVV2kMgSWwi4WyhZPi6S_M4LwyX3Ca59pzG9uF8BWn2seyUkf30REa8Mo9XFvDKeB8GK9Sz9tbUGff-jcKalfjoX5MdwyYLe4GpXwPoNotPewIb5quZ14vTcEy-Ad0Xs0A |
| linkProvider | Springer Nature |
| 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=A+case+for+data-oriented+specifications%3A+simpler+implementation+of+B+tools+and+DSLs&rft.jtitle=Innovations+in+systems+and+software+engineering&rft.au=K%C3%B6rner%2C+Philipp&rft.au=Mager%2C+Florian&rft.au=Ro%C3%9Fbach%2C+Jan&rft.date=2025-09-01&rft.pub=Springer+Nature+B.V&rft.issn=1614-5046&rft.eissn=1614-5054&rft.volume=21&rft.issue=3&rft.spage=939&rft.epage=959&rft_id=info:doi/10.1007%2Fs11334-025-00596-3&rft.externalDBID=NO_FULL_TEXT |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1614-5046&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1614-5046&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1614-5046&client=summon |