سنوبول SNOBOL (اللغة الرمزية لمعالجة النصوص String Oriented Symbolic Language) هواسم لمجموعة من لغات برمجة الحاسوب التي ظهرت بين عامي 1962 و1967 في مختبرات بيل في إيه تي أند تي على يد ديفيد جي. فاربر ورالف إي. جريسولد وإيفان إي. بولونسكي توجتها ـسنوبول4. كانت سنوبول واحدة من لغات معالجة النصوص التي ظهرت بين الخمسينيات والستينيات التي كان من ضمنها كوميت COMIT وتراك TRAC. تتميز سنوبول4 عن معظم لغات البرمجة بوجود الأنماط patterns كنوع بيانات من الدرجة الأولى (نوع بيانات يمكن معالجة محتواه بكل الطرق الممكنة لأنواع البيانات الأخرى) ووجود معاملات operators لربطها والاختيار بينها. يمكن التعامل مع السلاسل النصية التي تنشأ أثناء التطبيق كبرامج ويمكن تطبيقها أيضا. كانت سنوبول4 تدرس في الكثير من كبرى الجامعات الأمريكية في أواخر الستينيات وأوائل السبعينيات وانتشر استخدامها في السبعينيات والثمانينيات في العلوم الإنسانية كلغة لمعالجة النصوص. ولكنها تراجعت في السنوات الأخيرة أمام اللغات الأحدث مثل أوك AWK وبيرل التي جعلت معالجة النصوص بواسطة التعابير النمطية أكثر رواجا. تصنف سنوبول4 ضمن اللغات التي تستخدم قواعدها صيغة باكوس نور –التي تكافئ قواعد اللغات الحرة context-free grammars وتتفوق على التعابير النمطية. تعتبر "التعابير النمطية" في الإصدارات الحالية من لغتي أوك وبيرك امتدادا للتعابير النمطية بالمعنى التقليدي، ولكن التعابير النمطية على عكس أنماط سنوبول4 ليست تكرارية وهوما يمنح انماط سنوبول4 ميزة حسابية. إلا حتى التعابير النمطية بلغة بيرل أصبحت تكرارية منذ الإصدار 5.1 (الذي صدر في ديسمبر 2007).

قام أحد مصممي سنوبول4 بتصميم لغات لتخلف سنوبول4 سماها إس إل5 وأيكون Icon –التي جمعت بين خاصية التعقب في مطابقة الأنماط من سنوبول4 والهيكلة القياسية من اللغات الخوارزمية – كما تفردت ببعض المزايا الخاصة.

تطورها

قام أصحاب لغة سنوبل الأصلية بعملها كآداة للتعامل مع السلاسل كثيرة الحدود، خطوها بلغة التجميع لتعمل على آي بي إم 7090. كانت قواعدها بسيطة، وبها نوع بيانات واحد – السلاسل – ولا تحتوي على دوال أوتعريفات وتحكمها بالخطأ محدود جدا، ولكن على الرغم من بساطتها و"خصوصيتها" فقد بدأت تنتشر إلى مجموعات أخرى، لذلك قرر مؤلفوها تطويرها وتنسيقها، فأعادوا كتابتها وأضافوا بعض الدوال – قياسية أومن تعريف المستخدم – وأصدروها تحت اسم سنوبول3، كان هناك سنوبول2 ولكنها كانت فترة وسطية قصيرة العمر لم تدعم دوال المستخدم ولم يتم إصدارها أبدا. لاقت سنوبول3 نجاحا كبيرا وأعيدت كتابتها لحواسيب أخرى غير آي بي إم 7090 على يد مبرمجين آخرين مما أدى إلى وجود عدد من الإصدارات الغير متوافقة. مع ازدياد نجاح سنوبول3 استمر مؤلفوها في تلقي طلبات متزايدة لتطويرها وشكاوي أيضا من عدم توافق وعيوب الإصدارات التي لم يقوموا بكتابتها، ولمعالجة هذا وللاستفادة من الحواسيب الجديدة التي ظهرت في الستينيات قرروا عمل سنوبول4 بإضافة الكثير من أنواع البيانات والمزايا ولكن باستخدام آلة افتراضية لتسهيل انتنطقها من حاسوب إلى آخر، ظل مترجم سنوبول4 مكتوبا بلغة التجميع، ولكنهم استخدموا مزايا الماكروفي المجمع لتعريف أوامر الآلة الافتراضية للغة تطبيق سنوبول SNOBOL Implementation Language (SIL) وأدى هذا إلى تحسن كبير في قابلية اللغة للانتنطق فقد جعل انتنطق الآلة الافتراضية التي تستضيف المترجم سهلا عن طريق إعادة بناء أوامرها الافتراضية على أي جهاز عليه مجمع ماكروأولغة برمجة عالية المستوى.

