Archiv verlassen und diese Seite im Standarddesign anzeigen : the Buzzword of the Month
syntaktischer Zucker
Kann mir mal einer erklären, was das heißen soll?
Monger
2006-09-07, 17:41:56
"Syntaktischen Zucker" nennt man all die Syntaxfeatures einer Sprache, die nicht zwingend notwendig sind, aber einem die Arbeit versüßen.
Oft genug wird es auch als Schimpfwort gebraucht, weil syntaktischer Zucker nur die Sprache schöner aussehen lässt, statt sie tatsächlich schöner zu machen.
Im Zusammenhang mit Java 5.0 ist der Begriff ganz oft gefallen.
Das hier:
for(Thing thing : collection){
}
ist zum Beispiel syntaktischer Zucker für
Iterator it = collection.iterator();
while(it.hasNext()){
Thing thing = collection.next();
}
Aha, dann ist ja alles, was über ne Turing-Maschine hinausgeht, syntaktischer Zucker?
Gnafoo
2006-09-07, 18:43:44
Ich denke mal da sind eher Abkürzungen auf syntaktischer Ebene (mit oft geringen Einsparungen) gemeint. Programmierkonzepte, wie Objektorientierung etc. sind damit nicht zu vergleichen. Noch ein Beispiel aus C#:
using(TestObj test = new TestObj())
{
// bla...
}
statt
TestObj test = new TestObj();
try
{
// bla...
}
finally
{
test.Dispose();
}
Aha, dann ist ja alles, was über ne Turing-Maschine hinausgeht, syntaktischer Zucker?
Im Prinzip schon.
Neomi
2006-09-07, 22:45:11
Ein gutes Beispiel für syntaktischen Zucker sind auch die meisten Operatoren, z.B. in C++:
"a < b": braucht man
"a <= b": braucht man nicht, da identisch zu "!(b < a)"
"a == b": braucht man nicht, da identisch zu "!((a < b) || (b < a))"
"a != b": braucht man nicht, da identisch zu "(a < b) || (b < a)"
"a >= b": braucht man nicht, da identisch zu "!(a < b)"
"a > b": braucht man nicht, da identisch zu "b < a"
"a.b": braucht man
"pa->b": braucht man nicht, da identisch zu "(*pa).b"
"!a": braucht man
"a || b": braucht man
"a && b": braucht man nicht, da identisch zu "!(!a || !b)"
Manche der Dinge, die ich als nötig eingestuft habe, kann man dadurch entbehrlich machen, daß man andere Dinge stattdessen voraussetzt. Auf || kann man z.B. verzichten, wenn man stattdessen && hat.
Syntaktischer Zucker ist alles, was ein Programm lesbarer oder schneller implementierbar macht, obwohl es auch ohne ginge.
Operator +=, -=, *= und /= sind syntaktischen Zucker.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.