qute: A software analysis framework built around the QBE intermediate language.

[ language, library ] [ Propose Tags ] [ Report a vulnerability ]

This library provides formal semantics for the QBE intermediate language by providing modular monadic semantics implemented using an abstract monad. The package refers to this abstract monad as the Language.QBE.Simulator.State.Simulator monad. It provides several primitives that are used by the Language.QBE.Simulator to abstractly describe the semantics of QBE instructions. The Language.QBE.Simulator.State.Simulator can then be instantiated with concrete semantics. For example, the Language.QBE.Simulator.Default.State module provides an instantiation using a Control.Monad.State monad. This instantiation, and the Language.QBE.Simulator.State.Simulator itself, are parameterized over the representation of QBE instruction operand values.

To abstractly describe operations on values passed to QBE instructions, this library additionally provides an expression language abstraction in the Language.QBE.Simulator.Expression module. Further, an implementation of this expression language based on fixed-width integer values is available in the Language.QBE.Simulator.Default.Expression module.

A separate qute-symex package provides an implementation of the expression abstraction and the Language.QBE.Simulator.State.Simulator monad for formal reasoning about a software under test using symbolic execution. Similar dynamic software testing techniques can be implemented using this library. Additionally, there is some preliminary support for static analysis as well through the Language.QBE.Analysis.CFG module.

More information on the underlying idea and vision behind Qute is available in a separate paper.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0
Dependencies array (>=0.5.4.0 && <0.6), base (>=4.16.4.0 && <4.23), containers (>=0.6.5.1 && <0.9), deepseq (>=1.4.6.1 && <1.6), exceptions (>=0.10.4 && <0.11), mtl (>=2.2.2 && <2.4), parsec (>=3.1.15 && <3.19), qute-syntax (>=0.1 && <0.2), template-haskell (>=2.18.0.0 && <2.25) [details]
License GPL-3.0-only AND MIT AND BSD-3-Clause
Author Sören Tempel
Maintainer soeren+hackage@soeren-tempel.net
Uploaded by nmeum at 2026-08-25T11:04:33Z
Category Language
Home page https://git.8pit.net/qute
Bug tracker https://github.com/nmeum/qute/issues
Source repo head: git clone https://git.8pit.net/qute.git
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 3 total (3 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2026-08-25 [all 1 reports]