Kleene Algebra and Bytecode Verification

Abstract

Most standard approaches to the static analysis of programs, such as the popular worklist method, are first-order methods that inductively annotate program points with abstract values. In [6] we introduced a second-order approach based on Kleene algebra. In this approach, the primary objects of interest are not the abstract data values, but the transfer functions that manipulate them. These elements form a left-handed Kleene algebra. The data flow labeling is not achieved by inductively labeling the program with abstract values, but rather by computing the star (Kleene closure) of a matrix of transfer functions. In this paper we show how this general framework applies to the problem of Java bytecode verification. We show how to specify transfer functions arising in Java bytecode verification in such a way that the Kleene algebra operations (join, composition, star) can be computed efficiently. We also give a hybrid dataflow analysis algorithm that computes the closure of a matrix on a cutset of the control flow graph, thereby avoiding the recalculation of dataflow information when there are cycles in the graph. This method could potentially improve the performance over the standard worklist algorithm when a small cutset can be found.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Apr 27, 2016
Accession Number
AD1000313

Entities

People

  • Dexter Kozen
  • Lucja Kot

Organizations

  • Cornell University

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Algorithms
  • Computations
  • Computer Science
  • Computers
  • Hierarchies
  • Instructions
  • Monotone Functions
  • New York
  • Object Code
  • Sequences
  • Specifications
  • Standards
  • Theoretical Computer Science
  • Transfer Functions
  • Verification

Fields of Study

  • Computer science
  • Engineering

Readers

  • Cybersecurity.
  • Graph Algorithms and Convex Optimization.
  • Surface Engineering/Surface Coating Technology.