QUASAR : Supported Language
The current version of Quasar can analyze a large subset of the Ada language. This allows to cover most of the concurrency problems of application programs.
The restrictions define a sub part of Ada that is sufficient to code complex concurrent programs (see the examples section in the main page). Furthermore, these restrictions concern only the concurrent part of the program. Recall that Quasar analyses only concurrency and suppresses all parts of the program that do not influence concurrency : in the first step of Quasar all the part of the program which is not concerned with concurrency is sliced (i.e., removed from the analysis). Thus as long as concurrency is not concerned, full Ada language is accepted (and immediately sliced!). So, large application programs can be considered.
Current Allowed Features used in concurrency control
Not yet implemented Features used in concurrency control
(however they may be implemented if really needed, at the cost of development time)
Forbidden features in the concurrency control part of the program
(they correspond to not yet solved problems when generating Petri net patterns)
Constraints and restrictions in the concurrency control part of the program
Practical Hints when using Quasar for analyzing your programs
All task declarations, all protected object declaration, all global variable declaration must appear at the first block level : there should be no hierarchy among these elements.
If your program contains dynamic declarations somewhere (by means of "new" clauses and access types), you can nevertheless analyses the concurrency behavior of your program if you can replace these dynamic elements by declaring fixed size arrays of elements and using array indexes instead of pointers.
If feasible, build your example with a set of cyclic tasks.
Avoid forbidden and not yet implemented features, of course.
Forbidden and not yet implemented features may be sliced in the first step of Quasar. Thus you may have a resulting model which does not reflect your real problem. The sliced part of your program is displayed in shaded form. Use it to check your understanding of language constraints. This will allow you to concentrate your effort on rewriting only the compulsory part of your program.
Forbidden and not yet implemented features may also lead to situations where Quasar cannot proceed. Usually, these situations of rejection of your code are commented. However in the current stage of development, we cannot guarantee that this will always be the case and Quasar may stop without warning. If this happen, contact rousseau@cnam.fr for signaling this anomaly and for getting help for analyzing your program.
last update : 10/02/2004