{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

BGY_FTJP2005 - Synthesizing parametric specications of...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Synthesizing parametric specifications of dynamic memory utilization in object-oriented programs ? ıctor Braberman 1 , Diego Garbervetsky 1 , and Sergio Yovine 2 1 School of Computer Sciences, Universidad de Buenos Aires, Buenos Aires, Argentina { vbraber,diegog } @dc.uba.ar 2 Verimag, Grenoble, France [email protected] Abstract. We present a static analysis approach for computing a pa- rametric upper-bound of the amount of memory dynamically allocated by (Java-like) imperative object-oriented programs. We propose a gene- ral procedure for synthesizing non-linear formulas (actually polynomials) which conservatively estimate memory consumption in terms of method’s parameters. We have implemented the procedure and evaluated it on se- veral benchmarks. Experimental results produced exact estimations for most test cases, and quite precise approximations for many of the others. We also apply our technique to compute usage in the context of scoped memory and discuss some open issues. 1 Introduction The embedded and real-time software industry is leading towards the use of object-oriented programming languages such as Java. This trend brings in new research challenges. A particular mechanism that is quite problematic in real-time embedded contexts is automatic dynamic memory management. One problem is that exe- cution and response times are extremely difficult to predict in presence of a garbage collector. There has been significant research work to come up with a solution to this issue, either by building garbage collectors with real-time perfor- mance, e.g. [ 24 , 25 , 34 , 36 , 1 ], or by using a scope-based programming paradigm, e.g. [ 21 , 3 , 20 , 7 ]. Another problem is that evaluating quantitative memory re- quirements becomes inherently hard. Indeed, finding a finite upper bound on memory consumption is undecidable [ 22 ]. This is a major drawback since em- bedded systems have (in most cases) stringent memory constraints or are critical applications that cannot run out of memory. ? Partially supported by projects DYNAMO (Min. Research, France), MADEJA (Rhˆ one-Alpes, France), ANCyT grant PICT 11738, UBACYT 0X20, and IBM Eclipse Innovation Grants.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
In this paper we propose a novel technique for computing a parametric upper- bound of the amount of memory dynamically allocated by Java-like imperative object-oriented programs. As the major contribution, we present a technique to analyze dynamic alloca- tions done by a method. Given a method m with parameters p 1 , . . . , p k we show an algorithm that computes a parametric non-linear expression over p 1 , . . . , p k which over-approximates the amount of memory allocated during its execution. Roughly speaking, for every allocation statement we find an invariant that describes the relation between programs variables. Then, the amount of consu- med memory is based on the number of integer points that satisfy the invariant.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}