Elaboration Order Issues in Ada 9 X Mats Webe r Swiss Federal Institute of Technolog y Software Engineering Laboratory 1015 Lausanne Switzerlan d e-mail : weber@lglsun .epfl.ch In Ada 80, the rules governing the order of elaboration of library units left everything up to th e language translator. This would be fine if it were feasible, but it isn't : during the review of th e Ada 80 document, it was discovered that deciding whether or not an Ada program wa s elaboratable led to solving undecidable problems . As a consequence, the approach adopted in Ada 83 left nearly all the work to the programme r (introducing pragma Elaborate) . It will be shown here that an approach somewhere betwee n Ada 80 and Ada 83 is feasible at reasonable cost, easing the maintenance and development o f large programs in a substantial way . L Why pragma Elaborate Messes Up Program s The following example shows why the use of pragma Elaborate is "contagious", that is, if it i s needed for one library unit, then it must be added to many others in order to achieve th e desired effect . This is obviously a
/lp/association-for-computing-machinery/elaboration-order-issues-in-ada-9x-YCTYvxoyqS