Variable Definition
-
Es gibt ja zwei verbreitete Arten
eine Variable zu definierenT a;
a: T;
was sind die Vorteile der einen gegenüber der anderen Schreibweise
oder würde eine andere Syntax besser passen um eine Variable zu definieren
-
Das einzig wahre ist
T(a);
weil in C Präprozessor-tauglich.
-
Nun, ohne Deklaration, also
a = 123;
Ist auch eine verbreitete Art.
Naja Vorteile hat eigentlichT a;
da du in einem LL-Parser bereits den Typ kennst, wärend du ihn bei
a: T;
nicht hast, und dir quasi alle Variablen "cachen" musst. Bei LR bzw. LALR-Parsern wirst du es nur so lösen können:
//Liste erzeugen vars: vars ',' VAR | VAR ; //Deklarationen c_def: TYPE vars ; pascal_def: vars ':' TYPE ;
hierbei ist es Jacke wie Hose, es wird immer geachached.
Gruß
~cp
-
was sind die Vorteile der einen gegenüber der anderen Schreibweise
Einmal hast du die Typen linksbündig, dafür die Variablennamen nicht (ausser der User richtet diese "von Hand" aus), und einmal hast du die Variablennamen linksbündig, dafür die Typen nicht.
Was "besser" ist Ansichtssache.Davon abgesehen wüsste ich keinen wesentlichen Unterschied - solange es nur um einfache Variablen-Deklarationen/Definitionen geht.
-
Danke für die Antworten.
Es geht um: Was akzeptiert von ein c Programmierer?
// c Syntax
int a = 0;
int fun(int a, int b)
{}// c++09
auto fun(int a, int b) -> int
{}ich versuche eine Sprache zu Designern die diese Syntax hat
// Syntax 1
int a = 0;function(int, int -> int) fun(a, b)
{}oder
// Syntax 2
def a :: int = 0;def fun(a, b) :: function(int, int -> int)
{}bei beiden Syntaxformen muss man mehr schreiben als bei c Syntax
Die Idee ist den Functionstypen an einem ort zusammenfassen.
-
Sprach Designer schrieb:
Die Idee ist den Functionstypen an einem ort zusammenfassen.
An sich keine schlechte Idee! Nur ist dabei der jeweilige Typ zu einem Parameter-namen schlecht zu erkennen, gerade bei "vielen" Parametern. Ich denke daher, Parameter-Name und -Typ sollten zusammenbleiben, hat sich ja höchstwahrscheinlich auch nicht ohne Grund durchgesetzt.