Modeling structured programming with Strudel: A simulation runtime for programming education tools

dc.contributor.authorSantos, A. L.
dc.contributor.authorCaniço, A. B.
dc.date.accessioned2025-12-09T09:52:44Z
dc.date.embargo2026-11-28
dc.date.issued2025
dc.date.updated2025-11-29T10:36:56Z
dc.description.abstractStructured programming embraces fundamental concepts represented in most general-purpose languages: sequence, selection, repetition, assignment, procedures, and recursion. We present Strudel, an executable modeling language for structured programming designed with the needs of educational tools in mind. Instead of relying on generated source-level metadata (language-specific, as in debuggers) or program instrumentation (that transforms executables or ASTs), models of programs are retained at runtime. A model drives a simulation of program execution with direct access to its elements without abstracting details—which are useful for fine-grained error reporting and inspection. We materialized the approach in a meta-programming library where a stack-based execution of programs is simulated in an embeddable virtual machine. By programming against the virtual machine API and the meta-model, third parties can observe a wide range of execution events in detail, such as errors, reachability, state changes, loop iterations, call stack, or memory allocation, to synthesize information about program properties. We developed an educational platform for Java that translates code into Strudel models and uses Strudel’s virtual machine as the runtime environment. The platform is in production as courseware, standing as a proof of viability, and features inspection of program traces to assist experimentation and debugging (probes), white-box tests for verifying algorithmic properties, and generation of questions about code to assess comprehension.eng
dc.description.versioninfo:eu-repo/semantics/acceptedVersion
dc.identifier.citationSantos, A. L., & Caniço, A. B. (2025). Modeling structured programming with Strudel: A simulation runtime for programming education tools. Software and Systems Modeling. https://doi.org/10.1007/s10270-025-01337-7
dc.identifier.doi10.1007/s10270-025-01337-7
dc.identifier.issn1619-1366
dc.identifier.urihttp://hdl.handle.net/10071/35697
dc.language.isoeng
dc.peerreviewedyes
dc.publisherSpringer
dc.relationUIDB/04466/2025
dc.relationUIDP/04466/2025
dc.rightsembargoed access
dc.subjectProgramming educationeng
dc.subjectModelingeng
dc.subjectSimulationeng
dc.subjectMeta-programmingeng
dc.subject.fosDomínio/Área Científica::Ciências Naturais::Matemáticaspor
dc.subject.fosDomínio/Área Científica::Ciências Naturais::Ciências da Computação e da Informaçãopor
dc.titleModeling structured programming with Strudel: A simulation runtime for programming education toolseng
dc.typearticle
dc.volumeN/A
dspace.entity.typePublicationen
iscte.alternateIdentifiers.scopus2-s2.0-105023492643
iscte.alternateIdentifiers.wosWOS:WOS:001625288600001
iscte.identifier.cienciahttps://ciencia.iscte-iul.pt/id/ci-pub-113925
iscte.journalSoftware and Systems Modeling

Ficheiros