• https://doi.org/10.1145/3011286.3011294Copy DOI Icon

Resource Contracts for Java

Show More
  • Abstract
  • Literature Map
  • References
  • Similar Papers
Abstract

Writing specifications about program behavior is hard. Writing specifications about non-functional effects such as resource usage is often even harder. If manually instrumenting the program is not an option, programmers have to rely on comment-based specification languages like JML to introduce ghost variables and other fairly abstract concepts that are complicated and hard to maintain. Even worse, most static analysis tools nowadays operate on bit- or bytecode and cannot process those type of specifications To address this problem, we propose a library-based specification formalism for time complexity in Java. The approach is inspired by the success of assertion libraries like CodeContracts and Guava. Our library provides a set of methods and enumerated types that allow the user to write complexity assertions in a 'human' readable form and without instrumenting the code. On the backend, we provide a bytecode rewriting tool that uses these assertions to automatically instrument the program with counter variables. The transformed program can then be checked via testing or off-the-shelf automated static analyzers

Similar Papers
  • Conference Article
  • Citations2

Static Analysis Warnings and Automatic Fixing: A Replication for C# Projects

  • Mar 01, 2022
  • Martin Odermatt +2
  • Conference Article
  • Citations16

Boosting static analysis accuracy with instrumented test executions

  • Aug 18, 2021
  • Tianyi Chen +2
  • Conference Article
  • Citations21

Explaining Static Analysis - A Perspective

  • Nov 01, 2019
  • Marcus Nachtigall +2
  • Conference Article
  • Citations1

A Framework for Verification and Debugging of Resource Usage Properties: Resource Usage Verification

  • Jan 01, 2010
  • DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)
  • Pedro López-García +2
  • Conference Article
  • Citations2

DELTA: Validate GPU Memory Profiling with Microbenchmarks

  • Sep 28, 2020
  • Xianwei Zhang +1
  • Book Chapter
  • Citations4

A General Framework for Static Cost Analysis of Parallel Logic Programs

  • Jan 01, 2020
  • Maximiliano Klemen +4
  • Conference Article
  • Citations3

Practical experience and evaluation of continuous code static analysis with C++Test

  • Jul 15, 2013
  • Vincenzo Ciriello +2
  • Research Article
  • Citations13

On the effectiveness of phase based regression models to trade power and performance using dynamic processor adaptation

  • Mar 04, 2008
  • Journal of Systems Architecture
  • Subhasis Banerjee +2
  • Conference Article
  • Citations3

Effects of Automated Static Analysis Tools: A Multidimensional View on Quality Evolution

  • May 01, 2019
  • Alexander Trautsch
  • Conference Article
  • Citations45

MPro: Combining Static and Symbolic Analysis for Scalable Testing of Smart Contract

  • Oct 01, 2019
  • William Zhang +4
  • Conference Article
  • Citations1

Static Vulnerability Analysis for Secure Mobile Platforms

  • Feb 05, 2017
  • Dhinakar Kalyanasundaram +1
  • Conference Article
  • Citations12

Path selection based on static timing analysis considering input necessary assignments

  • Apr 01, 2013
  • Bo Yao +2
  • Book Chapter

Runtime Analysis and Instrumentation for Securing Software

  • Jan 01, 2010
  • R Sekar
  • Research Article
  • Citations12

Some trade-offs in reducing the overhead of assertion run-time checks via static analysis

  • Dec 28, 2017
  • Science of Computer Programming
  • Nataliia Stulova +2
  • Research Article
  • Citations91

Hardware-Assisted Run-Time Monitoring for Secure Program Execution on Embedded Processors

  • Dec 01, 2006
  • IEEE Transactions on Very Large Scale Integration (VLSI) Systems
  • Divya Arora +3
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.