Die Abstrakte Syntaxnotation Nummer 1Die abstrakte Syntaxnotation Nummer 1 (ASN.1) wird in Form einer formalen Grammatik in Backus-Naur-Notation angegeben. Da diese als Semantiksprache verwendet wird, sollte die Bedeutung einem Leser unmittelbar einsichtig sein. Wir stellen ASN.1 hier etwas informaler und unvollständiger vor als sie in den entsprechenden Standards ISO 8824 bzw. CCITT T.409 spezifiziert ist. Zusammengehörende Definition werden in einem Modul zusammengefaßt.
Ein Modul kann Definitionen exportieren oder aus anderen Modulen importieren. Dieses wird im Linkage festgelegt. Neue Definitionen werden in den Declarations gegeben. Hier gibt es drei Arten von definierbaren Objekten.
Zur Unterscheidung werden Typen mit einem Großbuchstaben am Anfang geschrieben: (DatenTyp), Werte mit einem Kleinbuchstaben (zustand), und Makros in Blockbuchstaben (OBJEKT-TYP); auch die Schlüsselwörter von ASN.1 werden nur in Blockbuchstaben geschrieben. Ein Typ in ASN.1 wird durch
(Zum Vergleich in ADA: TypName is TYPE) eingeführt, eine Variable durch
(Zum Vergleich in ADA: VariablenName: TypName := WERT) Vergleicht man dieses mit höheren Programmiersprachen, so entspricht die Typdeklaration dem Konstrukt TypName is TYPE in der Programmiersprache ADA, und die Variablendeklaration dem Konstrukt WerteName: TypName := WERT in ADA.Man unterscheidet einfache Typen (simple type), zusammengesetzte Typen (constructed type) und tagged Typen . Außerdem kennt ASN.1 Untertypen (subtype).Mittels Macros lässt sich die Definition der ASN.1-Sprache selbst erweitern; eine genaue Beschreibung, die den Rahmen dieses Buches sprengen würde, findet man in den Standards X.208 bzw. IS 8824 im Anhang A. Außerdem gibt es eine Übersicht über die Standardtypen. |