rc (صدفة يونكس)

rc (اختصارًا لـ " تشغيل الأوامر ") هو مترجم أوامر سطر الأوامر لأنظمة التشغيل يونكس الإصدار 10 وبلان 9 من مختبرات بيل . يشبه rc نظام بورن شل ، لكن تركيبه أبسط نوعًا ما. ابتكره توم داف ، المعروف ببنية برمجة غير مألوفة في لغة سي (" جهاز داف "). [ 1 ]
يُعدّ نقل نسخة rc الأصلية إلى نظام يونكس جزءًا من الخطة 9 من User Space . كما تتوفر نسخة مُعاد كتابتها من rc لأنظمة التشغيل الشبيهة بيونكس بواسطة بايرون راكيتزيس، ولكنها تتضمن بعض التغييرات غير المتوافقة.
تستخدم لغة Rc هياكل تحكم شبيهة بلغة C بدلاً من هياكل ALGOL الموجودة في Bourne shell الأصلية ، باستثناء أنها تستخدم if notبنيةً بدلاً من elseفي التنفيذ الأصلي، بينما تستخدم elseفي تنفيذ بايرون راكيتزيس، ولديها حلقة تكرار شبيهة بحلقات Bourne forللتكرار على القوائم. في Rc، جميع المتغيرات عبارة عن قوائم من السلاسل النصية، مما يلغي الحاجة إلى بنيات مثل "$@". لا يتم إعادة تقسيم المتغيرات عند توسيعها. تم وصف اللغة في ورقة داف البحثية. [ 1 ]
التأثيرات
es
es (اختصارًا لـ "extensible shell") هو مترجم أوامر مفتوح المصدر يعمل من سطر الأوامر ، طوّره راكيتزيس وبول هار [ 2 ] ، ويستخدم بنية لغة برمجة نصية متأثرة بـ rc shell. [ 3 ] [ 4 ] وقد استند في الأصل إلى شفرة من نسخة بايرون راكيتزيس من rc لنظام يونكس. [ 5 ] [ 6 ]
تهدف لغة البرمجة Extensible Shell (es) إلى توفير لغة برمجة كاملة الوظائف كصدفة يونكس . [ 7 ] وتحقق ذلك من خلال تقديم "أجزاء البرنامج" بين قوسين كنوع بيانات جديد، والنطاق المعجمي عبر let ، وبعض التحسينات الطفيفة الأخرى. وقد جرى الجزء الأكبر من تطوير es في أوائل التسعينيات، بعد تقديم الصدفة في مؤتمر USENIX الشتوي عام 1993 في سان دييغو . [ 8 ] ويبدو أن الإصدارات الرسمية قد توقفت بعد الإصدار 0.9-beta-1 في عام 1997، [ 9 ] وتفتقر es إلى الميزات الموجودة في الصدفات الأكثر شيوعًا، مثل zsh و bash . [ 10 ] وتوجد نسخة معدلة مفتوحة المصدر من es نشطة اعتبارًا من عام 2019.es[ 11 ]
أمثلة
نص برمجي لفيلم بورن:
إذا كان [ hello = " $1 " ] ؛ فاطبع hello, world وإلا حالة $2 في 1 ) اطبع " $# " 'hey' "jude' $3 " ;; 2 ) اطبع ` date ` : " $* " : : " $@ " : ;; * ) اطبع why not 1 > & 2 esac for i in a b c ; do echo " $ i " done fiيتم التعبير عنها في rc على النحو التالي:
إذا كان (حوالي 1 دولار مرحباً) صدى مرحباً أيها العالم وإلا { switch($2) { الحالة 1 echo $#* 'hey' 'jude''s'^$3 الحالة الثانية echo `{date} :$"*: :$*: قضية * echo لماذا لا >[1=2] } for(i in abc) echo $i } يدعم Rc أيضًا المزيد من التوصيل الديناميكي:
a |[2] b # أنبوب فقط الخطأ القياسي من a إلى b — مكافئ لـ '{ a 2>&1 >&3 3>&- | b; } 3>&1' في Bourne shell [ 1 ] : إعادة توجيه الإدخال/الإخراج المتقدمة a <{b} <{c} # تصبح a {أنبوبًا مسمىً مع الإخراج القياسي لـ b} {أنبوبًا مسمىً مع الإخراج القياسي لـ c}، # والمعروفة باسم " استبدال العملية " [ 1 ] : تفرع خط الأنابيب
مراجع
- 1 2 3 4 داف، توم (1990). ""آر سي - ذا بلان 9 شل"" . cat-v . تم الاسترجاع في 2024-01-26 .
- ↑ فيشر، مانفريد م. (13 ديسمبر 1996). منظورات التحليل المكاني لنظم المعلومات الجغرافية . مطبعة سي آر سي. رقم ISBN 9780748403400.
- ↑ "صفحة دليل أوبونتو: es - واجهة سطر أوامر قابلة للتوسيع" . Manpages.ubuntu.com. 5 مارس 1992. مؤرشفة من الأصل في 24 فبراير 2014. تم الاطلاع عليها في 24 أغسطس 2012 .
- ↑ "Extensible Shell" . FOLDOC . تم الاسترجاع في 24-08-2012 .
- ↑ "أصداف متوفرة لنظام لينكس" . LUV. مؤرشف من الأصل بتاريخ 22-03-2012 . تم الاطلاع عليه بتاريخ 24-08-2012 .
- ↑ جونز، تيم. "تطور الصدف في لينكس" . آي بي إم . تم الاسترجاع في 14 مارس 2014 .
- ↑ "مجلة لينكس 12: ما هو جنو" . مؤرشف من الأصل بتاريخ 17 يناير 2013. تم الاطلاع عليه بتاريخ 24 أغسطس 2012 .
- ↑ Es: غلاف مع وظائف من الدرجة العليا من تأليف بايرون راكيتزيس، شركة NetApp ، وبول هار، شركة Adobe Systems ؛ مؤرشف في Archive.Org .
- ↑ https://web.archive.org/web/20230308211038/ftp://ftp.sys.utoronto.ca/pub/es/
- ↑ "اختلافات أوامر يونكس" . Faqs.org . تم الاطلاع عليه بتاريخ 24-08-2012 .
- ↑ هاجرتي، جيمس (13 مارس 2020). "wryun/es-shell: غلاف برمجي بوظائف من الرتبة العليا" . جيت هاب .
روابط خارجية
- - صفحة من دليل الخطة 9
- إعادة كتابة بايرون راكيتزيس لنظام يونكس على موقع GitHub ( تمت أرشفة المقالة بتاريخ 2013-10-05 في Wayback Machine )
- الموقع الرسمي
- rc23 فرع من rc بايرون
- أنظمة يونكس
- برامج نظام مجانية
- إنفيرنو (نظام التشغيل)
- الخطة 9 من مختبرات بيل
- لغات البرمجة الإجرائية
- لغات البرمجة التي تم إنشاؤها عام 1989
- لغات البرمجة النصية
- لغات البرمجة النصية
