Syntaktischer ZuckerSyntaktischer Zucker sind Syntaxerweiterungen in Programmiersprachen, welche der Vereinfachung von Schreibweisen dienen.[1] Diese Erweiterungen sind alternative Schreibweisen, die aber nicht die Ausdrucksstärke und Funktionalität der Programmiersprache erweitern.[2] Syntaktischer Zucker lässt sich durch reine Textumformungen auf Grundelemente der Sprache zurückführen („desugar“, dt. entsüßen).[2] Der Begriff syntactic sugar wurde in den 1960er Jahren vom britischen Informatiker Peter J. Landin[3][2] geprägt. BeispieleSyntaktischer Zucker in CEin Beispiel für syntaktischen Zucker ist die Behandlung von Feldern in der Programmiersprache C.[4]
C unterscheidet streng genommen nicht zwischen Zeigern auf Objekte und Zeigern auf Felder von Objekten. Ist die Variable Ein weiteres Beispiel für syntaktischen Zucker ist die Infixnotation. Bei der Infix-Schreibweise steht der Operator zwischen den Operanden, z. B. Diamant-Operator in JavaEin Beispiel für syntaktischen Zucker in Java ist der so genannte „Diamant-Operator“ <>. Dieser wurde mit der Version 7 eingeführt. Er leitet den generischen Typ des zu erstellenden Objekts anhand der Typangabe der Referenz zu. Anstelle von List<HashMap<String, Point>> list = new ArrayList<HashMap<String, Point>>();
reicht es nun aus zu schreiben List<HashMap<String, Point>> list = new ArrayList<>();
um eine do-Notation in HaskellIn der funktionalen Programmiersprache Haskell werden für viele Zwecke, insbesondere jedoch für die Ein- und Ausgabe, sogenannte Monaden verwendet. Um beispielsweise eine Zeile und einen Buchstaben von der Standardeingabe einzulesen, den Buchstaben vorne an die Zeile anzuhängen und das Ergebnis wieder auszugeben, müsste man schreiben getLine >>= \s -> getChar >>= \c -> putStrLn (c:s)
Besser umbrochen ergibt das: getLine >>=
\s -> getChar >>=
\c -> putStrLn (c:s)
Da man solche Konstrukte sehr häufig benötigt, wurde die sogenannte do-Notation eingeführt. Folgender Code ist exakt äquivalent zum obigen Beispiel: do
s <- getLine
c <- getChar
putStrLn (c:s)
Diese Form erinnert stark an ein imperatives Programm und erleichtert das Verständnis des Inhalts. unless-Keyword in RubyIn der Skriptsprache Ruby (Programmiersprache) kann anstatt eines negierten if auch das Keyword unless benutzt werden. def format_mail
formatted_mail = $mail
formatted_mail = "#{formatted_mail} (#{$full_name})" unless $full_name.nil?
formatted_mail
end
Syntaktisches SalzDas Gegenstück zum syntaktischen Zucker ist das syntaktische Salz – eine Spracheigenschaft, die das Schreiben schlechten oder schlecht lesbaren Codes erschwert, ohne dabei die Funktionalität zu erweitern.[5] Syntaktisches Salz dient folglich als Hürde um sicherzustellen, dass der Entwickler weiß, was vor sich geht, anstatt eine Programmaktion auszudrücken. Ein Beispiel hier ist der Einzelnachweise
|