Print Email Facebook Twitter Comparing Static Semantics Specifications for the IceDust DSL: A Case Study of Statix Title Comparing Static Semantics Specifications for the IceDust DSL: A Case Study of Statix Author Tilro, Jesse (TU Delft Electrical Engineering, Mathematics and Computer Science) Contributor Groenewegen, D.M. (mentor) Ahrens, B.P. (graduation committee) Spaan, M.T.J. (graduation committee) Degree granting institution Delft University of Technology Corporate name Delft University of Technology Programme Computer Science Date 2023-09-07 Abstract Reusable tools for engineering software languages can bridge the gap between formal specification and implementation, lowering the bar for engineers to design and implement programming languages. Among such tools belong NaBL2 and its successor Statix, which are meta-languages for declaratively specifying the static semantics of programming languages and generating typecheckers accordingly.Although Statix intends to cover the domain of static semantics specification to a greater extent than NaBL2, less is known about how the meta-languages compare in terms of their practical usability.In this thesis, we perform a case study in which we apply Statix to define the semantics of IceDust, an incremental computing DSL for modeling data with relations, and compare it to a prior NaBL2 specification. We compare the novel and prior specification in order to determine how the meta-languages, when applied to the case of IceDust, compare in terms of high-level characteristics: expressiveness, readability, implementation effort and runtime performance. We perform four evaluations to this end: a qualitative in-depth comparison of the specifications, a measurement of specification sizes, an evaluation of correctness and a runtime performance benchmark of the resulting type checkers.Our findings suggest that although Statix has a larger coverage of possible language definitions, in the case of IceDust it is a less expressive formalism for defining the static semantics and generates a slightly less performant type checker when compared to NaBL2. We find areas of interest for future work aiming to improve the practical usability of Statix, namely the definition of type compatibility relations, the way data in the scope graph are stored and retrieved and the integration with the compiler back-end. Subject SpoofaxNaBL2StatixStatic semanticsType checkingLanguage workbenchScope graphIceDustDSLDomain Specific Language To reference this document use: http://resolver.tudelft.nl/uuid:9a4875c0-6af7-49c4-b050-6c855b40857c Part of collection Student theses Document type master thesis Rights © 2023 Jesse Tilro Files PDF master_thesis_jesse_tilro.pdf 1004.86 KB Close viewer /islandora/object/uuid:9a4875c0-6af7-49c4-b050-6c855b40857c/datastream/OBJ/view