متغير ما وراء التركيب
المتغير ما وراء التركيبي هو كلمة أو مجموعة كلمات محددة تُستخدم كعنصر نائب في علوم الحاسوب ، وتحديدًا في برمجة الحاسوب . توجد هذه الكلمات عادةً في شفرة المصدر ، ويُقصد تعديلها أو استبدالها قبل استخدامها في الواقع العملي. على سبيل المثال، تُستخدم الكلمتان foo و bar في أكثر من 330 طلبًا للتعليقات صادرة عن فريق عمل هندسة الإنترنت ( IETF ) ، وهي الوثائق التي تُعرّف تقنيات الإنترنت الأساسية مثل HTTP (الويب) و TCP/IP وبروتوكولات البريد الإلكتروني . [ 1 ] [ 2 ]
بالقياس الرياضي ، فإن المتغير ما وراء التركيبي هو كلمة تمثل متغيراً لكلمات أخرى، تماماً كما تُستخدم الحروف في الجبر كمتغيرات للأرقام . [ 1 ]
تُستخدم المتغيرات التركيبية لتسمية الكيانات مثل المتغيرات والوظائف والأوامر التي لا تهم هويتها الدقيقة ، وإنما تُستخدم فقط لتوضيح مفهوم ما، وهو أمر مفيد لتدريس البرمجة.
المتغيرات النحوية الميتا الشائعة
بما أن اللغة الإنجليزية هي اللغة الأساسية أو لغة التواصل المشتركة لمعظم لغات برمجة الكمبيوتر، فإن المتغيرات التي تنشأ باللغة الإنجليزية شائعة حتى في البرامج وأمثلة البرامج المكتوبة لجمهور يتحدث لغات أخرى.
قد تعتمد المتغيرات المستخدمة في سياق معين على الثقافات الفرعية التي تتطور حول لغات البرمجة .
الاستخدام العام
تتضمن المتغيرات الوصفية الشائعة الاستخدام في جميع لغات البرمجة: foobar ، foo ، bar ، baz ، qux ، quux ، corge ، grault ، garply ، waldo ، fred ، plugh ، xyzzy ، و thud . [ 1 ] [ 3 ] كلمتان من هذه الكلمات، plugh و xyzzy ، مأخوذتان من لعبة Colossal Cave Adventure . [ 4 ]
يمكن العثور على مرجع أكثر تفصيلاً في قاموس المخترقين الصادر عن مطبعة معهد ماساتشوستس للتكنولوجيا .
اليابانية
في اليابانية، الكلمات hoge (ほげ) [ 5 ] و fuga (ふが) تُستخدم بشكل شائع، مع الكلمات والمتغيرات الشائعة الأخرى مثل piyo (ぴよ)، hogera (ほげら)، و hogehoge (ほげほげ). [ 6 ] أصل كلمة hoge كمتغير تركيبي غير معروف، ولكن يعتقد أنه يعود إلى أوائل الثمانينات. [ 6 ]
فرنسي
في فرنسا، تُستخدم كلمة "توتو" على نطاق واسع، مع وجود بدائل مثل "تاتا" و "تيتي " و "توتو" كبدائل لها. أحد المصادر الشائعة لاستخدام كلمة "توتو" هو الإشارة إلى الشخصية النمطية المستخدمة في إلقاء النكات مع "تيت آ توتو" .
تركي
في تركيا ، تُعدّ كلمتا "hede" و "hödö" (والتي تُكتب عادةً "hodo" بسبب قيود التسمية التي تقتصر على ASCII في لغات البرمجة) من المتغيرات النحوية المعروفة، والتي تعود أصولها إلى مجلات الرسوم الكاريكاتورية الفكاهية الشهيرة في التسعينيات، مثل مجلة "LeMan". لا تحمل هاتان الكلمتان أي معنى، ويُستخدمان لهذا السبب تحديدًا. وقد شاع استخدامهما على نطاق أوسع بفضل الممثل والكوميدي جيم يلماز في أواخر التسعينيات وأوائل الألفية الجديدة. [ 7 ]
إيطالي
في ثقافة برمجة البرمجيات الإيطالية، من الشائع استخدام أسماء شخصيات والت ديزني (كما وردت في النسخ الإيطالية من العروض) كمتغيرات. تظهر هذه الأسماء غالبًا في الشفرة الزائفة، ويُشار إليها في دروس هندسة البرمجيات، وتُستخدم بكثرة عند شرح الخوارزميات للزملاء. من بين أكثرها استخدامًا "بيبو" (غوفي)، و"بلوتو"، و"بابيرينو" (دونالد داك). [ 8 ]
أمثلة على الاستخدام

