لغة البرمجة النصية

GDScript في Godot 3.4

في مجال الحوسبة، يُعدّ النص البرمجي مجموعةً قصيرةً وبسيطةً نسبيًا من التعليمات التي تُستخدم عادةً لأتمتة عملية يدوية. وتُسمى عملية كتابة النص البرمجي "كتابة النصوص البرمجية ". أما لغة كتابة النصوص البرمجية فهي لغة برمجة تُستخدم لكتابة النصوص البرمجية. [ 1 ]

في الأصل، كانت البرمجة النصية تقتصر على أتمتة أوامر النظام في أنظمة التشغيل ، وكانت لغاتها بسيطة نسبيًا. أما اليوم، فقد أصبحت البرمجة النصية أكثر انتشارًا، وتتضمن بعض لغات البرمجة النصية ميزات حديثة تسمح باستخدامها لتطوير برامج التطبيقات أيضًا.

ملخص

يمكن أن تكون لغة البرمجة النصية لغة برمجة عامة الأغراض أو لغة خاصة بمجال معين لبيئة محددة. وعند تضمينها في تطبيق، قد تُسمى لغة إضافية .

يُشار أحيانًا إلى لغة البرمجة النصية على أنها لغة برمجة عالية المستوى للغاية إذا كانت تعمل على مستوى عالٍ من التجريد، أو كلغة تحكم ، خاصة بالنسبة للغات التحكم في الوظائف على أجهزة الكمبيوتر المركزية .

يُستخدم مصطلح لغة البرمجة النصية أحيانًا بمعنى أوسع، للإشارة إلى لغات البرمجة الديناميكية عالية المستوى بشكل عام. بعضها لغات تفسيرية بحتة ، بينما يستخدم البعض الآخر نوعًا من الترجمة. في هذا السياق، يشير مصطلح " البرنامج النصي" إلى برنامج صغير مكتوب بإحدى هذه اللغات. عادةً ما يكون البرنامج النصي موجودًا في ملف واحد، ولا يتجاوز حجمه بضعة آلاف من أسطر التعليمات البرمجية.

يتراوح نطاق لغات البرمجة النصية من الصغيرة إلى الكبيرة، ومن اللغات المتخصصة للغاية في مجال معين إلى لغات البرمجة العامة . قد تبدأ اللغة صغيرة ومتخصصة للغاية في مجال معين، ثم تتطور لاحقًا إلى لغة قابلة للنقل وعامة الأغراض؛ وعلى العكس من ذلك، قد تتطور لغة عامة الأغراض لاحقًا إلى لهجات خاصة بمجال معين .

اللغات البارزة

صفات

النص هو توصيف شخصي يتضمن عمومًا السمات التالية.

مترجم

لا يتم عادةً تجميع البرامج النصية ، على الأقل ليس بالمعنى المعتاد. بشكل عام، يتم تفسيرها مباشرةً من شفرة المصدر ، أو من الشفرة الوسيطة ، أو يتم تشغيلها كبرامج أصلية بعد التجميع الفوري . [ 5 ]

مختصر وبسيط

عادةً ما يكون النص البرمجي قصيرًا وبسيطًا نسبيًا. ونظرًا لعدم وجود حد أقصى لحجمه أو تعقيده، فإن تعريف النص البرمجي أمرٌ نسبي. فربما تُعتبر بضعة أسطر من التعليمات البرمجية بدون تفرعات نصًا برمجيًا. أما قاعدة التعليمات البرمجية المكونة من ملفات متعددة، والتي تُنفذ واجهة مستخدم أو جهاز متطورة، أو خوارزميات معقدة ، أو برمجة متعددة، فربما لا تُعتبر نصًا برمجيًا.

الأتمتة

عادةً ما يقوم البرنامج النصي بأتمتة مهمة كان من الممكن أن يقوم بها شخص بطريقة يدوية أكثر.

لغة محدودة

تتميز اللغات المصممة أساسًا لكتابة البرامج النصية بقدرات محدودة مقارنةً باللغات العامة. وقد تفتقر لغات البرمجة النصية إلى الوظائف اللازمة لكتابة تطبيقات معقدة.

يبدأ من الأعلى

عادةً، يبدأ تنفيذ البرنامج النصي من السطر الأول من التعليمات البرمجية، بينما يبدأ التطبيق عادةً من نقطة خاصة في التعليمات البرمجية تسمى نقطة الدخول .

