فرعون
فارو هو تطبيق متعدد المنصات للغة البرمجة الكلاسيكية Smalltalk -80 ونظام تشغيلها . [ 3 ] وهو مبني على الآلة الافتراضية OpenSmalltalk المسماة Cog، [ 4 ] [ 5 ] [ 6 ] [ 7 ] : 16، والتي تُقيّم لغة برمجة ديناميكية، انعكاسية ، وموجهة للكائنات، ذات بنية نحوية تُشبه إلى حد كبير Smalltalk-80 . وهو برنامج مجاني ومفتوح المصدر ، مُرخص بموجب مزيج من تراخيص MIT و Apache 2.
يُشحن برنامج فارو مع شفرة المصدر مُجمّعة في صورة نظام تحتوي على جميع البرامج اللازمة لتشغيله. [ 7 ] : 16 وكما هو الحال في لغة سمول توك-80 الأصلية، يوفر فارو العديد من ميزات البرمجة المباشرة ، مثل التلاعب الفوري بالكائنات، والتحديثات المباشرة ، والتجميع الفوري (JIT). تتضمن صورة النظام بيئة تطوير متكاملة (IDE) لتعديل مكوناته.
تم اشتقاق Pharo من Squeak v3.9 في مارس 2008. [ 8 ] [ 3 ] [ 7 ] [ 7 ] : 10 [ 9 ]
ملخص
فارو هي لغة برمجة كائنية التوجه، ديناميكية الكتابة، وانعكاسية. والهدف المعلن للمشروع هو إعادة النظر في تصميم سمول توك وتحسينه.
اسم "فارو" مشتق من الكلمة الفرنسية "phare" ( تُنطق بالفرنسية: [ faʁ ] )، والتي تعني منارة . ولهذا السبب، يظهر شعار "فارو" رسمًا لمنارة داخل الحرف الأخير "O" من الاسم.
الميزات الرئيسية
آلة افتراضية
- آلة افتراضية متعددة المنصات مع تجميع فوري (JIT)، وجامع قمامة جيلي مدمج ، ووحدات مؤقتة ، وموجهات
- تعداد سريع للأشياء
- سهولة التعامل مع مكدس الاستدعاءات
- روابط AST المعدنية
- استهلاك منخفض نسبياً للذاكرة
- مُترجم قابل للتخصيص
- استمرارية ذاكرة الكائن الكاملة اختيارية
- الاستثناءات القابلة للاستئناف
- تسلسل سريع للكائنات
البرامج المدمجة
- دمج اختياري للبرنامج المطوّر وبيئة التطوير
- فحص الأجسام الحية
خصائص اللغة
- بناء جملة بسيط
- البرمجة الكائنية التوجه
- تبديل هوية الكائن المباشر
- الوراثة الديناميكية
- الكائنات كطرق
- خيوط خضراء اختيارية
- فئات تعريفية قابلة للتخصيص
- كائنات وسيطة سهلة الاستخدام
علاقتها بـ Smalltalk
تعتمد لغة فارو على مفاهيم عامة من لغة سمول توك، لكنها تسعى إلى تطويرها، لذا فهي لا تقتصر عليها. يتشابه التركيب النحوي الأساسي للغة إلى حد كبير مع سمول توك. ومع ذلك، تختلف طريقة تعريف الفئات في فارو عن لهجات سمول توك الأخرى .
بناء الجملة اللغوية

