משתנה מטא-תחבירי

בתכנות, משתנה מֶטא־תחבירי (metasyntactic variable) הוא שם הניתן לדבר כלשהו שדנים בו, או לקבוצה של דברים, אשר מובן וידוע למתכנתים וחובבי מחשבים. המילה foo היא הדוגמה הקנונית לכך. השימוש במשתנים מטא־תחביריים בא לעזר גם בכך שהם משחררים את המהנדס מלהמציא שמות לוגיים למשתנים בנושא שבו הם דנים.

משתנים מטא־תחביריים נקראים כך כיוון ש:
 הם משתנים במטא־שפה אשר משתמשים בה כדי לדבר על תוכניות (ראו גם פסבדו־קוד);
 הם משתנים אשר ערכיהם הם לעיתים קרובות משתנים בעצמם (למשל בשימוש כמו "הערך של f הוא הסכום של foo ו־bar").
אולם, ההנחה הסבירה והמקובלת לסיבה האמיתית לקביעת המושג הוא שזה פשוט נשמע טוב: המושג הוא חלק מז'רגון המחשבים.

 דוגמאות 
 Foo ו־Bar 

Foo הוא המשתנה מטא־תחבירי הראשון שבו נוהגים להשתמש. לעיתים רבות הוא משולב עם bar כדי ליצור foobar. דבר זה מרמז אולי ש־foo נובע ממונח סלנג של מלחמת העולם השנייה בשם fubar, שהוא ראשי התיבות ל"מקולקל/דפוק מעבר לכל אפשרות לזיהוי", אם כי אתר תיק הז'רגון טוען בצורה משכנעת שfoo קדם לfubar. למילה Foo היה גם שימוש כמילת הבלים בקומיקס הסוריאליסטי "Smokey Stover" שהיה פופולרי בשנות ה-40 וה-50. ראו גם לוחם פו לאטימולוגיה נוספת של המילה, וכמו כן גם   .

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

 Baz 
 Quux 
Quux הוא המשתנה מטא־תחבירי הרביעי, אשר השימוש בו נפוץ לאחר baz. אולם, לאחרונה הפך Qux נפוץ יותר בשימוש כמשתנה רביעי, כאשר Quux הופך להיות החמישי. הסיבה לכך כנראה היא שלאחר Quux באים בדרך כלל Quuux ,Quuuux וכו', ולכן Qux מתאים לתבנית זו באופן מושלם.

 xyzzy 
xyzzy היא מילת קסם ממשחק המחשב הרפתקאת המערה הכבירה, וככזה יש לו שימוש נפוץ כמשתנה מטא־תחבירי, במיוחד בידי האסכולה הישנה של ההאקרים.

 Spam & Eggs 
Spam ו־Eggs הם משתנים מטא־תחביריים קנוניים אשר להם שימוש בשפת התכנות פייתון. זוהי התייחסות למערכון מפורסם של מונטי פייתון, אשר על שמם השפה נקראת.

 Fred & Barney 
על שמם של הדמויות מהסדרה המצוירת "משפחת קדמוני".

 Ned Baker ו- Meg O'Brien 
נד בייקר הוא שם בדוי (ולא דמות בדויה) או כינוי, המשמש במקום שבו יסופק שם אמיתי בזמן מאוחר יותר. יש לו שימוש נרחב בפיתוח של תוכניות מחשב אשר צריכות לטפל בשמות של אנשים אמיתיים לאחר שהפיתוח שלהם יסתיים.
שמות נפוצים נוספים אשר יש להם שימוש דומה הם שמות עם פיסוק (למשל Meg O'Brien) כדי לבחון את יכולת התוכנה לטפל בפיסוק כזה.

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

 דוגמאות אחרות 
thud, corge, grault, garply, waldo, plugh.

שפות אחרות

לפעמים לשפות אחרות יש משתנים מטא־תחביריים משל עצמם, למשל Aap, Noot, Mies מהשפה ההולנדית, pippo, pluto, paperino מאיטלקית, toto, tata, titi מצרפתית, וכן הלאה.

ראו גם
 אליס ובוב

קישורים חיצוניים
 ערך על Foo בתיק הז'רגון 
 RFC 3092 התזכיר של IETF על Foo 

 הערות שוליים

קטגוריה:תכנות