المزايا

سنوبول4 هي المثال الرابع والأخير في سلسلة من لغات البرمجة المختصة لمعالجة النصوص. قدم إصدار سنوبول4 عددا من أنواع البيانات الجاهزة مثل الأعداد السليمة والأعداد الحقيقية محدودة الدقة والسلاسل والأنماط والمصفوفات Arrays والجداول (المصفوفات المرتبطة associative arrays)، كما حتى سنوبول4 مكنت المستخدم من تعريف أنواع بيانات ودوال جديدة. كانت إمكانية تعريف أنواع بيانات خاصة بالمبرمج خاصية متقدمة في هذا وقتها، كانت مماثلة لخاصية السجلات records التي ظهرت أولا في كوبول أخيرا في باسكال (لغة برمجة)). كل سطور أوامر Command line سنوبول بهذه الصياغة Label1 Subject Pattern = Object :(Goto Label2)، جميع الخانات الخمس اختيارية. بشكل عام يتم مطابقة subject بـالنمط pattern وإذا وجدت خانة object كان يتم استبدال الأجزاء التي تمت مطابقتها بـobject طبقا لقواعد معينة للاستبدال، goto يمكن حتىقد يكون أمر تفرع فوري أومشروط بنجاح أوفشل عملية مطابقة النمط. يمكن انقد يكون نمط سنوبول شديد البساطة أوبالغ التعقيد، فالنمط البسيط يمكن انقد يكون تعبير عن سلسلة نصية ("ABCD") أما المعقد فيمكن حتىقد يكون منظومة ضخمة تصف مثلا قواعد لغة برمجة بأكملها. يمكن كتابة مفسر لغة interpreter بسنوبول تقريبا بالكامل باستخدام التعبير الذي يمثله بصيغة باكوس نور مع بعض التغييرات، ويمكن ألا يزيد كود مجمع ماكروومفسر لعتاد نظري تماما عن بضع مئات من السطور وإضافة أمر حديث بسطر واحد. يمكن حتى تؤدي أنماط سنوبول المعقدة ما يعتبر آداؤه غير عملي أومحال عن طريق التعابير النمطية الأقل تعقيدا المستخدمة في أغلب لغات مطابقة الأنماط الأخرى. تأتي بعض هذه القوة مما يسمى بإضافات سبيتبول “SBITBOL extensions” (التي تستخدم من وقتها في جميع تطبيقات لغة سنوبول4 الأصلية) رغم أنه يمكن الوصول لنفس الآداء بدونها. بعض هذه القوة مصدرها الآثار الجانبية التي يمكن حتى إحداثها أثناء عملية مطابقة النمط ومن ضمنها الاحتفاظ بالكثير من النتائج المؤقتة للمطابقة وإمكانية تطبيق أي دالة من تعريف المبرمج لتقوم بأي معالجة مطلوبة وإمكانية التأثير في اتجاه عملية المطابقة الجارية أوحتى تغيير النمط نفسه أثناء العملية. يمكن حفظ الأنماط كأي نوع بيانات من الدرجة الأولى ويمكن ربطها واستخدامها بداخل أنماط أخرى واستخدامها بناء تعابير شديدة التعقيد، فيمكن مثلا كتابة نمط سنوبول4 لمطابقة "اسم تام وعنوان بريدي دولي" وهوما يستحيل تقريبا باستخدام التعابير النمطية. تستخدم عملية مطابقة النمط في سنوبول4 خوارزمية التعقب التي تشابه تلك المستخدمة في لغة البرمجة المنطقية برولوغ – التي تستخدم بنية مماثلة للنمط من خلال دي سي جي. تجعل هذه الخوارزمية استخدام سنوبول كلغة برمجة منطقية أسهل من أغلب اللغات الأخرى. تحتفظ سنوبول بالسلاسل في الكوم heap الذي يخضع لعملية جمع القمامة. تنافس سنوبول لغة إيه بي إل APL في تميزها في الصياغة وأسلوب البرمجة فكلاهما يختلف جذريا عن لغات البرمجة الإجرائية procedural languages "القياسية" مثل بيسيك وفورتران وسي (لغة برمجة)|سي]].