ج
في المثال التالي، يُعتبر كل من اسم الدالة fooواسم المتغير barمتغيرات فوقية. أما الأسطر التي تبدأ بـ //فهي تعليقات.
// الدالة المسماة foo int foo ( void ) { // تعريف المتغير bar وتعيين قيمته إلى 1 int bar = 1 ;أعد الشريط ؛ }لغة سي++
نماذج أولية للدوال مع أمثلة على آليات تمرير الوسائط المختلفة: [ 9 ]
void Foo ( Fruit bar ); void Foo ( Fruit * bar ); void Foo ( const Fruit & bar );مثال يوضح إمكانيات تحميل الدوال الزائدة في لغة C++
void Foo ( int bar ); void Foo ( int bar , int baz ); void Foo ( int bar , int baz , int qux );بايثون
تُعدّ Spam و ham و eggs المتغيرات النحوية الرئيسية المستخدمة في لغة البرمجة بايثون . [ 10 ] وهذا إشارة إلى المشهد الكوميدي الشهير " Spam " لفرقة مونتي بايثون ، التي سُمّيت اللغة تيمّنًا بها. [ 11 ] في المثال التالي spam، تُمثّل hamو و و eggsمتغيرات نحوية، بينما تُمثّل الأسطر التي تبدأ بـ #تعليقات.
# تعريف دالة باسم spam def spam ():عرّف المتغير ham ham = "Hello World!"# تعريف المتغير eggs eggs = 1يعودطلبات التعليقات من فريق هندسة الإنترنت
يتم عرض كل من معايير IETF RFC ولغات برمجة الكمبيوتر كنص عادي ، مما يجعل من الضروري تمييز المتغيرات التركيبية من خلال اتفاقية تسمية، لأنه لن يكون واضحًا من السياق.
فيما يلي مثال من وثيقة IETF الرسمية التي تشرح بروتوكولات البريد الإلكتروني (من RFC 772 - المشار إليها في RFC 3092):
كل شيء على ما يرام؛ الآن يمكن تحديد المستلمين. S: MRCP TO:<Foo@Y> <CRLF> R: 200 موافق S: MRCP TO:<Raboof@Y> <CRLF> R: 553 لا يوجد مستخدم بهذا الاسم هنا S: MRCP TO:<bar@Y> <CRLF> R: 200 موافق S: MRCP TO:<@Y,@X,fubar@Z> <CRLF> R: 200 موافق لاحظ أن تعطل "رابوف" لا يؤثر على تخزين البريد الإلكتروني لـ "Foo" أو "bar" أو البريد الإلكتروني المراد إعادة توجيهه إلى "fubar@Z" عبر المضيف "X".
(تؤكد وثائق texinfo على التمييز بين المتغيرات الوصفية والمتغيرات العادية المستخدمة في لغة برمجة، والموثقة في أحد ملفات texinfo على النحو التالي: "استخدم الأمر @var للإشارة إلى المتغيرات الوصفية. المتغير الوصفي هو ما يمثل نصًا آخر. على سبيل المثال، يجب عليك استخدام متغير وصفي في توثيق دالة لوصف الوسائط التي يتم تمريرها إلى تلك الدالة. لا تستخدم @var لأسماء متغيرات معينة في لغات البرمجة. هذه أسماء محددة من برنامج، لذا فإن @code هو الأنسب لها." [ 12 ] )
ومن النقاط الأخرى التي تتجلى في المثال السابق، الاتفاق على استبدال المتغير الفوقي بنفس النسخة في جميع مواضع ظهوره في مخطط معين. وهذا يختلف عن الرموز غير الطرفية في القواعد النحوية الرسمية ، حيث يمكن استبدال الرموز غير الطرفية على يمين قاعدة الإنتاج بنسخ مختلفة. [ 13 ]
بيانات مثال
SQL
يشيع استخدام اسم ACME في قواعد بيانات SQL التجريبية ، كما يُستخدم كاسم شركة مؤقت لأغراض التدريب. ويُستخدم مصطلح "قاعدة بيانات ACME" عادةً للدلالة على مجموعة بيانات تدريبية أو تجريبية تُستخدم حصراً لأغراض التدريب أو الاختبار. كما يُستخدم اسم ACME بكثرة في الوثائق التي تعرض أمثلة على استخدام SQL، وهي ممارسة شائعة في العديد من النصوص التعليمية، بالإضافة إلى الوثائق التقنية الصادرة عن شركات مثل مايكروسوفت وأوراكل . [ 14 ] [ 15 ] [ 16 ]
انظر أيضاً
مراجع
- 1 2 3 إيستليك الثالث، دونالد إي؛ مانروس، كارل أونو؛ ريموند، إريك إس. أصل كلمة "Foo" . IETF . doi : 10.17487/RFC3092 . RFC 3092 .
- ↑ "استرجاع المستندات" . محرر RFC .
- ↑ لافلين، ستيوارت (18 نوفمبر 2016). "المتغير ما وراء التركيبي" . programming@ProgClub (قائمة بريدية). مؤرشف من الأصل في 2 ديسمبر 2022. تم الاسترجاع في 18 نوفمبر 2016 .
- ↑ كروثر، ويل (11 مارس 1977). "advdat.77-03-11" . شفرة المصدر لمغامرة الكهف العملاق . دينيس ج. جيرز . تم الاسترجاع في 28 فبراير 2024 .
- ↑ "ضخمةの意味・使い方 - 英和辞典 Weblio 辞書" . ejje.weblio.jp .
- 1 2メタ構文変数(باللغة اليابانية)
- ^ ليمان ديرجيسي 1376. Sayı (باللغة التركية). Lm Basin Yayin Ltd.şti.
- ↑ "ملف المصطلحات - متغير ما وراء التركيب" . www.catb.org/ .
- ↑ مونغان، جون؛ كيندلر، نوح؛ جيغير، إريك (2012). مقابلات البرمجة مكشوفة: أسرار الحصول على وظيفتك التالية . جون وايلي وأولاده. ص 242. ISBN 978-1-118-28720-0.
- ↑ "دليل بايثون التعليمي - وثائق بايثون 3.8.1" . docs.python.org .
- ↑ "أسئلة وأجوبة عامة حول بايثون - توثيق بايثون 3.9.7" . docs.python.org . مؤسسة برمجيات بايثون. 4 سبتمبر 2021. لماذا سُميت بايثون؟ مؤرشفة من الأصل في 26 أغسطس 2021. تم الاطلاع عليها في 5 سبتمبر 2021 .
- ↑ "تمييز الكلمات والعبارات" . Texinfo 4.0. تنسيق توثيق جنو . مؤرشف من الأصل بتاريخ 2009-11-06 . تم الاطلاع عليه بتاريخ 2012-11-25 .
- ↑ آر دي تينينت (2002). تحديد مواصفات البرمجيات: مقدمة عملية . مطبعة جامعة كامبريدج. الصفحات 36-37 و210. ISBN 978-0-521-00401-5.
- ↑ كريجل، أليكس (2008). مرجع SQL . إنديانابوليس، إنديانا: وايلي. ISBN 978-0-470-22906-4. OCLC 402446308 .
- ↑ رويل، كريس (2014). أوراكل 12c للمبتدئين (باللغة الدنماركية). هوبوكين، نيوجيرسي: جون وايلي وأولاده. ISBN 978-1-118-74531-1. OCLC 870334544 .
- ↑ "العمل مع البيانات في تطبيقات ASP.NET Core" . docs.microsoft.com . 25 أبريل 2023.
روابط خارجية
- تعريف المتغير ما وراء التركيبي ، مع أمثلة.
- أمثلة على المتغيرات ما وراء التركيبية المستخدمة في لغة الكومنولث هاكيش ، مثل كلمة wombat .
- المتغير "foo" وغرائب البرمجة الأخرى
- عناصر نائبة
- ميتالوجيك
- متغير (علوم الحاسوب)
- بناء الجملة (المنطق)
