On Transforming Functions Accessing Global Variables into Logically Constrained Term Rewriting Systems

02/22/2019
by   Yoshiaki Kanazawa, et al.
0

In this paper, we show a new approach to transformations of an imperative program with function calls and global variables into a logically constrained term rewriting system. The resulting system represents transitions of the whole execution environment with a call stack. More precisely, we prepare a function symbol for the whole environment, which stores values for global variables and a call stack as its arguments. For a function call, we prepare rewrite rules to push the frame to the stack and to pop it after the execution. Any running frame is located at the top of the stack, and statements accessing global variables are represented by rewrite rules for the environment symbol. We show a precise transformation based on the approach and prove its correctness.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/26/2020

IdSan: An identity-based memory sanitizer for fuzzing binaries

Most memory sanitizers work by instrumenting the program at compile time...
research
10/31/2019

Existence of Stack Overflow Vulnerabilities in Well-known Open Source Projects

A stack overflow occurs when a program or process tries to store more da...
research
01/27/2020

Operationally-based Program Equivalence Proofs using LCTRSs

We propose an operationally-based deductive proof method for program equ...
research
06/25/2021

Complexity of Deciding Syntactic Equivalence up to Renaming for Term Rewriting Systems (Extended Version)

Inspired by questions from program transformations, eight notions of iso...
research
11/30/2017

A tool for visualizing the execution of programs and stack traces especially suited for novice programmers

Software engineering education and training have obstacles caused by a l...
research
02/19/2021

Tail Modulo Cons

OCaml function calls consume space on the system stack. Operating system...
research
09/19/2019

Supporting On-Stack Replacement in Unstructured Languages by Loop Reconstruction and Extraction

On-stack replacement (OSR) is a common technique employed by dynamic com...

Please sign up or login with your details

Forgot password? Click here to reset