التطبيقات

التطبيق النموذجي كان على بي دي بي –عشرة PDP-10، واستخدم لدراسة المصرفات والقواعد الشكلية والذكاء الاصطناعي خاصة الترجمة الآلية والفهم الآلي للغات طبيعية. كان التطبيق الأصلي على آي بي إم 7090 IBM 7090 في مختبرات بيل. صممت سنوبول4 في الأساس بهدف سهولة الانتنطق، التطبيق الأول بدأ على آي بي إم 7094 ثم اكتمل على آي بي إم 360 عام 1967. تنقلت اللغة باستمرار بين الكثير من المنصات.

تطبق اللغة عادة كمفسر نظرا لصعوبة تطبيق بعض مزاياها عالية المستوى، ولكن هناك مصرف وهومصرف سبيتبول وبه جميع إمكانيات المفسر تقريبا. يأتي مصرف جنات للغة أيدا مع حزمة (GNAT.Spitbol) التي تطبق جميع قواعد معالجة السلاسل في سبيتبول، ويمكن مناداتها بداخل أي برنامج أيدا.

استخدم محرر الملفات بنظام ميتشيجان الطرفي لغة معالجة أنماط مستمدة من سنوبول4.

هناك الكثير من التطبيقات المتوفرة، ماكروسنوبول4 هوتطبيق مفتوح المصدر خطه فيل بودن يلغة السي وهوقادر على العمل على أي منصة تقريبا، وهومتاح على http://www.snobol4.org/. شركة كاتسبوCatspaw, Inc. تقدم تطبيق تجاري للغة سنوبول4 يعمل مع الكثير من المنصات مثل الدوس وماكنتوش وصن وآر إس\6000 وغيرها على http://www.snobol4.org/. أحد الإصدارات القديمة سنوبول4+ متوفر الآن مجانا من كاتسبو. سنوبول4 مينيسوتا سنوبول4 Minnesota SNOBOL4 الذي خطه فيكتورز بيرستيس هوتطبيق الحاسوب الشخصي الأقرب للإصدار الذي كان مستخدما على حاسب آي بي إم المركزي IBM mainframe (ويدعم حتى أمر FORMAT المستوحى من فورتران) وهومتاح مجانا أيضا على http://www.berstis.com/snobol4.htm.

برغم حتى سنوبول نفسها تفتقر لمزايا البرمجة المهيكلة يوجد أحد إصداراتها الذي يحتوي على هذه المزايا وهوسنوستورم Snostorm وظهر في كلية لندن الجامعية (UCL) بين 1982 و1984 وإصدار آخر خطه أندروكوينيج اسمه سنوكون Snocone.[1]

