Propposed extension of the USE clause - Record 84-08-27 AI-00274/00 1 !standard 08.04 (01) 84-08-27 AI-00274/00 !class study 84-08-27 (provisional classification) !status received 84-08-27 !topic Propposed extension of the USE clause - Record component visibility !summary 84-08-27 !question 84-08-27 !recommendation 84-08-27 !wording 84-08-27 !discussion 84-08-27 !appendix 84-08-27 ****************************************************************************** !section 08.04 (01) A W Thompson/GA Technologies 84-08- 83-00409 !version 1983 !topic Propposed extension of the USE clause - Record component visibility I strongly urge that an extension to the Ada USE clause be added to the Ada standard definition. The extension I propose is to allow a statement that is analagous to the UCSD Pascal WITH statement, so that one may make record components directly visible in the same manner as one would currently use the USE clause to make package declarations directly visible. It is rather painful to have to write out a long record name (or even a hierarchy of record names) in order to access a component of a record. IN the current definition of Ada, one must write: if column_dat( column (element) ).status = unassigned then column_dat( column (element) ).status := assigned; column_dat( column (element) ).assigned_elem := element; column_dat( column (element) ).assigned_row := row; column_dat( column (element) ).last_ref := current_row; end if; It would be much less tedious (and perhaps execute faster?) if one could write: WITH column_dat( column (element) ) DO begin if status = unassigned then status := assigned; assigned_elem := element; aassigned_row := row; last_ref := current_row; end if; end; as in UCSD Pascal. In order to avoid confusion with the current WITH Propposed extension of the USE clause - Record 84-08-27 AI-00274/00 2 statement in Ada, perhaps the word USING would be more appropriate. The syntax for the proposed extension could look something like: using_statement ::= USING record_name DO sequence_of_statements END USING; I would also propose that an extension of the USE clause be allowed in the declarative part of subprograms and block statements with the same effect as discussed above so that one could have: DECLARE USE record_name; BEGIN sequence_of_statements END; In my opinion the addition to the language of this extension would lessen the tedium of typing record names over and over and is in the same spirit as the existing USE clause. I respectfully request your consideration of this proposal.