زبان برنامه نویسی Bloom
بلوم زبان برنامه نویسی نامنظمی برای جهان توزیع شده!
بلوم یک چارچوب زبانی است برای برنامه نویسی های بی نظم در سیستم های ابری بر اساس temporal logic ، eventual consistency و logical monotonicity
با توجه به اینکه از زبان بلوم در برنامه های توزیع شده استفاده می شود،لازم است در مورد این نوع برنامه ها موارد زیر را بدانیم :
تشریح یک برنامه توزیع شده :
- ما در یک برنامه توزیع شده موارد زیر را میبینیم :
- ارتباطات ، پیام ، ترتیب
- اداره کردن و بررسی رویداد
- همزمانی و هماهنگی
- تحمل خطای صریح
- در این نوع برنامه ها به دنبال چه هستیم؟
- صحت (ایمنی و زنده بودن و …)
- انطباق با مشخصات
- ویژگه عملکرد سطح بالا
Bloom and (Orders of Magnitude Berkeley) BOOM
بلوم : یک زبان اطلاعات محور و سطح بالا است که برای محاسبات توزیع شده طراحی شده است.
بلوم یک زبان از پروژه ی BOOM میباشد. بلوم طراحی شده برای پرهیز از عدم تطابق سنتی بین پلتفرم های توزیع شده و زبان های برنامه نویسی ترتیبی.
اهداف طراحی زبان بلوم :
- Familiar syntax (list comprehensions, callbacks)
- Integration with imperative languages
- Modularity, encapsulation, and composition
بلوم در حال توسعه (Bloom Under Development) : BUD
مدل عملیاتی بلوم به شکل زیر می باشد :
این مدل دارای سه بخش اصلی به شرح زیر می باشد :
Setup : scratches emptied, network messages placed in channels
logic: Bloom <= rules evaluated until fixpoint
transition: items derived by <+ and <- inserted/deleted from collections, items derived by <~ sent
قوانین بلوم :
Bloom Rule Syntax
برخی از ویژگی های زبان Bud
سیستم ماژول
- کپسوله و ترکیب از طریق mixin
- رابط چکیده و خلاصه
- پیاده سازی واقعی
نوشتن برنامه های توزیع شده در بلوم
اعلامیه ها و رابط های چکیده و خلاصه :
پیاده سازی واقعی :
مراجع :
۱. Declarative Distributed Programming with Dedalus and Bloom [Peter Alvaro, Neil Conway UC Berkeley
۲. Bloom: Using disorderly programming to build eventually-consistent distributed systems [Bill Marczak UC Berkeley]
۳. Cloud Programming: From Doom and Gloom to BOOM and Bloom [Peter Alvaro, Neil Conway ]
۴. Disorderly programming for a distributed world [Peter Alvaro UC Berkeley ]
۵. http://boom.cs.berkeley.edu/