Talk:Ada Programming/Keywords/for

Representation clauses
"Representation clauses" are renamed to "aspect clauses" since Ada 95 with the Technical Corrigendum 1. So now Ada doesn't only have "representation items" but "operational items" too. As can be read in AARM 13.1(1.a.1/1):
 * Aspects of representation are intended to refer to properties that need to be known before the compiler can generate code to create or access an entity. For instance, the size of an object needs to be known before the object can be created. Conversely, operational aspects are those that only need to be known before they can be used. For instance, how an object is read from a stream only needs to be known when a stream read is executed. Thus, aspects of representation have stricter rules as to when they can be specified.

So for example, 'Size and 'Alignment are representation attributes, whereas 'Write and 'External_Tag are operational attributes. So the question is: Should we explain this in the wikibook? The term representation clauses is far more extended in the Ada community than aspect clauses. In addition, that distinction is just useful for the compiler writers and not for the programmer, so maybe we shouldn't try to explain the distinction. What I propose is to always use the term representation clauses for simplicity (maybe saying that it is more formally called aspect clauses once), also creating two categories following the strict terminology to distinguish between "operational attributes" and "representation attributes". &mdash;surueña 14:54, 29 May 2008 (UTC)


 * I agree with your proposal. ManuelGR (talk) 20:25, 29 May 2008 (UTC)

BTW, I'm trying to create a hierarchy of attribute categories, but in the ARM only a few have specific categories (they usually are just called "attributes"): This is not really important (it would be more important for an encyclopedia), but instead of creating a category for each group of attributes and another for all the attributes, I think just the categories  "specifiable attributes", "operational attributes" and "representation attributes" should be created (the rest are just in the ":", like all the other pages of the wikibook, although this can be easily changed in the future if we discover a better method). Maybe we can be more strict in the definition of these aspect attributes in the category page, but stating that this is only important for compiler writers. Cheers &mdash;surueña 07:42, 30 May 2008 (UTC)
 * specifiable attributes
 * representation attributes
 * operational attributes
 * primitive-function attributes
 * representation-oriented attributes (different from representation attributes)
 * (other...)