Warum dürfen Variablen nicht mit Zahlen beginnen?

Ardaric

Erfahrenes Mitglied
Halli Hallo!

Das frage ich mich schon lange. Warum dürfen Variablen eigentlich nicht mit Zahlen beginnen? Das ist zumindest in Java, C#, C++, VB, Python und HTML(id) der Fall.

Daniel
 
Warum warum?
Warum ist die Banane krumm?
SO HALT! :p
Gut, das mit den Bananen kann ich dir erklären, und der Grund für Deine Frage liegt wohl einfach darin, dass irgendwer, irgendwann mal beschlossen hat dass es so sein soll und alle sich drann gehalten haben.
 
Variablen sollten immer eindeutige und klar verständliche Namen haben. Bei einer Variable namens „12345“ wird niemand wissen, wozu diese dient.
 
Variablennamen wie xyz oder a12345 machen aber ehrlich gesagt auch nicht mehr Sinn. ;)
Aber mal als Gegenfrage: Warum sollten denn Variablen mit einer Zahl beginnen koennen? ;)
 
@Nil: Bananen sind krumm, weil sie sich zur Sonne neigen. Dass das irgendwer, irgendwann beschlossen hat ist mir klar! Aber warum?

@Gumbo: Nein, ich glaube nicht, dass es daran liegt. Bei Variablennamen wie diesen hier weiß auch niemand, wozu die dienen: "j23jk4jkl23h" oder "_12345".

@Dennis Wronka: Es ist unhöflich gegenfragen zu Stellen.
 
Nein, ich glaube nicht, dass es daran liegt. Bei Variablennamen wie diesen hier weiß auch niemand, wozu die dienen: "j23jk4jkl23h" oder "_12345".
Das stimmt schon. Nur wenn die Syntax mit Zahlen beginnende Variablennamen nicht zulässt, ist die Verlockung, so etwas zu machen, vielleicht auch nicht so groß.

Ein plausibler Grund könnte sein, dass so Variablen und Zahlen besser voneinander unterschieden werden können. Denn in vielen Sprachen haben Variablen kein eindeutiges Markmal wie etwa in Perl oder PHP („$foobar). Wie sollte also zwischen einer Variable namens „123e45“ und der Zahl 123·10?? unterschieden werden?
 
@Dennis Wronka: Es ist unhöflich gegenfragen zu Stellen.
Donnerstag ist mein unhoeflicher Tag. ;)

Was ich mit der Frage aber eigentlich ausdruecken wollte ist, dass mir im Grunde kein Beispiel einfallen wuerde wo dies wirklich Sinn machen wuerde. Wenn man einen bestimmten Variablennamen haben will und davon dann mehrere mit Nummerierung versehen will kann man das auch am Ende des Namens machen oder nimmt gleich ein Array.
 
Hallo,

es handelt sich hierbei schlichtweg um eine sinnvolle Konvention. Einerseits wird damit das Aufkommen etwaiger Doppeldeutigkeiten verhindert (siehe Gumbos Beitrag), andererseits erleichtert man dem Compilerbauer damit die Arbeit (wenn ein Token mit einer Dezimalziffer beginnt, kann schon mal ausgeschlossen werden, dass es sich um einen Bezeichner handelt).

Grüße,
Matthias
 
@Dennis Wronka:Ja, das wäre aber kein kein Grund, das gleich zu verbieten.

Beispiel Einrückung. Es ist nich vorteilhaft 10.000 Zeichen in eine Zeile zu schreiben, trotzdem ist es erlaubt in den allermeisten Sprachen.

@Gumbo: Das könnte sein. Aber ist "int i = 2*1,3E3" wirklich gültiger Code? Meistens sind solche mathematischen Funktionen ja in Methoden ausgelagert. math.irgendwas() oder so.

Der Denkansatz ist aber interessant.

Vielleicht kommt ja noch einer vorbei, der es genau weiß :)

Hallo,

... andererseits erleichtert man dem Compilerbauer damit die Arbeit (wenn ein Token mit einer Dezimalziffer beginnt, kann schon mal ausgeschlossen werden, dass es sich um einen Bezeichner handelt) ...

Ich kann mir trotzdem nicht vorstellen, dass es eine Konventionsgeschichte ist. Siehe mein obiger Post :)

Der andere Teil scheint plausibel zu sein. Zu Beginn des Computerzeitalters hat man die Rechenpower für die Unterscheidung sicher wo anders benötigt, also hat man das so gelöst (füge ich mutmaßend hinzu).

Sehr schön, danke!
 
Hallo,

@Gumbo: Das könnte sein. Aber ist "int i = 2*1,3E3" wirklich gültiger Code? Meistens sind solche mathematischen Funktionen ja in Methoden ausgelagert. math.irgendwas() oder so.
double d = 123e45; ist beispielsweise gültiger Javacode. In anderen Sprachen wird es ähnlich aussehen. Man muss aber nicht mal soweit gehen, um unlösbare Doppeldeutigkeiten zu erzeugen. Was ist beispielweise mit dem Token 7? Ist das jetzt eine Zahlenkonstante oder ein Bezeichner?

Grüße,
Matthias
 

Neue Beiträge

Zurück