تعتمد صيغة لغة فارو على صيغة لغة سمول توك-80 مع العديد من الإضافات. بعض هذه الإضافات شائعة بين لهجات سمول توك الحديثة.
- القيم الحرفية للمصفوفات الديناميكية . يتم تقييم التعبيرات التي تحدد محتوى المصفوفة أثناء تنفيذ البرنامج.
{ 1 . 2 . 1 + 2 } - القيم الحرفية لمصفوفات البايت التي يمكن أن تتكون فقط من أعداد صحيحة في النطاق من 0 إلى 255
#[1 2 3 4] - القيم الحرفية للأعداد العشرية المُقاسة، وهي تمثيل للأعداد العشرية ذات الفاصلة الثابتة القادرة على تمثيل الكسور العشرية بدقة.
3.14 ثانية 2- التعليمات البرمجية (pragmas). في لغة Smalltalk-80، تُستخدم التعليمات البرمجية فقط للطرق الأساسية. أما في لغة Pharo، فهي عبارة عن تعليقات توضيحية كاملة للطرق.
< gtInspectorPresentationOrder: 30> - يتم تفسير علامتي اقتباس مزدوجتين داخل التعليق على أنهما علامة اقتباس مزدوجة واحدة تشكل جزءًا من محتوى التعليق.
يُفترض أن تكون قواعد لغة فارو بسيطة للغاية ومختصرة. غالبًا ما تُعرض العناصر الأساسية للغة على بطاقة بريدية واحدة كدليل على إيجازها. تُصنف قواعدها النحوية ضمن فئة LL(1) .
لا تحدد قواعد اللغة بشكل مباشر كيفية تخزين الكود في الملفات. يستخدم فارو تنسيق Tonel كصيغة تسلسل الكود المفضلة.
تاريخ

