A Critical Analysis of the Design Features Supported by the Systems with ADA

certain simplifications in the programming language Ada are suggest~d~ The simplifications include the removal of derived types and minimization of intertask communication in multicomputer like environments to simflifJ the language design. Suggestions are a.lso made to improve the exfressiveness and capabilities of Ada bJ introducing subprogram tJFes, association of implicit queues with entry paints of a task, redefinition of the assignment operator and a mechanism for descheduling tasks. These could lead to improve run-time e.£ficiency, eiception handling mechanism an to achieve simplicity in the language design.

E J Dijkstra vrote about this software crisis [SJ 11 As long as there were no machines, programming was no problem at all; when we had a -few weak computers, programming became a mild problem, and now that we have gigantic computers, programming has become an egually giga..ntic problem.
In this sense the electro~ic industry has not solved a single problem, i t has only created them, it has created tlle problem of using its products 11 .i. c type S7RING is ±or the name.
C Naae can be 24 characters long. SHOR7STBING = E2Cked arrgy [1~-8]  The aim of this chapter is to identify and remove those abstractions in Ada whose functionality can be realized using other built-iJ:l abstractions in the · language,. i~is vill simplify the language design without any significant loss in its expressiveness and portabilitJ. The discussio~ is limi£ed to tvo aspects of Ada.
Namely, (1) Derived TyJ?es, Thus it is hardly justified to introduce derived tyFE for this sort of checking.

CHANGE OF REPRESENTATION
Ada provides a facility for specifying the hardware implementation of a type through representation clauses.
At most one representation clause is allowed for a given type.
To il1ustrate how to achieve the change of ConsidEr the f olloving package specifications: ..Erivate The above specification can be used to draM the following tvo conclusions (i) it, between two synchronization points of a task, a task reads a shared variable vhose type is of the scalar or acc.ess type~ then the variable is not updated by any other task at any time between these t110 points.
'i.i) If, between two s1nchronization points of a task, a task updates a shared variable whose type is scalar or access, then the variable is neither read nor updated bj any other task between these two points. .   When a task calls entry E, it vil1 be queued as shown, or when the called task executes the accept statement for entr1 E, then the first task (in this case, Taskl) will be taken out from the gueue. so basically this gueue can be accessed by aore than one task at a given time, . The underlying system for Ada must ensure the indivisible access to this queue by each task. ( 1 ) ..If the associated data goeue is empty then do nothing; otJierwise, copy the first data from the associated data illtO the local data area 'Q' associated with the task B O.F .f ER, .
Add ":=" as a de.f inable binary operator and make the operator 11   to simpler and more efficient programs.

B~ASONS 70 PROVIDE EXCBPTICNS
The main reasons, as specified .by Goodenough [ 9 ], to provide exception handling £acilities in a given lan9uage are (1) To permit dealing vith an operation's imfending failure ie, . range fail.ores and domain failures, .
(2) To permit an invoker to moni~or an operatiOJl.
To illuscrate what ve mean by monitoring an operation, consider a recursive subprogram for searching for an item through a data st:ructure. say, a binary tree, .
Each time an item is :found, an exception is raised identi.fying t.he item,. In order to provide such an exception mechanism in Ada, the language shoul.d be able to (1) associate handlers with invocation of operators..
(3) realize various control. flows during the execution of exceptions.
handling as it exists We will also cover the exception in current: Ada ( 19] and try to identify its limitation and suggest some improve.ment.s .• (1) Associating a handler with a wrong activation point.
(2) Associatin9 a handler wit.h a wrong exception. This is possible vhen an operation is al.lowed to raise more than one exception..  One may be led to believe that this will introduce coll.Siderable complexity in the language design but this is not so, Ada, in its present form, has a good deal of coaplerit_y a1ready bui1t into its generic mechanism to provide a static version of subprogram values~ Thus it stands to reason that such a zacility can he introduced without making the design of the language any more complex.
To attack the problem meaningf u11¥, we will be combining present exception handling mechanism with the new technique to provide all three types of control £1ovs in exception handling , .
Ho~e ver, default exception handling still remains an issue to he resolved .. CONCLUSION In this thesis, the foiloving three questions were raised (1) ihy is a language as complex as Ada desirable £or pro gr amlli.ng1 (2) Hov can the design of Ada be simplified without compromising its power?
(3) How can the capabiiities and expressive fOwer of Ada be improved without affecting the complexity of its design significantly, .
We answered these ques~ions in sequence by (1) ·showing the superiorit1 of the abstract mechanisils in Ada over PASCAL .• The author would be wrong to claim that these are the only prob1ems vith Ada and t.hese are the only solutions. The implication of the study is that there is lot of room for improvements in Ada and it can be achieved without changing the present Ada's design significantly.
The effect of the assignment is to make the assigned·to variable refer to the subprogram value of the right operand, but with parameter names and default values as given for the declaration of the left operand. This same replacement of. 8. .Calling a subprogram object that hu 1n .algned value proceeds a doea a call In current AdL Calling a 1Ubprogram object without a defined value raiees an exception (UNDEFINED_SUBPROGRAM). Aa In current Ada. names of IUbprogram objecta may be CMl'lotlded and resolved by contaxt.