dc.contributor.author | Koutavas, Vasileios | |
dc.contributor.author | Lin Hou, Yu | |
dc.contributor.editor | Madeira, Alexandre
and Knapp, Alexander | en |
dc.date.accessioned | 2025-03-12T14:27:43Z | |
dc.date.available | 2025-03-12T14:27:43Z | |
dc.date.created | 4-8 November 2024 | en |
dc.date.issued | 2024 | |
dc.date.submitted | 2024 | en |
dc.identifier.citation | Vasileios Koutavas, Yu-Yang Lin, Nikos Tzevelekos, An Operational Semantics for Yul, Lecture Notes in Computer Science, Software Engineering and Formal Methods. SEFM 2024, Aveiro, Portugal, 4-8 November 2024, Madeira, Alexandreand Knapp, Alexander, 15280, Springer Nature Switzerland, 2024, 328 - 346 | en |
dc.identifier.other | Y | |
dc.description.abstract | We present a big-step and small-step operational semantics for
Yul — the intermediate language used by the Solidity compiler to produce
EVM bytecode — in a mathematical notation that is congruous with the
literature of programming languages, lends itself to language proofs, and
can serve as a precise, widely accessible specification for the language.
Our two semantics stay faithful to the original, informal specification of
the language but also clarify under-specified cases such as void function
calls. Our presentation allows us to prove the equivalence between the two
semantics. We also implement the small-step semantics in an interpreter
for Yul which avails of optimisations that are provably correct. We have
tested the interpreter using tests from the Solidity compiler and our own.
We envisage that this work will enable the development of verification
and symbolic execution technology directly in Yul, contributing to the
Ethereum security ecosystem, as well as aid the development of a provably
sound future type system. | en |
dc.format.extent | 328 | en |
dc.format.extent | 346 | en |
dc.language.iso | en | en |
dc.publisher | Springer Nature Switzerland | en |
dc.relation.ispartofseries | 15280; | |
dc.rights | Y | en |
dc.subject | Yul, Ethereum, Operational semantics, Programming lan- guages, Formal methods | en |
dc.title | An Operational Semantics for Yul | en |
dc.title.alternative | Lecture Notes in Computer Science | en |
dc.title.alternative | Software Engineering and Formal Methods. SEFM 2024 | en |
dc.type | Conference Paper | en |
dc.type.supercollection | scholarly_publications | en |
dc.type.supercollection | refereed_publications | en |
dc.identifier.peoplefinderurl | http://people.tcd.ie/vkoutav | |
dc.identifier.peoplefinderurl | http://people.tcd.ie/linhouy | |
dc.identifier.rssinternalid | 276010 | |
dc.identifier.doi | https://doi.org/10.1007/978-3-031-77382-2_19 | |
dc.rights.ecaccessrights | restrictedAccess | |
dc.date.ecembargoEndDate | 2025-11-26 | |
dc.subject.TCDTag | Blockchain | en |
dc.subject.TCDTag | Computer Programming Languages | en |
dc.subject.TCDTag | Computer Science | en |
dc.subject.TCDTag | Software Engineering | en |
dc.identifier.orcid_id | 0000-0002-3970-2486 | |
dc.status.accessible | N | en |
dc.rights.restrictedAccess | Y | |
dc.date.restrictedAccessEndDate | 2025-11-26 | |
dc.contributor.sponsor | Other | en |
dc.contributor.sponsorGrantNumber | FY23-1127 | en |
dc.contributor.sponsor | Science Foundation Ireland (SFI for RF) | en |
dc.contributor.sponsorGrantNumber | 13/RC/2094_2 | en |
dc.contributor.sponsor | Other | en |
dc.identifier.uri | https://hdl.handle.net/2262/111298 | |