ظهرت فارو كنسخة معدلة من سكويك ، وهي بيئة سمول توك مفتوحة المصدر أنشأها فريق سمول توك-80 الأصلي ( دان إنجلز وآلان كاي ). أنشأ فارو إس. دوكاس.و م. دينكر في مارس 2008. ويركز على هندسة البرمجيات الحديثة وتقنيات التطوير. ويتلقى برنامج فارو الدعم من اتحاد فارو (للكيانات القانونية).وجمعية فارو للأشخاص الطبيعيين.
| إصدار فارو | تاريخ الافراج عنه | الميزات الرئيسية |
|---|---|---|
| 16 مارس 2008 [ 10 ] | بيئة فورك أوف سكويك | |
| 1.0 | 15 أبريل 2010 | تمت إزالة عمليات الإغلاق الحقيقية ، والألعاب الإلكترونية، ومركبات الطرق الوعرة. |
| 1.1 | 26 يوليو 2010 | Cog JIT VM، إطار عمل الإعدادات |
| 1.2 | 29 مارس 2011 | أداة Finder جديدة، أداة التغييرات الأخيرة، مساعدة محسّنة، سمات أفضل |
| 1.3 | أغسطس 2011 | الزنك، صور بدون رأس |
| 1.4 | أبريل 2012 [ 11 ] | نموذج الحلقة الفوقي، محاكي كود أفضل |
| 2.0 | 18 مارس 2013 [ 12 ] | تحسينات المتصفح، أدوات ضمان الجودة، مُسلسل Fuel، واجهة برمجة تطبيقات ملفات محسّنة |
| 3.0 | أبريل 2014 [ 13 ] | مُترجم معياري جديد (أوبال) ومصحح أخطاء، استمراريات |
| 4.0 | أبريل 2015 [ 14 ] | أدوات جوجل، الفتحات |
| 5.0 | مايو 2016 [ 15 ] | Spur VM، UFFI، انعكاسية محسنة |
| 6.0 | 6 يونيو 2017 [ 16 ] | دعم 64 بت و Git |
| 6.1 | 24 يوليو 2017 [ 17 ] | دعم مُحسّن لـ Git |
| 7.0 | 22 يناير 2019 [ 18 ] | التمهيد، متصفح التعليمات البرمجية الجديد (Calypso)، السمات ذات الحالة |
| 8.0 | 20 يناير 2020 [ 19 ] | تحسين دعم Git والاختبار وإعادة هيكلة التعليمات البرمجية ونظام التشغيل Windows |
| 9.0 | 15 يوليو 2021 [ 20 ] | دعم GTK3، مصحح أخطاء ومفتش يركز على الكائنات، عمليات إعادة هيكلة، آلات افتراضية رسمية من ARM |
| 10.0 | 5 أبريل 2022 [ 21 ] | عمليات تنظيف، وتجزئة إلى وحدات، والعديد من الأدوات المعاد كتابتها وتحسينها |
| 11.0 | 11 مايو 2023 [ 22 ] | المتغيرات المؤقتة، وSIMD ، وإغلاقات أكثر كفاءة، وأدوات محسّنة |
| 12.0 | 26 مايو 2024 [ 23 ] | نظام جديد لنقاط تصحيح الأخطاء، تعريفات جديدة للفئات، مساحة دائمة |
| أحدث إصدار: 13.0 | 21 مايو 2025 [ 24 ] | دعم الشاشات عالية الدقة، واجهة مستخدم قابلة للتكبير، متصفح عمليات جديد، مدير نوافذ عضوي، إدخال/إخراج غير متزامن باستخدام epoll على أنظمة يونكس |
| أحدث إصدار: 13.1 | 26 يونيو 2025 [ 25 ] | تم دمج التحسينات منذ الإصدار 13.0 |
استخدام فارو
الشركات والاستشاريون
تستخدم بعض الشركات برنامج فارو في مشاريعها التطويرية. [ 26 ] وعلى وجه الخصوص، تستخدم ما يلي:
- Seaside لتطوير مواقع الويب الديناميكية [ 27 ]
- الزنك لبنى الخوادم [ 28 ]
- Moose [ 29 ] لتحليل البيانات والبرامج من جميع لغات البرمجة
- مكتبات رسومية لواجهات المستخدم المتطورة
- Roassal لعرض البيانات [ 30 ]
تم إنشاء اتحاد فارو [ 31 ] للشركات الراغبة في دعم مشروع فارو. أما جمعية فارو [ 32 ] فقد تأسست عام 2011 [ 33 ] للمستخدمين الراغبين في دعم المشروع.
الأداء والآلة الافتراضية (VM)
يعتمد برنامج فارو على آلة افتراضية مكتوبة بالكامل تقريبًا بلغة سمول توك. ابتداءً من عام 2008، تم تطوير آلة افتراضية جديدة (كوج) لبرامج سكويك وفارو ونيوزبيك، والتي تُؤدي أداءً يُقارب أداء أسرع آلة افتراضية مكتوبة بلغة سمول توك. [ 34 ] في عامي 2014 و2015، كان مجتمع تطوير الآلات الافتراضية يعمل على برنامج سبير، وهو مدير ذاكرة جديد لبرنامج كوج، والذي من شأنه أن يُحسّن الأداء ويُوفر دعمًا أفضل للآلات الافتراضية ذات 64 بت. [ 35 ]
انظر أيضاً
مراجع
- ↑ "الإصدار 13.1.0" . 26 يونيو 2025. تم الاطلاع عليه في 17 يوليو 2025 .
- ↑ معلومات ترخيص فارو
- 1 2 بلاك، أندرو ب.؛ دوكاس، ستيفان؛ نيرستراز، أوسكار؛ بوليت، داميان؛ كاسو، داميان؛ دنكر ، ماركوس (28 أكتوبر 2009). فارو بالقدوة . كيهرساتز، سويسرا. رقم ISBN 978-3-9523341-4-0. OCLC 957555627 .
{{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط ) - ↑ "OpenSmalltalk" . opensmalltalk.org . تم الاطلاع عليه بتاريخ 24 نوفمبر 2021 .
- ↑ OpenSmalltalk/opensmalltalk-vm ، OpenSmalltalk، 23 نوفمبر 2021 ، تم الاطلاع عليه في 24 نوفمبر 2021
- ↑ "مدونة Cog: حول Cog" . تم الاطلاع عليها بتاريخ 24 نوفمبر 2021 .
- 1 2 3 4 بلاك، أندرو ب.؛ دوكاس، ستيفان؛ نيرستراز، أوسكار؛ بوليت ، داميان (28 أكتوبر 2009). فارو على سبيل المثال . صموئيل موريلو. لولو.كوم. رقم ISBN 978-3-9523341-4-0.
- ↑ "DevelopOnTheWeb" . developontheweb.co.uk . تم الاطلاع عليه بتاريخ 24 نوفمبر 2021 .
- ↑ "صعود وسقوط المحادثات التجارية القصيرة" . www.wirfs-brock.com . تم الاطلاع عليه بتاريخ 24 نوفمبر 2021 .
- ↑ "مشروع فارو يُمنح 10 سنوات" . Pharo-project.org. 29 مايو 2018. تم الاطلاع عليه في 31 مايو 2018 .
- ↑ "فارو مفتوح المصدر سمول توك - الإصدار 1.4" . Pharo-project.org. 17 أبريل 2012. مؤرشف من الأصل في 29 مارس 2014. تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ "فارو مفتوح المصدر سمول توك - الإصدار 2.0" . Pharo-project.org. 18 مارس 2013. مؤرشف من الأصل في 29 مارس 2014. تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ "فارو مفتوح المصدر سمول توك - الإصدار 3.0" . pharo.org. 30 أبريل 2014. مؤرشف من الأصل في 23 أغسطس 2017. تم الاطلاع عليه في 1 مايو 2014 .
- ↑ "فارو مفتوح المصدر سمول توك - الإصدار 4.0" . pharo.org. 15 أبريل 2015. مؤرشف من الأصل في 23 أغسطس 2017. تم الاطلاع عليه في 16 أبريل 2015 .
- ↑ "فارو مفتوح المصدر سمول توك - الإصدار 5.0" . pharo.org. 12 مايو 2016. مؤرشف من الأصل في 29 ديسمبر 2017. تم الاطلاع عليه في 13 مايو 2016 .
- ↑ "فارو مفتوح المصدر سمول توك - الإصدار 6.0" . pharo.org. 6 يونيو 2017. مؤرشف من الأصل في 20 نوفمبر 2017. تم الاطلاع عليه في 6 يونيو 2017 .
- ↑ "إصدار فارو 6.1" . pharo.org. 24 يوليو 2017. مؤرشف من الأصل في 20 أغسطس 2017. تم الاطلاع عليه في 11 أغسطس 2017 .
- ↑ "إصدار Pharo 7.0" . pharo.org. 22 يناير 2019. مؤرشف من الأصل في 12 فبراير 2022. تم الاطلاع عليه في 22 يناير 2019 .
- ↑ "إصدار فارو 8.0!" pharo.org. 20 يناير 2020. مؤرشف من الأصل في 12 فبراير 2022. تم الاطلاع عليه في 20 يناير 2020 .
- ↑ "تم إصدار Pharo 9.0!" pharo.org. 15 يوليو 2021.
- ↑ "تم إصدار Pharo 10.0!" pharo.org. 5 أبريل 2022.
- ↑ "تم إصدار Pharo 11.0!" pharo.org. 11 مايو 2023.
- ↑ "تم إصدار Pharo 12.0!" pharo.org. 26 مايو 2024.
- ↑ "تم إصدار Pharo 13.0!" pharo.org. 21 مايو 2025.
- ↑ "تم إصدار Pharo 13.1!" pharo.org. 26 يونيو 2025.
- ↑ "فارو مفتوح المصدر سمول توك - قصص نجاح" (بيان صحفي). Pharo-project.org . تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ "الصفحة الرئيسية" . seaside.st. ١٨ مارس ٢٠٠٧. تم الاطلاع عليه في ٥ أبريل ٢٠١٣ .
- ↑ "مكونات بروتوكول HTTP من Zinc" . Zn.stfx.eu. تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ جيربا، تيودور. "المنزل" . تكنولوجيا موس . تم الاسترجاع في 5 أبريل 2013 .
- ↑ "التصور الرشيق" . ملف تعريف الكائن . تم الاسترجاع في 31 مايو 2018 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "موقع الويب: اتحاد فارو" . Consortium.pharo.org. 31 مارس 2013. تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ دوكاس، ستيفان. "الرابطة: رابطة فارو" . Association.pharo.org . تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ "إعلان JOAFE رقم 1025 de la parution رقم 20110013 بتاريخ 26 مارس 2011" . جورنال-officiel.gouv.fr . تم الاسترجاع في 1 مايو 2022 .
- ↑ "مدونة Cog" . Mirandabanda.org . تم الاطلاع عليه في 5 أبريل 2013 .
- ↑ "ملخص من 7 نقاط لمدير ذاكرة Spur" . كليمنت بيرا. 6 فبراير 2014. تم الاطلاع عليه في 17 أبريل 2015 .
روابط خارجية
- لغات البرمجة
- لغات البرمجة الكائنية التوجه
- لغات البرمجة القائمة على الفئات
- لغات البرمجة ذات الكتابة الديناميكية
- عائلة لغات البرمجة سمول توك
- برامج مجانية متعددة المنصات
- مترجمات مجانية ومفتوحة المصدر
- لغات البرمجة التي تم إنشاؤها في عام 2008
- برنامج 2008
- برنامج مرخص بموجب ترخيص MIT
- برنامج يستخدم ترخيص أباتشي
