Forum: PC-Programmierung Definition Literale C++


von Christian R. (cris06)


Lesenswert?

Hallo,
ich habe gerade ein Studium in Elektrotechnik begonnen und stehe kurz 
vor einer Informatik-Klausur. Jetzt haben sich kurz vor der Klausur noch 
Unklarheiten ergeben und ich wollte fragen, ob mir jemand helfen kann.

Es geht um Definitionen von Literale. Ich habe folgende Definitionen:
1
nondigit: one of           
2
  a b c x y z           
3
  A B C X Y Z 
4
 
5
 
6
digit: one of 
7
  0 1 2 3 4 5 6 7 8 9 
8
 
9
decimal-literal: 
10
  digit 
11
  decimal-literal digit 
12
 
13
 
14
identifier:       
15
  nondigit     
16
  identifier nondigit   
17
 
18
 
19
expression: 
20
  decimal-literal 
21
  (expression) 
22
  Identifier

Vor allem den expression verstehe ich noch nicht ganz, deshalb folgende 
Fragen:
1) Darf der expression aus einer willkührlichen Kombination aus 
nondigits und digit bestehen?
2) Werden Zeichenketten durch die Vorrausstellung von dem literal selbst 
gekennzeichnet? Z.B. ACX -> A ist ein indentifier -> idendifier CX.
Somit dürfte expression nur aus decimal-literal ODER idendifier 
bestehen, oder?

Ist somit zb. 71a bzw. a71 gar nicht definiert? Oder ist das ein 
expression?

von D. I. (Gast)


Lesenswert?

Christian R. schrieb:
> Vor allem den expression verstehe ich noch nicht ganz, deshalb folgende
> Fragen:
> 1) Darf der expression aus einer willkührlichen Kombination aus
> nondigits und digit bestehen?

Nein.

> 2) Werden Zeichenketten durch die Vorrausstellung von dem literal selbst
> gekennzeichnet? Z.B. ACX -> A ist ein indentifier -> idendifier CX.
> Somit dürfte expression nur aus decimal-literal ODER idendifier
> bestehen, oder?

Ja und dies kann aber geklammert werden.

>
> Ist somit zb. 71a bzw. a71 gar nicht definiert? Oder ist das ein
> expression?

71a, a71 kann man aus den Regeln nicht herleiten.

von Rolf Magnus (Gast)


Lesenswert?

Christian R. schrieb:
> 1) Darf der expression aus einer willkührlichen Kombination aus
> nondigits und digit bestehen?

Nein. Entweder das eine, oder das andere, aber nicht beides.

> 2) Werden Zeichenketten durch die Vorrausstellung von dem literal selbst
> gekennzeichnet?

In BNF typischerweise ja. Es ergibt sich eine Rekursion.

> Z.B. ACX -> A ist ein indentifier -> idendifier CX.

Ja.

> Somit dürfte expression nur aus decimal-literal ODER idendifier
> bestehen, oder?

Optional mit beiliebig vielen Klammern außen rum.

> Ist somit zb. 71a bzw. a71 gar nicht definiert? Oder ist das ein
> expression?

Es sind jeweils zwei Expressions. 71a ist ein decimal-literal gefolgt 
von einem identifier. Beides ist jeweils wieder eine Expresssion, also 
besteht 71a aus den beiden Expressions "71" und "a".

von Rolf Magnus (Gast)


Lesenswert?

Wobei man noch dazu sagen muss, dass die Regeln, so wie sie oben stehen, 
keine zwei Expressions vorsehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.