11. Anlage
 
zurück
11.3.5 Das Pragma "Discard_Names"


Die Attribute ‘Image, ‘Value, ‘Wide_Image und ‘Wide_Value und das generische Paket Enumeration_IO aus Ada.Text_IO und Ada.Wide_Text_IO erfordern, daß die Namen von Aufzählungswerten während der Programmlaufzeit verfügbar sind. Für einen großen Aufzählungstyp kann der Speicherbedarf, der benötigt wird, um diese Information zu speichern, bedeutend sein, insbesondere wenn die Zielmaschine nur einen beschränkten Speicher hat. Darüber hinaus ist dieser Speicheraufwand nutzlos, wenn die Attribute und Ein-/Ausgabemöglichkeiten, die die Namen von Aufzählungswerten benötigen, im Programm nicht verwendet werden.
Das Pragma "Discard_Names" kann verwendet werden, um den Speicher einzuschränken, der für die Namen von bestimmten Einheiten verwendet wird. Das Pragma "Discard_Names" hat folgende Form:

pragma Discard_Names [ ( [ On => ] lokaler_Name ) ];


Ein Pragma "Discard_Names" steht immer direkt in einem Vereinbarungsteil (declarative_part <BNF>), einer Paketspezifikation (package_specification <BNF>) oder als Konfigurationspragma.
Der lokale Name (wenn er vorhanden ist) soll einen nicht abgeleiteten ersten Aufzählungsuntertyp, einen gekennzeichneten ersten Untertyp oder eine Ausnahme bezeichnen. Das Pragma ist auf den Typ oder die Ausnahme anwendbar. Ohne den lokalen Namen gilt das Pragma für alle Einheiten, die nach dem Pragma innerhalb des gleichen Vereinbarungsbereichs vereinbart sind. Alternativ kann das Pragma als Konfigurationspragma verwendet werden. Wenn das Pragma für einen Typ angewendet wird, dann gilt er auch für alle Nachkommen des Typs.
Wenn der lokale Name angegeben ist, dann ist das Pragma "Discard_Names" ein Darstellungs-pragma.
Wenn das Pragma angegeben wird, ist die Wirkung der Attribute und die Ein-/Ausgabe, bei der die Namen der Aufzählungswerte verwendet werden, implementierungsabhängig. Während der Übersetzung oder Ausführung kann ein Fehler auftreten oder z. B. nützliche Information, wie die interne Codierung eines Aufzählungswertes ausgegeben werden. Der Übersetzer kann das Pragma ignorieren, z. B. wenn bekannt ist, daß der Speicherbedarf, um die Namen zu speichern, einen vorgegebenen Wert unterschreitet. Übersetzer können die Datenbereiche, die die Namen der Aufzählungswerte enthalten, beim Laden der ausführbaren Datei weglassen, ohne daß das Pragma verwendet wird, wenn diese Namen im Programm nicht vorkommen.
Wenn das Pragma auf einen gekennzeichneten Typ anwendbar ist, dann ist die Bedeutung der Funktion Tags.Expanded_Name für diesen Typ implementierungsabhängig. Wenn das Pragma für eine Ausnahme verwendet wird, dann ist die Bedeutung der Funktion Exceptions.Exception_Name für diese Ausnahme implementierungsabhängig.


 
zurück
 Index   Ada Tour - Dokumentation  
© 2003 Förderverein Ada Deutschland e.V.