Small step vs big step semantics for static analysis?

To be an honest question poster I do not yet fully grasp the difference between small step and big step semantics. There was a good discussion here My question is if I were to do static analysis on a file to determine if it is malware, what would be better to use: small step or … Read more

Why structural rules define the “smallest relation” satisfying the rules?

I’m following a university course based on these slides, and I have a question about structural operational semantics. As you can see at page 7 (4-th slide), a structural rule is interpreted logically as: ∀(antecedent ∧ side-condition ⊃ consequent). Then it says that “The structural rules define inductively a relation, namely: the smallest relation satisfying … Read more

CEK machine vs SECD machine

What are the differences between the CEK machine and the modern variant of the SECD machine (which combines stack and dump) from the point of view of performance, memory efficiency, and other factors? Are there any papers that explicitly compare the two? Answer AttributionSource : Link , Question Author : user76284 , Answer Author : … Read more

How is a Transition System in Operational Semantics defined?

I’m describing the semantics of a new optimization for Java using Operational Semantics but I’m not sure how to define the transition system. I found this link : where in slide 20 the transition system is defined but I don’t get it. Answer Operational semantics utilizes the tools of logic, so as a prerequisite we … Read more

Software code generation from the (operational) semantics – reference request for automatic programming

Are there research trends that try to research code generation directly from the (operational or some other kind of) semantics? One can imagine cognitive architecture that discovers and reasons about the tasks that the software should do and constructs the operational semantics of some program. And later there should be only one additional small system … Read more

Rule induction principles in Harper’s PFPL

I have a few small questions about section 2.4 (“Rule induction”) in Practical Foundations for Programming Languages (p. 19). (1) In the rule induction principles for nat, To show P(a nat) whenever a nat, it is enough to show: (1) P(zero nat). (2) for every a, if (a nat and) P(a nat), then P(succ(a) nat). … Read more

defining the operational semantics of a concurrent language

As big-step operational semantics is about evaluating an expression to a final value, can we state that for defining a concurrent language one needs small-step semantics, as concurrent programs need not result in a value? Answer Coinductive Big-Step Semantics for Concurrency by Tarmo Uustalu writes: Second, contrary to what is so often stated, concurrency is … Read more

How to write operational semantics rule for havoc x?

If I want to extend a new language by adding a new command havoc x, which updates the variable x with a non-deterministic value, how to write operational semantics rule for havoc x? I’m confused about generate a non-deterministic value. If I write like this: n=[e]intexpσ(havoc x,σ)→(x:=x+n,σ) is it make sense? Answer I’m going to assume … Read more