على سبيل المثال، لا تُشبه لغة جافا لغة البرمجة النصية، إذ يبدأ التطبيق من الدالة المسماة، mainوالتي لا يشترط أن تكون في بداية الكود. يبدأ الكود التالي من الدالة المسماة main، ثم يستدعي الدالة printHelloWorldالتي تطبع "Hello World".

public class HelloWorld { public static void printHelloWorld () { System . out . println ( "Hello World" ); } public static void main ( String [] args ) { printHelloWorld (); } }

في المقابل، يقوم كود بايثون التالي بطباعة "Hello World" بدون mainالدالة أو أي صيغة أخرى مثل تعريف الفئة المطلوبة بواسطة جافا.

print ( "Hello World" )

مستخدم واحد

غالبًا ما يتم إنشاء البرامج النصية أو تعديلها بواسطة الشخص الذي يقوم بتنفيذها، [ 6 ] ولكن يتم توزيعها أيضًا في كثير من الأحيان، كما هو الحال عندما تتم كتابة أجزاء كبيرة من الألعاب بلغة برمجة نصية، ولا سيما لعبة جوجل كروم تي ريكس.

تاريخ

كانت الحواسيب المركزية المبكرة (في خمسينيات القرن العشرين) غير تفاعلية، وتستخدم بدلاً من ذلك المعالجة الدفعية . وتُعد لغة التحكم في الوظائف (JCL) من شركة IBM النموذج الأولي للغات المستخدمة للتحكم في المعالجة الدفعية. [ 7 ]

طُوِّرت أولى واجهات سطر الأوامر التفاعلية في ستينيات القرن العشرين لتمكين التشغيل عن بُعد لأنظمة المشاركة الزمنية الأولى ، وقد استخدمت هذه الواجهات نصوصًا برمجيةً تُسمى "نصوص سطر الأوامر "، والتي تتحكم في تشغيل برامج الحاسوب داخل برنامج حاسوبي آخر، وهو ما يُعرف بـ"واجهة سطر الأوامر". يُنسب الفضل عمومًا إلى كالفن مويرز، في لغته TRAC، في ابتكار استبدال الأوامر ، وهي القدرة على تضمين الأوامر في النصوص البرمجية التي، عند تفسيرها، تُدرج سلسلة نصية في النص البرمجي. [ 8 ] تُطلق لغة Multics على هذه الدوال اسم "الدوال النشطة " . [ 9 ] كتب لويس بوزين معالجًا مبكرًا لنصوص الأوامر يُسمى RUNCOM لنظام CTSS حوالي عام 1964. كتب ستيوارت مادنيك في معهد ماساتشوستس للتكنولوجيا لغة برمجة نصية لنظام CP/CMS من شركة IBM عام 1966. أطلق على هذا المعالج في البداية اسم COMMAND، ثم سُمي لاحقًا EXEC . [ 10 ] تضمنت لغة Multics فرعًا من CTSS RUNCOM، والذي يُسمى أيضًا RUNCOM. [ 11 ] استُبدلت لغة EXEC في النهاية بلغة EXEC 2 و Rexx .

صُممت لغات برمجة مثل Tcl و Lua خصيصًا كلغات برمجة نصية عامة الأغراض، قابلة للتضمين في أي تطبيق. كما وفرت لغات أخرى، مثل Visual Basic for Applications (VBA)، تكاملًا قويًا مع إمكانيات التشغيل الآلي للنظام الأساسي. وكان لتضمين هذه اللغات البرمجية العامة، بدلًا من تطوير لغة جديدة لكل تطبيق، فوائد واضحة، إذ أعفى مطور التطبيق من الحاجة إلى كتابة مترجم لغة من الصفر، ومكّن المستخدم من تطبيق المهارات المكتسبة في مجالات أخرى.

تتضمن بعض البرامج عدة لغات برمجة نصية مختلفة. توفر متصفحات الويب الحديثة عادةً لغة لكتابة إضافات للمتصفح نفسه، وعدة لغات مضمنة قياسية للتحكم في المتصفح، بما في ذلك جافا سكريبت (لهجة من ECMAScript ) أو XUL .

الأنواع

يمكن تصنيف لغات البرمجة النصية إلى عدة أنواع مختلفة، مع وجود درجة كبيرة من التداخل بين هذه الأنواع.

لغات الربط

