Validating low-level instructions for fixnums using BDDs

  • Authors:
  • Shingo Yuasa;Masahiro Yasugi

  • Affiliations:
  • Kyoto University, Kyoto, Japan;Kyoto University, Kyoto, Japan

  • Venue:
  • Proceedings of the 2010 international conference on Lisp
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

A fixnum is a data object used in Lisp and other programming languages for representing an integer within some fixed range; fixnum consisting of tag bits and an integer value is represented in a single machine word. Programming language systems must use or generate instruction sequences such as "check if two objects are both fixnums" and "check if the sum of two fixnums does not overflow." To obtain efficient code, tricky bit operations with low-level instructions are used. To the best of our knowledge, mechanical verification frameworks for verifying these instruction sequences have not been investigated thus far. We implemented a library for validating low-level instructions against their intended meaning in Common Lisp. We consider each bit in a machine word as a Boolean value and verify the constraints that correspond to the intended meaning using binary decision diagrams.