DeepAI AI Chat
Log In Sign Up

A Term-Rewriting Semantics for Imperative Style Programming

by   David Plaisted, et al.
Johannes Kepler University Linz
University of North Carolina at Chapel Hill

Term rewriting systems have a simple syntax and semantics and facilitate proofs of correctness. However, they are not as popular in industry or academia as imperative languages. We define a term rewriting based abstract programming language with an imperative style and a precise semantics allowing programs to be translatable into efficient imperative languages, to obtain proofs of correctness together with efficient execution. This language is designed to facilitate translations into correct programs in imperative languages with assignment statements, iteration, recursion, arrays, pointers, and side effects. It can also be used in place of a pseudo-programming language to specify algorithms.


page 1

page 2

page 3

page 4


A Formalization of Operads in Coq

What provides the highest level of assurance for correctness of executio...

Combining predicate transformer semantics for effects: a case study in parsing regular languages

This paper describes how to verify a parser for regular expressions in a...

Automating Abstract Interpretation of Abstract Machines

Static program analysis is a valuable tool for any programming language ...

Getting to the Point. Index Sets and Parallelism-Preserving Autodiff for Pointful Array Programming

We present a novel programming language design that attempts to combine ...

Verifying term graph optimizations using Isabelle/HOL

Our objective is to formally verify the correctness of the hundreds of e...

A Proof Assistant Based Formalisation of Core Erlang

Our research is part of a wider project that aims to investigate and rea...

A Type and Scope Safe Universe of Syntaxes with Binding: Their Semantics and Proofs

Almost every programming language's syntax includes a notion of binder a...