غالبًا ما تُقارن البرمجة النصية ببرمجة الأنظمة ، كما في ثنائية أوسترهوت أو " البرمجة على نطاق واسع والبرمجة على نطاق ضيق ". من هذا المنظور، تُعدّ البرمجة النصية بمثابة لغة وسيطة تربط مكونات البرمجيات ، واللغة المتخصصة لهذا الغرض تُسمى لغة وسيطة . تُعدّ خطوط الأنابيب وبرمجة سطر الأوامر أمثلة نموذجية على اللغات الوسيطة، وقد طُوّرت لغة بيرل في البداية لتؤدي هذا الدور نفسه. يُمكن اعتبار تطوير الويب استخدامًا للغات الوسيطة، حيث تُشكّل واجهة بين قاعدة البيانات وخادم الويب . ولكن إذا كُتب قدر كبير من المنطق بلغة نصية، فمن الأنسب وصفه ببساطة بأنه مكون برمجي آخر، وليس "وسيطًا".

تُعد لغات الربط مفيدة بشكل خاص لكتابة وصيانة ما يلي:

  • أوامر مخصصة لواجهة سطر الأوامر؛ [ 12 ]
  • برامج أصغر من تلك التي يتم تنفيذها بشكل أفضل بلغة مترجمة؛ [ 13 ]
  • برامج "التغليف" للملفات التنفيذية، مثل ملف دفعي ينقل أو يعالج الملفات ويقوم بأشياء أخرى مع نظام التشغيل قبل أو بعد تشغيل تطبيق مثل معالج النصوص، أو جدول البيانات، أو قاعدة البيانات، أو المجمع، أو المترجم، وما إلى ذلك؛ [ 14 ]
  • النصوص التي قد تتغير؛ [ 15 ]
  • التطوير السريع لتطبيق حل يتم تنفيذه في النهاية بلغة أخرى، عادةً ما تكون لغة مُجمّعة.

أمثلة على لغة Glue:

يمكن للغات الماكرو المُتاحة لمكونات نظام التشغيل أو التطبيقات أن تعمل كلغات وسيطة. تشمل هذه اللغات: Visual Basic for Applications ، وWordBasic ، وLotusScript ، وCorelScript ، وHummingbird Basic، وQuickScript، وRexx، و SaxBasic ، وWinWrap Basic. كما يمكن اعتبار أدوات أخرى مثل AWK لغات وسيطة، بالإضافة إلى أي لغة مُطبقة بواسطة مُحرك Windows Script Host (مثل VBScript وJScript وVBA افتراضيًا في Windows، ومُحركات الطرف الثالث التي تتضمن تطبيقات Rexx، وPerl، وTcl، وPython، وXSLT، وRuby، وModern Pascal، و Delphi ، وC). تستطيع غالبية التطبيقات الوصول إلى مكونات نظام التشغيل واستخدامها عبر نماذج الكائنات أو وظائفها الخاصة.

قد تحتوي أجهزة أخرى، مثل الآلات الحاسبة القابلة للبرمجة، على لغات ربط؛ وقد توفر أنظمة تشغيل أجهزة المساعد الرقمي الشخصي، مثل Windows CE، أدوات ماكرو أصلية أو خارجية لربط التطبيقات ببعضها، بالإضافة إلى تطبيقات لغات الربط الشائعة، بما في ذلك Windows NT و DOS وبعض أنظمة Unix ، وRexx وModern Pascal وPHP وPerl. وبحسب إصدار نظام التشغيل، يتوفر كل من WSH ومحركات البرمجة النصية الافتراضية (VBScript وJScript).

