أمبينت توك
AmbientTalk هي لغة برمجة تجريبية موزعة كائنية التوجه، طُوّرت في مختبر تكنولوجيا البرمجة بجامعة فريجي في بروكسل ، بلجيكا. تستهدف هذه اللغة بشكل أساسي كتابة البرامج التي تُنشر في شبكات الجوال المخصصة .
صُممت منصة AmbientTalk لتكون منصة تجريبية لاستكشاف ميزات لغوية جديدة أو مفاهيم برمجية مجردة، بهدف تسهيل بناء برامج تعمل على شبكات شديدة التقلب ذات اتصال متقطع وبنية تحتية محدودة. [ 1 ] وهي مُنفذة بلغة Java، مما يُتيح تفسيرها على منصات متنوعة، بما في ذلك Android . كما توفر مكتبة المفسر القياسية واجهة سلسة بين Java وكائنات AmbientTalk، تُعرف باسم التكافل.
تستند خصائص التزامن في اللغة ، والتي تشمل دعم المستقبلات وتزامن حلقة الأحداث، إلى نموذج الممثل ، وقد تأثرت بشكل كبير بلغة البرمجة E. أما خصائص البرمجة الكائنية في اللغة، فتستمد تأثيرها من لغات مثل Smalltalk (مثل إغلاقات الكتل، والرسائل المُعَلَّمة بالكلمات المفتاحية) و Self ( البرمجة القائمة على النماذج الأولية ، والسمات ، والتفويض).
مرحبا بالعالم
system.println("Hello world");لا يُعدّ برنامج "Hello, World!" الكلاسيكي مثالاً دقيقاً لخصائص اللغة. مع ذلك، لننظر إلى نسخته الموزعة:
/* تعريف الأنواع التي يمكن اكتشافها على الشبكة */ deftype Greeter ;def makeGreeter ( myName ) { /* إنشاء ممثل */ actor: { /* للممثلين مساحة اسم منفصلة، قم بتضمين وظائف اللغة المستقبلية فيها */ import /. at.lang. futures ;/* دالة يمكن استدعاؤها بواسطة مُرحِّبين آخرين */ def getName (){ myName };/* تصدير هذا الكائن على الشبكة */ export: self as: Greeter ; /* المنطق الرئيسي: إذا اكتشفنا كائن Greeter آخر ... */ when: Greeter discovery: {| other | /* الحصول على اسمه بشكل غير متزامن، وتحيته */ when: other <- getName () @FutureMessage comes: {| name | system . println ( "Hello " + name + " from " + myName ); }; } ; } ; };/* إنشاء شخصيتين لتحية بعضهما البعض */ makeGreeter ( "Alice" ); makeGreeter ( "Bob" );مراجع
- ↑ Dedecker J.، Van Cutsem T.، Mostinckx S.، D'Hondt T.، De Meuter W. البرمجة الموجهة نحو المحيط في AmbientTalk. في "وقائع المؤتمر الأوروبي العشرين حول البرمجة الشيئية (ECOOP)، ديف توماس (محرر)، ملاحظات محاضرة في علوم الكمبيوتر المجلد 4067، الصفحات من 230 إلى 254، Springer-Verlag. "، 2006
روابط خارجية
- لغات البرمجة الديناميكية
- لغات البرمجة التجريبية
- لغات البرمجة القائمة على الكائنات
- لغات البرمجة القائمة على النماذج الأولية
- لغات البرمجة المتزامنة