أضاف تطبيق سبيتبول أيضا عددا من المزايا - رغم عدم استخدام مصطلحات البرمجة المهيكلة التقليدية – التي يمكن استخدامها لتقديم الكثير من الإمكانيات التي تعتبر من إمكانيات "البرمجة المهيكلة"، أبرزها البنية المتداخلة if/then/else. أصبحت هذه المزايا من وقتها متوفرة في معظم تطبيقات سنوبول4 الأخيرة. بعد حتى ظل سبيتبول منتجا تجاريا لأعوام أصبح أخيرا مجانيا في أبريل 2009 ويخضع لرخصة جنوالعمومية.

التسمية

حسب كلام ديف فاربر, فقد "قرر هووجريزولد وبولونسكي تسميتها Symbolic EXpression Interpreter SEXI" كانت الأمور مستقرة حتى بدأت في إرسال أحد دفعات المهام لتجميع النظام كالعادة على بطاقة مهامي – التي كانت تسمى قياسيا بعملي واسمي - Sexi Farber فنظرت إحدى الفتيات إليها ونطقت "هذا ما تظنه أنت" بطريقة مضحكة. وهذا بين أننا نحتاج لاسم آخر فجلسنا وتحدثنا وشربنا القهوة وبعد وقت طويل نطق أحدهم – غالبا رالف – "فرصنا في إيجاد اسم معدومة we don’t have a Snowball chance in hell of finding a name” فصحنا جميعا "وجدناها سنوبول" ثم بدأنا في التفكير فيما يمكن حتى تشير إليه. بعض التفاسير للفظ سنوبول “SNOBOL” ‘String Oriented Symbolic Language’ أو(على طريقة إنسيالسم) ‘StriNg Oriented symBOLic Language’..

سنوبول وبايثون

بعد حتى عثر بعض مستخدمي لغة بايثون حتى استخدام التعابير النمطية مقيد تم عمل إضافة لبايثون تسمح باستخدام مطابقة النمط من سنوبول في برامج بايثون. الإضافة اسمها سنوبي SnoPy وخطها دون روزنبرج.

انظر أيضا

  • آيكون
  • ينيكون

المراجع

  1. ^ Gimpel, J. F. 1973. A theory of discrete patterns and their implementation in SNOBOL4. Commun. ACM 16, 2 (Feb. 1973), 91-100. DOI=http://doi.acm.org/10.1145/361952.361960
  2. ^ Dr. Dobb's | Good stuff for serious developers: Programming Tools, Code, C++, Java, HTML5, Cloud, Mobile, Testing نسخة محفوظة 02 مارس 2010 على مسقط واي باك مشين.
  3. ^ perlre - perldoc.perl.org نسخة محفوظة 15 مارس 2016 على مسقط واي باك مشين.
  4. ^ See Chapter 1 of The Macro Implementation of SNOBOL4
  5. ^ SNOBOL4 has been implemented using C to recreate the virtual machine instructions.
  6. ^ Introduction to the MTS file editor, University of Michigan Computing Center, 1986 نسخة محفوظةعشرة فبراير 2020 على مسقط واي باك مشين.
  7. ^ WORTH READING Wikipedia entry on SNOBOL -- the TRUE story NOT Wikipedias (Dave Farber, Interesting People mailing list, 26 December 2008) نسخة محفوظةعشرة فبراير 2020 على مسقط واي باك مشين.
  8. ^ Computers and the humanities 1:158, 1967.
  9. ^ Jack Belzer et al., eds., Encyclopedia of Computer Science and Technology, CRC Press, 1979, ISBN 0-8247-2263-9. 13:173 at Google Books نسخة محفوظةعشرة فبراير 2020 على مسقط واي باك مشين.
  10. ^ http://snopy.sourceforge.net/ SnoPy introduction
  11. ^ http://snopy.sourceforge.net/user-guide.html SnoPy user guide