يمكن برمجة الآلات الحاسبة القابلة للبرمجة باستخدام لغات الربط بثلاث طرق. على سبيل المثال، يمكن برمجة آلة Texas Instruments TI-92 ، افتراضيًا من المصنع، باستخدام لغة برمجة نصية. ويمكن اعتبار تضمين لغة Lua للبرمجة النصية ولغة الربط في سلسلة آلات TI-NSpire الحاسبة بمثابة امتداد لذلك. في كثير من الحالات، يمكن للغات البرمجة عالية المستوى المدمجة في معظم الآلات الحاسبة البيانية (غالبًا ما تكون مشتقات من لغة Basic، وأحيانًا مشتقات من لغة Lisp، وفي حالات أقل شيوعًا، مشتقات من لغة C) ربط وظائف الآلة الحاسبة معًا، مثل الرسوم البيانية والقوائم والمصفوفات، وما إلى ذلك. تتوفر تطبيقات خارجية لإصدارات أكثر شمولًا من لغة Basic، والتي قد تكون أقرب إلى اللغات المذكورة كلغات ربط في هذه المقالة، كما تم التطرق إلى محاولات لتطبيق لغات Perl وRexx، أو واجهات أنظمة تشغيل مختلفة، على الآلات الحاسبة البيانية من TI وHP. تتيح المترجمات المتقاطعة للغة C القائمة على أجهزة الكمبيوتر الشخصية لبعض أجهزة TI و HP المستخدمة مع الأدوات التي تحول بين C و Perl و Rexx و AWK و shell scripts إلى Perl و Modern Pascal و VBScript من وإلى Perl إمكانية كتابة برنامج بلغة وسيطة للتنفيذ النهائي (كبرنامج مترجم) على الآلة الحاسبة.

لغات المحرر

تدعم العديد من محررات النصوص وحدات الماكرو المكتوبة إما باستخدام لغة ماكرو مدمجة في المحرر نفسه، مثل محرر SemWare (TSE) أو محرر vi المحسن (VIM)، أو باستخدام تطبيق خارجي، مثل XEDIT ، أو كليهما، مثل KEDIT . أحيانًا تُستخدم محررات النصوص ووحدات الماكرو الخاصة بالتحرير في الخلفية لتوفير تطبيقات أخرى، مثل FILELIST وRDRLIST في أنظمة إدارة المحتوى (CMS ).

لغات التحكم في الوظائف وأصداف النظام

نشأت فئة رئيسية من لغات البرمجة النصية من أتمتة التحكم في العمليات ، والتي تتعلق ببدء برامج النظام والتحكم في سلوكها [ 16 ] (بهذا المعنى، يمكن اعتبار الصدف امتدادًا للغة التحكم في العمليات (JCL) من شركة IBM ، والتي استُخدمت لهذا الغرض تحديدًا). ​​وتعمل العديد من مترجمات هذه اللغات كمترجمات سطر أوامر ، مثل صدفة يونكس أو نظام التشغيل MS-DOS COMMAND.COM. بينما توفر لغات أخرى، مثل AppleScript، إمكانية استخدام أوامر شبيهة باللغة الإنجليزية لإنشاء البرامج النصية.

برمجة واجهة المستخدم الرسومية

مع ظهور واجهات المستخدم الرسومية ، برز نوع متخصص من لغات البرمجة النصية للتحكم في الحاسوب. تتفاعل هذه اللغات مع نفس النوافذ الرسومية والقوائم والأزرار، وما إلى ذلك، التي يتفاعل معها المستخدم البشري، وذلك عن طريق محاكاة تصرفاته. تُستخدم هذه اللغات عادةً لأتمتة تصرفات المستخدم. وتُسمى هذه اللغات أيضًا بـ "الماكرو" عندما يتم التحكم من خلال محاكاة ضغطات المفاتيح أو نقرات الماوس، أو النقر أو الضغط على شاشة تعمل باللمس.

من حيث المبدأ، يمكن استخدام هذه اللغات للتحكم في أي تطبيق بواجهة مستخدم رسومية، ولكن عمليًا، استخدامها محدود لأنها تتطلب دعمًا من التطبيق ونظام التشغيل . وهناك بعض الاستثناءات لهذه القيود. فبعض لغات برمجة واجهة المستخدم الرسومية تعتمد على التعرف على العناصر الرسومية من خلال وحدات البكسل الخاصة بها على شاشة العرض . ولا تعتمد هذه اللغات على دعم من نظام التشغيل أو التطبيق.

عندما توفر واجهة المستخدم الرسومية الواجهات المناسبة، كما هو الحال في IBM Workplace Shell ، يمكن استخدام لغة برمجة نصية عامة، على سبيل المثال، Object REXX ، لكتابة نصوص واجهة المستخدم الرسومية.

لغات خاصة بالتطبيقات

