הדגשת תחביר

תחביר [[HTML מודגש]]
הדגשת תחביר או צביעת תחביר היא תכונה של עורכי טקסט המשמשים לתכנות, סקריפטים או שפות סימון, כגון HTML. הדגשת תחביר מציגה טקסט, במיוחד קוד מקור, בצבעים שונים ובגופנים בהתאם לקטגוריית המונחים וכללי התחביר.<ref></ref> תכונה זו מאפשרת כתיבה בשפה מובנית כגון שפת תכנות או שפת סימון שכן מבנים ידועים ושגיאות תחביר נבדלים מבחינה ויזואלית. תכונה זו משמשת גם בהקשרים רבים הקשורים לתכנות (כגון מדריכי תכנות), בצורה של ספרים צבעוניים או אתרי אינטרנט מקוונים כדי להקל על הבנת קטעי קוד עבור הקוראים. הדגשה אינה משפיעה על משמעות הטקסט עצמו; אלא הוא מיועד רק להקל על קורא אנושי.

הדגשת תחביר היא סוג של סימון משני, מכיוון שהדגשים אינם חלק ממשמעות הטקסט, אלא משמשים לחיזוקו. חלק מהעורכים משלבים גם הדגשת תחביר עם תכונות אחרות, כמו בדיקת איות או קיפול קוד, ככלי עזר לעריכה שאינם חיצוניים לשפה.

== יתרונות מעשיים ==
הדגשת ההשפעה של מפריד חסר (אחרי watch = 'false ) ב-[[JavaScript]]
הדגשת תחביר היא אסטרטגיה אחת לשיפור הקריאות וההקשר של הטקסט; במיוחד עבור קוד המשתרע על מספר עמודים. הקורא יכול להתעלם בקלות מחלקים גדולים של הערות או קוד, תלוי מה שהם מחפשים. הדגשת תחביר מסייעת גם למתכנתים למצוא שגיאות בתוכניות שלהם. לדוגמה, רוב העורכים מדגישים מחרוזות מיליליות בצבע שונה. כתוצאה מכך, זיהוי חוסר במפריד הרבה יותר קלה בגלל צבעים מנוגדים של הטקסט. התאמת סוגרים (Brace matching) היא תכונה חשובה נוספת בקרב עורכים פופולריים. זה מאפשר לך לראות אם הסוגר הושאר בחוץ או לאתר את התאמת הסוגר שהסמן נמצא בו על ידי הדגשת הצמד בצבע אחר.

מחקר שפורסם בכנס PPIG העריך את ההשפעות של הדגשת תחביר על הבנת תוכניות קצרות, ומצא כי נוכחות הדגשת תחביר מפחיתה משמעותית את הזמן שלוקח למתכנת להפנים את הסמנטיקה של תוכנית.<ref name=":0"></ref> בנוסף, נתונים שנאספו ממעקב עיניים במהלך המחקר העלו כי הדגשת תחביר מאפשרת למתכנתים להקדיש פחות תשומת לב לרכיבים תחביריים סטנדרטיים כגון מילות מפתח.

== תמיכה בעורכי טקסט ==
[[gedit תומך בהדגשת תחביר]]
עורכי טקסט מסוימים יכולים גם לייצא את הסימון הצבעוני בפורמט המתאים להדפסה או לייבוא לעיבוד תמלילים ולסוגים אחרים של תוכנת עיצוב טקסט; למשל כגרסת HTML, צבעונית LaTeX, PostScript או RTF של הדגשת התחביר שלה. ישנן מספר ספריות תחביר או "מנועים" בהן ניתן להשתמש ביישומים אחרים, אך אינן תוכניות שלמות בפני עצמן, למשל סיומת ה-Generic Syntax Highlighter (GeSHi ) עבור PHP.

עבור עורכים התומכים ביותר משפה אחת, המשתמש יכול בדרך כלל לציין את שפת הטקסט, כגון C, LaTeX, HTML, או שעורך הטקסט יכול לזהות אותה באופן אוטומטי על בסיס סיומת הקובץ או על ידי סריקת תוכן הקובץ. זיהוי שפה אוטומטי זה מביא לבעיות אפשריות. לדוגמה, משתמש עשוי לרצות לערוך מסמך המכיל:
* יותר משפה אחת (למשל בעת עריכת קובץ HTML המכיל קוד JavaScript מוטבע),
* שפה שאינה מוכרת (למשל בעת עריכת קוד מקור לשפת תכנות לא ברורה או חדשה יחסית),
* שפה שונה מסוג הקובץ (למשל בעת עריכת קוד מקור בקובץ ללא סיומת בעורך המשתמש בסיומות קבצים כדי לזהות את השפה).

במקרים אלה, לא ברור באיזו שפה להשתמש, וייתכן שמסמך אינו מודגש או מודגש באופן שגוי.

== אלמנטים תחביריים ==
רוב העורכים עם הדגשת תחביר מאפשרים לתת צבעים וסגנונות טקסט שונים לעשרות תת-אלמנטים שונים של תחביר. אלה כוללים מילות מפתח, הערות, הצהרות זרימת בקרה, משתנים ורכיבים אחרים. מתכנתים לעיתים קרובות מכוונים מאוד את הגדרותיהם בניסיון להציג מידע שימושי ככל האפשר מבלי להקשות על קריאת הקוד.

עורכים מסוימים מציגים גם אלמנטים תחביריים מסוימים בדרכים נעימות יותר מבחינה ויזואלית, לדוגמה על ידי החלפת מצביע כמו <code>-></code> בקוד המקור בסמל חץ אמיתי (→), או שינוי רמזים לקישוט טקסט כמו /italics/, *boldface*, או _underline_ בתגובות קוד המקור על ידי נטוי אמיתי, מודגש או מצגת מודגשת.

=== דוגמאות ===
להלן השוואה של קטע קוד C:
{| class="wikitable" width="100%"
!עיבוד סטנדרטי
! הדגשת תחביר
|-
|<syntaxhighlight lang="text">
/* Hello World */
#include <stdlib.h>
#include <stdio.h>

int main()
{
 printf("Hello World\n");
 return 0;
}
</syntaxhighlight>
|<syntaxhighlight lang="c">
/* Hello World */
#include <stdlib.h>
#include <stdio.h>

int main()
{
 printf("Hello World\n");
 return 0;
}
</syntaxhighlight>
|}
להלן קטע נוסף של תחביר קוד ++C מודגש:<syntaxhighlight lang="cpp">
// Create "window_count" Window objects:
const auto window_count = int{10};
auto windows = std::array<std::shared_ptr<Window>, max_window_count>{};
for (auto i = int{0}; i < window_count; ++i) {
 windows[i] = std::make_shared<Window>();
}
</syntaxhighlight>בדוגמה ++C, העורך זיהה את מילות המפתח <code>const</code>, <code>auto</code>, <code>int</code> ו-<code>for</code>. ההערה בהתחלה מודגשת גם באופן ספציפי כדי להבדיל אותה מקוד העבודה.

== ראו גם ==
* ניתוח מחרוזות

==קישורים חיצוניים==

== הערות שוליים ==

קטגוריה:בלשנות