قراءات إضافية

  • Emmer, Mark B. SNOBOL4+: The SNOBOL4 Language for the Personal Computer User. Englewood Cliffs, NJ: Prentice Hall, 1985 (ISBN 0-13-815119-9).
  • Gimpel, James F. Algorithms in SNOBOL4. New York: Wiley, 1976 (ISBN 0-471-30213-9); republished Salida, CO: Catspaw, 1986 (ISBN 0-939793-00-8).
  • Griswold, Ralph E. The Macro Implementation of SNOBOL4. San Francisco, CA: W. H. Freeman and Company, 1972 (ISBN 0-7167-0447-1).
  • Griswold, Ralph E., J. F. Poage, and I. P. Polonsky. The SNOBOL4 Programming Language. Englewood Cliffs, NJ: Prentice Hall, 1968 (ISBN 0-13-815373-6).
  • Griswold, Ralph E. String and List Processing in SNOBOL4: Techniques and Applications. Englewood Cliffs, NJ: Prentice Hall, 1975 (ISBN 0-13-853010-6).
  • Hockey, Susan M. Snobol Programming for the Humanities. New York: Clarendon Press; Oxford: Oxford University Press, 1985 (ISBN 0-19-824676-5).

وصلات خارجية

  • Catspaw, Inc. offers implementations of and support for SNOBOL4
  • سنوبول على مشروع الدليل المفتوح
  • Introduction to Snobol by James Ford
  • A sample program in SNOBOL
  • Oral history interview with Ralph E. Griswold—Griswold discusses development of SNOBOL Charles Babbage Institute, University of Minnesota, Minneapolis.
  • Charles Hall Collection on the SNOBOL Programming Language. Charles Babbage Institute, University of Minnesota, Minneapolis.
تاريخ النشر: 2020-06-02 02:04:53
التصنيفات: برمجيات 1962, برمجيات مكتوبة بلغة التجميع, لغات برمجة, لغات برمجة أنشئت في 1962, قالب أرشيف الإنترنت بوصلات واي باك, الصفحات التي تستخدم وصلات ISBN السحرية, صفحات بها بيانات ويكي بيانات, صفحات تستخدم خاصية P737, صفحات تستخدم خاصية P856, Articles with DMOZ links, صفحات تستخدم خاصية P244, بوابة تقنية المعلومات/مقالات متعلقة, بوابة برمجة الحاسوب/مقالات متعلقة, جميع المقالات التي تستخدم شريط بوابات

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

تسجيل 57 إصابة جديدة بـ(كوفيد-19) خلال الـ24 ساعة الماضية

المصدر: الأول - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-04-26 21:24:58
مستوى الصحة: 46% الأهمية: 64%

بايتاس .. بناء 11 مؤسسة سجنية جديدة للحد من ظاهرة الاكتظاظ

المصدر: موقع الدار - المغرب التصنيف: مجتمع
تاريخ الخبر: 2022-04-26 21:24:17
مستوى الصحة: 47% الأهمية: 56%

إطار في اتصالات الجزائر يتوج في مسابقة دولية شهيرة

المصدر: آخر ساعة - الجزائر التصنيف: سياسة
تاريخ الخبر: 2022-04-26 21:24:08
مستوى الصحة: 57% الأهمية: 62%

ضبط 19 مخالفًا قاموا بنقلهم الرمال وتجريف التربة في مكة وتبوك

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-04-26 21:24:59
مستوى الصحة: 51% الأهمية: 56%

البرلمان العربي يستنكر مخططات الاحتلال بتصفية «الأونروا»

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-04-26 21:25:01
مستوى الصحة: 57% الأهمية: 58%

تسجيل 57 إصابة جديدة بـ(كوفيد-19) خلال الـ24 ساعة الماضية

المصدر: الأول - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-04-26 21:24:56
مستوى الصحة: 49% الأهمية: 63%

كورونا: إصابة واحدة جديدة خلال 24 ساعة الأخيرة

المصدر: آخر ساعة - الجزائر التصنيف: سياسة
تاريخ الخبر: 2022-04-26 21:24:06
مستوى الصحة: 59% الأهمية: 50%

تحميل تطبيق المنصة العربية