הדגשת תחביר

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

תחביר HTML מודגש

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

יתרונות מעשייםעריכה

 
הדגשת ההשפעה של מפריד חסר (אחרי watch = 'false ) ב- JavaScript

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

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

תמיכה בעורכי טקסטעריכה

 
gedit תומך בהדגשת תחביר

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

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

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

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

אלמנטים תחבירייםעריכה

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

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

דוגמאותעריכה

להלן השוואה של קטע קוד C:

עיבוד סטנדרטי הדגשת תחביר
/* Hello World */
#include <stdlib.h>
#include <stdio.h>

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

int main()
{
 printf("Hello World\n");
 return 0;
}

להלן קטע נוסף של תחביר קוד ++C מודגש:

// 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>();
}

בדוגמה ++C, העורך זיהה את מילות המפתח const, auto, int ו- for . ההערה בהתחלה מודגשת גם באופן ספציפי כדי להבדיל אותה מקוד העבודה.

ראו גםעריכה

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

  1. ^ Jim D'Anjou; Sherry Shavor; Scott Fairbrother; Dan Kehn; John Kellerman; Pat McCarthy (2005). The Java developer's guide to Eclipse (מהדורה שנייה). Boston: Addison-Wesley. ISBN 978-0-321-30502-2. 
  2. ^ Sarkar, Advait (2015). "The impact of syntax colouring on program comprehension". Proceedings of the 26th Annual Conference of the Psychology of Programming Interest Group: 49–58. בדיקה אחרונה ב-5 בספטמבר 2015.