סוכר תחבירי
(הופנה מהדף ממתק תחבירי)
סוכר תחבירי (Syntactic sugar) הוא מבנה תחבירי ההופך קוד לקריא יותר.
תיאור מקובל נוסף לסוכר תחבירי הוא כל תוספת לשפה אשר אינה מרחיבה את יכולות השפה, אך מאפשרת כתיבת קוד קריא יותר.
מקור הביטוי
המושג סוכר תחבירי נטבע לראשונה על ידי פיטר לנדין בשנת 1964 במטרה לתאר את השימוש בתחשיב למדא בשפת ALGOL[1][2].
שפות מאוחרות כדוגמת CLU, ML, ו-Scheme הרחיבו את משמעות המונח לכל תחביר פנימי נוח של שפה אשר ניתן לתיאור על ידי מבניה הבסיסיים של השפה.[3]
דוגמאות בולטות
- פקודות השמה מקוצרת כדוגמת
a += b
שקולות ל-a = a + b
בשפת C ובשפות דומות אחרות.[4][5] - בשפת Perl, ניתן לכתוב
unless (condition) {...}
במקום הביטויif (not condition) {...}
. יתר על כן, תנאי יכול לעקוב אחר כל הוראה, כך שהביטויstatement if condition
שקול ל-if (condition) {statement}
, אך הראשון טבעי יותר לקריאה. - בשפת C, הסימון
a[i]
הוא ממתק תחבירי עבור*(a + i)
.[6] בדומה, הסימוןa->x
הוא ממתק תחבירי עבורa).x*)
לגישה לשדה של רשומה נתונה. - ההוראה
using
בשפת C# מבטיחה שחרור אובייקט מהזיכרון. (וחוסכת קוד שמוודא זאת בין אם התהליך הגיע לסופו ובין אם לאו) - הוראות List comprehension (אנ') בפייתון מהוות ממתק תחבירי.
- במספר שפות תכנות ישנה תמיכה באופרטור "השוואה משולשת" (
A<=>B
), השקול למשל לפונקציית compareTo של Java.
הערות שוליים
- ^ Landin, Peter J. (1964). "The mechanical evaluation of expressions" (PDF). The Computer Journal. Computer Journal. 6 (4): 308–320. doi:10.1093/comjnl/6.4.308. נבדק ב-21 ביולי 2014.
{{cite journal}}
: (עזרה) - ^ Abelson & Sussman 1996, Chapter 1, footnote 11.
- ^ Barbara Liskov, "A History of CLU", MIT Laboratory for Computer Science Technical Report 561 (1993)
- ^ "C Compound Assignment". msdn.microsoft.com. Microsoft. נבדק ב-20 ביוני 2016.
However, the compound-assignment expression is not equivalent to the expanded version because the compound-assignment expression evaluates expression1 only once, while the expanded version evaluates expression1 twice: in the addition operation and in the assignment operation.
{{cite web}}
: (עזרה) - ^ Garavaglia, Emilio (26 ביולי 2015). "Why are shortcuts like x += y considered good practice?". stackexchange.com. נבדק ב-20 ביוני 2016.
optimization can [be done] if 'finding x' has no side effects
{{cite web}}
: (עזרה) - ^ Eric S. Raymond (11 באוקטובר 1996). The New Hacker's Dictionary – 3rd Edition. MIT Press. p. 432. ISBN 978-0-262-68092-9. נבדק ב-5 באוגוסט 2012.
{{cite book}}
: (עזרה)
33595112סוכר תחבירי