# ANNA A Language for Annotating Ada Programs: Reference by David C. Luckham, Friedrich W. von Henke, Bernd

By David C. Luckham, Friedrich W. von Henke, Bernd Krieg-Brueckner, Olaf Owe

This reference handbook of ANNA is one other quantity addressed to the ADA neighborhood. ANNA is a language extension of ADA to incorporate amenities for officially specifying the meant habit of ADA courses. it truly is designed to satisfy a perceived have to increase ADA with distinct machine-processable annotations in order that good tested formal equipment of specification and documentation will be utilized to ADA courses. the present ANNA layout contains annotations of all ADA constructs other than tasking. comparable extensions for formal specification should be made to different Algol-like languages resembling Pascal, PL/1, Concurrent Pascal, and Modula; basically, those extensions will be subsets of ANNA. The layout of ANNA used to be undertaken from the start with 4 vital issues: 1. developing annotations might be effortless for the ADA programmer and will count up to attainable on notation and ideas of ADA. 2. ANNA should still own language positive factors which are primary within the specification and documentation of courses. three. ANNA should still supply a framework in which a few of the verified theories of officially specifying courses might be utilized to ADA. four. Annotations will be both well matched for various attainable functions in the course of the existence cycle of a software. Such functions comprise not just checking out, debugging and formal verification of a complete application, but additionally specification of software components through the past phases of necessities research and software layout.

**Read or Download ANNA A Language for Annotating Ada Programs: Reference Manual (Lecture Notes in Computer Science) PDF**

**Best compilers books**

**A Tight, Practical Integration of Relations and Functions (Lecture Notes in Computer Science)**

As in different fields, in laptop technology sure gadgets of research might be synthesized from diversified simple parts, in several methods, and with varied ensuing stabilities. In subfields resembling synthetic intelligence, computational good judgment, and programming languages a number of relational and practical elements and strategies were attempted for the synthesis of declarative courses.

**Formalization of Natural Languages, 1st Edition**

The try and simulate dialogues in typical Language via a computer calls for large analyses of average Language's expression and content material phenomena. rigorously deducted typical legislation has to be extracted. A department of all present average Languages into service structures of a) agglutinated and b) remoted mor phological buildings seems to be of significant importance.

**Compiler Construction: Principles and Practice**

Compiler development: rules and perform incorporates a accomplished, hands-on case examine undertaking for developing an exact, operating compiler. this example research contains a comparatively uncomplicated programming language that might reveal readers to the elemental recommendations used (and power pitfalls) in developing higher compilers.

MATLAB Mathematical research is a reference booklet that offers the thoughts of mathematical research via examples and routines resolved with MATLAB software program. the aim is to provide you examples of the mathematical research features provided by means of MATLAB for you to use them on your day-by-day paintings whatever the software.

- MATLAB Symbolic Algebra and Calculus Tools
- Structured Object-Oriented Formal Language and Method: 5th International Workshop, SOFL+MSVL 2015, Paris, France, November 6, 2015. Revised Selected Papers (Lecture Notes in Computer Science)
- Perspectives on Web Services: Applying SOAP, WSDL and UDDI to Real-World Projects
- The Definitive ANTLR 4 Reference
- Recent Advances in Formal Languages and Applications, 1st Edition
- Agile Swift: Swift Programming Using Agile Tools and Techniques

**Additional resources for ANNA A Language for Annotating Ada Programs: Reference Manual (Lecture Notes in Computer Science)**

**Sample text**

11 QUANTIFIEDEXPRESSIONS EXPRESSIONSIN ANNOTATIONS 49 onditional expressions: 0 t h e n Y / X * X = Y else Y * X = 0 end if ditional expression is defined, even though xpression alter then is not always defined El(J) = if I = J then E else A ( J ) e n d i f ditional expression impl:es the two formulas: -* A l l -~ All => E l ( J ) => El(J) = E = a(~) Ada if statements, conditional expressions must contain an else part. ny value. xpressions have been introduced into Anna to permit a programmer to construct defined om partially defined expressions.

For example, f o r a l l X : T => P ( X . 4) as f o r a l l X : T => P(T'COLLECTTON(X)); since X i s i n T'COLLECTION is true if and only if T'COLLECTION(X) is defined, the quantified expression above will be true exactly if P(V) is true for the values V of all objects in the collection. DAY = X; -- The value of these expressions depends on the values of objects in the collection. 1 Transformation of Quantified Expressions into the Anna Kernel For the purpose of checking, an Anna quantified expression is translated into a call to a virtual Ada function that performs the check for all elements of a type indicated in the domain of the quantifier.

Note that the notation using the reserved word others is not permitted in array states. Array states may be used in Anna as names, in particular in indexed components and slices. An indexed component, A(K), where A is an array state, denotes the value of the Kth component of A. A slice, A( L .. R), where A is an array state of a one-dimensional array, denotes a value. Examples of array states: MY_SCHEDULE[TUESDAY => TRUE] -- Denotes a value of MY_SCHEDULE after the TUESDAY c o m p o n e n t is set to TRUE.