يمكن تقسيم لغات البرمجة الخاصة بالتطبيقات إلى فئات عديدة، منها لغات التطبيقات المستقلة (القابلة للتنفيذ) ولغات البرمجة الداخلية الخاصة بالتطبيقات (مثل PostScript و XML وgscript، وهي بعض لغات البرمجة واسعة الانتشار التي طورتها شركات مثل Adobe و Microsoft و Google على التوالي ). وتشمل هذه اللغات لغة برمجة نصية مصممة خصيصًا لتلبية احتياجات مستخدم التطبيق. وبالمثل، تستخدم العديد من أنظمة ألعاب الكمبيوتر لغة برمجة نصية مخصصة للتعبير عن الإجراءات المبرمجة للشخصيات غير القابلة للعب وبيئة اللعبة. صُممت هذه اللغات لتطبيق واحد؛ ورغم أنها قد تشبه ظاهريًا لغة برمجة عامة الأغراض (مثل QuakeC ، المستوحاة من لغة C)، إلا أنها تتميز بخصائص فريدة تميزها. فعلى سبيل المثال، تحتوي Emacs Lisp ، وهي لهجة كاملة من لغة Lisp ، على العديد من الميزات الخاصة التي تجعلها مفيدة للغاية لتوسيع وظائف التحرير في Emacs. ويمكن اعتبار لغة البرمجة النصية الخاصة بالتطبيقات لغة برمجة متخصصة في مجال معين، مصممة خصيصًا لتطبيق واحد.

لغات قابلة للتوسيع/التضمين

صُممت العديد من لغات البرمجة لغرض استبدال لغات البرمجة النصية الخاصة بالتطبيقات، وذلك من خلال إمكانية تضمينها في برامج التطبيقات. يقوم مبرمج التطبيق (الذي يعمل بلغة C أو أي لغة أنظمة أخرى) بتضمين "نقاط ربط" تُمكّن لغة البرمجة النصية من التحكم في التطبيق. قد تكون هذه اللغات مكافئة تقنيًا للغة امتداد خاصة بالتطبيق، ولكن عندما يُضمّن التطبيق لغة "عامة"، يحصل المستخدم على ميزة نقل المهارات من تطبيق إلى آخر. ويتمثل البديل الأكثر عمومية في توفير مكتبة (غالبًا مكتبة C) يمكن للغة برمجة عامة استخدامها للتحكم في التطبيق، دون الحاجة إلى تعديل اللغة لتناسب المجال المحدد.

بدأت لغة جافا سكريبت، ولا تزال في الغالب، كلغة برمجة نصية داخل متصفحات الويب . ومع ذلك، فقد ساهم توحيد اللغة تحت مسمى ECMAScript في انتشارها كلغة برمجة عامة الأغراض قابلة للتضمين. وتُستخدم مكتبة SpiderMonkey، التي طورتها موزيلا ، في العديد من البيئات، مثل محرك أدوات ياهو ، وفي تطبيقات مثل منتجات أدوبي، مثل فلاش ( ActionScript ) وأكروبات (لبرمجة ملفات PDF ).

تم إنشاء لغة Tcl كلغة إضافية، ولكنها أصبحت تُستخدم بشكل متزايد كلغة عامة الأغراض في أدوار مشابهة للغات Python و Perl و Ruby . في المقابل، تم إنشاء لغة Rexx كلغة للتحكم في العمليات، ولكنها تُستخدم على نطاق واسع كلغة إضافية ولغة عامة الأغراض. تُعد Perl لغة عامة الأغراض، ولكنها كانت تحتوي على لهجة Oraperl (1990)، والتي تتكون من ملف تنفيذي لـ Perl 4 مُدمج به واجهة استدعاء Oracle . ومع ذلك، فقد تم استبدالها لاحقًا بمكتبة (وحدة Perl)، DBD::Oracle . [ 17 ] [ 18 ]

قد تتضمن التطبيقات الأخرى المعقدة والموجهة نحو المهام لغة برمجة مضمنة وتتيحها للمستخدمين، مما يمنحهم مزيدًا من التحكم ووظائف أكثر مما هو متاح عبر واجهة المستخدم، مهما بلغت درجة تطورها. على سبيل المثال، تتضمن أدوات تأليف الرسومات ثلاثية الأبعاد من Autodesk Maya لغة Maya المضمنة ، أو يستخدم Blender لغة Python لهذا الغرض.

