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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Innovations in systems and software engineering Ročník 21; číslo 3; s. 939 - 959
Hlavní autoři: Körner, Philipp, Mager, Florian, Roßbach, Jan
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