next up previous contents index
Weiter: 2 TypenKlassen Hinauf: 1 Lexikalische Einheiten Zurück: 1.1 Der Zeichensatz

1.2 Lexikalische Einheiten und Namen

   

Name ist Schall und Rauch.

Faust.
Johann Wolfgang von Goethe,  ,,Faust``.
Der Tragödie erster Teil.

Maulaf:
Pifpaf, Klammeraf, Ganzbaf, Paragraf,
Dauerschlaf, Pornograf, Dompfaf!
An die Arbeit!
...
Obelix:
Und komische Namen haben die alle!
Hihihihi!
Hinten alle mit ,,af``!
Majestix:
Hahaha! Miraculix, Troubadix, Verleihnix,
Methusalix, Rührfix, Machtnix,
habt ihr das gehört?


Renè Goscinny und Albert Uderzo,  
,,Asterix und die Normanen``.

Lexikalische Einheiten sind aus obigem Zeichensatz aufgebaut. Man unterscheidet zwischen Bezeichnern (Identifiern), reservierten Worten, numerischen Literalen, Characters, Strings, Delimitern            und Kommentaren .

Identifier  bestehen aus einem Buchstaben gefolgt von einer beliebigen Anzahl von Buchstaben, Ziffern und Underscores (um die Lesbarkeit zu erhöhen). Underscores dürfen jedoch weder am Ende eines Identifiers stehen, noch dürfen zwei von ihnen unmittelbar aufeinanderfolgen. Es gibt keine Beschränkung bezüglich der Länge von Identifiern, aber ein Identifier muß in eine Zeile passen. (Die Zeilenlänge wird im Sprachumfang als ≥200 festgelegt, aber im allgemeinen von Compilern auf einen festen Wert fixiert.) Ada unterscheidet nicht zwischen Groß- und Kleinschreibung. Die folgenden Beispiele sind korrekte Ada-Identifier:

Alphabet
Gamma_Strahl
SCSI_Interface
F16

Reservierte Wörter     haben in Ada-Programmen spezielle Bedeutung. Es gibt genau die folgenden 69 reservierten Wörter.

abort else new return
abs elsif not reverse
abstract end null
accept entry select
access exception separate
aliased exit of subtype
all or
and for others tagged
array function out task
at terminate
generic package then
begin goto pragma type
body private
if procedure
case in protected until
constant is use
raise
declare range when
delay limited record while
delta loop rem with
digits renames
do mod requeue xor

Numerische Literale   stellen ganzzahlige oder reelle Zahlenwerte dar. Zahlen können zu jeder Basis von 2 bis 16 dargestellt werden. Außerdem können zwischen den einzelnen Ziffern Underscores zur besseren Lesbarkeit eingefügt werden. Es folgen einige korrekte numerische Literale:

7
1_000_000 = 1000000
1e6 = 1000000
2#1101# = 16#D# = 13

0.25
3.14_15_9
1.25e6 = 1250000.0
16#F.8# = 15.5
16#F.FF#E+2 = 4095.0

Reelle Zahlen erfordern zur syntaktischen Korrektheit mindestens eine Ziffer links und rechts vom Dezimalpunkt. Die Syntax der Darstellung von Zahlen zu einer bestimmten Basis sollte aus den Beispielen hervorgehen; wir ersparen uns daher eine genauere Erläuterung.

Ein Character  besteht aus irgendeinem der Zeichen des oben angegebenen Zeichensatzes und ist von einfachen Hochkommata eingeschlossen, z.B.:

'A',
'',

''' (Der Character ').

Ein String  hingegen besteht aus null oder mehr Zeichen, die von doppelten Hochkommata eingeschlossen sind, z.B.:

"",
"Das ist ein String.",

"""" (Der String mit dem Wert ").

Delimiter  bestehen aus den Zeichen:

' ( ) * + , - . / : ; < = > | &

Zusätzlich gibt es noch zusammengesetzte Delimiter: 

=> .. ** := /= >= <= << >> <>
Zwischen zwei lexikalischen Einheiten darf eine beliebige Anzahl von Blanks  stehen.

Kommentare  beginnen mit - und enden am Ende der Zeile.

Obwohl man sie für gewöhnlich nicht als lexikalische Einheiten auffaßt, gibt es noch eine Art von Konstrukten, die in Ada-Programmen vorkommt: die Pragmas . Ein Pragma ist zwar eine Anweisung an den Compiler, in Ada gibt es jedoch einige vordefinierte Pragmas, die wir noch behandeln werden.



next up previous contents index
Weiter: 2 TypenKlassen Hinauf: 1 Lexikalische Einheiten Zurück: 1.1 Der Zeichensatz

Johann Blieberger
Wed Feb 11 09:58:52 MET 1998