Rechnernetze
Home Nach oben Standardtypen Einfache Typen Zusammengesetzte Typen Tagged Typen Untertypen

Die Abstrakte Syntaxnotation Nummer 1

Die 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.

ModulName DEFINITIONS ::= BEGIN

linkage

declarations

END

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.

Typen (Types), die neue Datenstrukturen definieren.
Werte (Values), die die Ausprägungen von Typen definieren.
Makros (Macros), die die Grammatik der Sprache ändern können.

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

TypName ::= TYPE

(Zum Vergleich in ADA: TypName is TYPE)

eingeführt, eine Variable durch

VariablenName TypName ::= WERT

(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.