تستخدم بعض أنواع التطبيقات الأخرى التي تتطلب إضافة ميزات أسرع أو دورات تعديل وتشغيل متكررة (مثل محركات الألعاب ) لغة برمجة مضمنة. أثناء التطوير، يتيح ذلك تصميم نماذج أولية للميزات بسرعة أكبر وتعديلها بحرية أكبر، دون الحاجة إلى معرفة المستخدم الدقيقة بآليات عمل التطبيق أو إعادة بنائه بعد كل تعديل (وهو ما قد يستغرق وقتًا طويلاً). تتراوح لغات البرمجة النصية المستخدمة لهذا الغرض من لغات مثل Lua و Python الأكثر شيوعًا وشهرة إلى لغات أقل شهرة مثل AngelScript و Squirrel .

انظر أيضاً

مراجع

  1. "مواصفات لغة ECMAScript 2019" . إيكما الدولية . تم الاطلاع عليه بتاريخ 2018-04-02 .
  2. "JBang" . jbang.dev . تم الاطلاع عليه بتاريخ 11 سبتمبر 2025 .
  3. شيبارد، دوغ (16-10-2000). "مقدمة للمبتدئين في لغة بيرل" . Perl.com . تم الاطلاع عليه بتاريخ 8-1-2011 .
  4. وول، لاري (12 ديسمبر 2007). "البرمجة صعبة، فلنبدأ بكتابة البرامج النصية" . Perl.com . مؤرشف من الأصل في 8 ديسمبر 2023.
  5. براون، فيكي؛ مورين، ريتش (1999). "لغات البرمجة النصية" . ماك تك . تم الاسترجاع في 22 يوليو 2009 .
  6. لوي، رونالد. "في مدح البرمجة النصية: براغماتية البرمجة الحقيقية" . مجلة IEEE Computer. مؤرشف من الأصل بتاريخ 23 سبتمبر 2015. تم الاطلاع عليه بتاريخ 27 أغسطس 2013 .
  7. شركة آي بي إم (مارس 1967). لغة التحكم في وظائف نظام التشغيل IBM System/360 (C28-6529-4) (ملف PDF) . مؤرشف (ملف PDF) من الأصل في 25 مايو 2023 عبر bitsavers.
  8. مويرز، كالفن (1965). "TRAC، لغة وصف الإجراءات للآلة الكاتبة التفاعلية" . مؤسسة TRAC . مؤرشف من الأصل بتاريخ 25 أبريل 2001. تم الاطلاع عليه بتاريخ 9 مارس 2012 .
  9. فان فليك، توماس (محرر). "مسرد المصطلحات المتعددة - أ - (الدالة الفعالة)" . Multics . تم الاطلاع عليه في 9 مارس 2012 .
  10. فاريان، ميليندا (أبريل 1991). "VM ومجتمع VM: الماضي والحاضر والمستقبل" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 6 أكتوبر 2011. تم الاطلاع عليه في 9 مارس 2012 .
  11. فان فليك، توماس (محرر). "مسرد المصطلحات المتعددة - R — (RUNCOM)" . تم الاطلاع عليه في 9 مارس 2012 .
  12. "ما هو كود الربط (لغة كود الربط)؟ - تعريف من موقع WhatIs.com" . WhatIs.com . تم الاطلاع عليه بتاريخ 31 يناير 2022 .
  13. لارسون، كوينسي (10 يناير 2020). "لغات البرمجة المفسرة مقابل لغات البرمجة المترجمة" . فري كود كامب . تم الاطلاع عليه بتاريخ 23 فبراير 2022 .
  14. بلقيس، أنطون. "سيناريو عدالة" . نصائح رجا . تم الاسترجاع في 23 فبراير 2022 .
  15. أكسلسون، ماتس. "برامج نصية شل - ما الذي يمكنك تغييره" . تلميح لينكس . تم الاسترجاع في 23 فبراير 2022 .
  16. "أساسيات التحكم في المهام (دليل مرجعي لباش)" . جنو . تم الاسترجاع في 2022-05-20 .
  17. " Oraperl - [ وصول Perl القديم إلى قواعد بيانات Oracle لبرامج oraperl القديمة]", metacpan.
  18. " Perl الأسئلة الشائعة حول Underground Oracle .
  19. فان روسوم، غيدو (6-8 يناير 1998). "اجمع كل شيء معًا باستخدام بايثون" . Python.org. مؤرشف من الأصل في 19 يناير 2024.

للمزيد من القراءة

  • بارون، ديفيد ويليام (2001). عالم لغات البرمجة النصية . وايلي. ISBN 0-471-99886-9.