Principles for Value Annotation Languages

Tools for code-level program analysis need formats to express various properties, like relevant properties of the environment where the analysed code will execute, and the analysis results. Different WCET analysis tools typically use tool-specific annotation languages for this purpose. These languages are often geared towards expressing properties that the particular tool can handle rather than being general, and mostly their semantics is only specified informally. This makes it harder for tools to communicate, as well as for users to provide relevant information to them. Here, we propose a small but general assertion language for value constraints including IPET flow facts, which is an important class of annotations for WCET analysis tools. We show how to express interesting properties in this language, we propose some syntactic conveniences, and we give the language a formal semantics. The language could be used directly as a tool-independent annotation language, or as a meta-language to give exact semantics to existing value annotation and flow fact formats.

[1]  Pascal Sainrat,et al.  OTAWA: An Open Toolbox for Adaptive WCET Analysis , 2010, SEUS.

[2]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[3]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[4]  Jens Knoop,et al.  r-TuBound: Loop Bounds for WCET Analysis (Tool Paper) , 2012, LPAR.

[5]  Armelle Bonenfant,et al.  FFX: a portable WCET annotation language , 2012, RTNS '12.

[6]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[7]  Chang Yun Park,et al.  Predicting program execution times by analyzing static and dynamic program paths , 1993, Real-Time Systems.

[8]  Albrecht Kadlec,et al.  Beyond loop bounds: comparing annotation languages for worst-case execution time analysis , 2011, Software & Systems Modeling.

[9]  Martin Gogolla,et al.  On Formalizing the UML Object Constraint Language OCL , 1998, ER.

[10]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[11]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[12]  Henrik Theiling,et al.  Convenient User Annotations for a WCET Tool , 2003, WCET.

[13]  Reinhold Heckmann,et al.  Static Memory and Timing Analysis of Embedded Systems Code , 2006 .

[14]  Raimund Kirner The WCET Analysis Tool CalcWcet167 , 2012, ISoLA.

[15]  Pascal Sainrat,et al.  Static Loop Bound Analysis of C Programs Based on Flow Analysis and Abstract Interpretation , 2008, 2008 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[16]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[17]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[18]  N. Holsti,et al.  Status of the Bound-T WCET Tool , 2002 .