زبان برنامه نویسی Flow9 متن باز

شرکت منطقه 9 باز شد کدهای منبع زبان برنامه نویسی کاربردی جریان 9، بر ایجاد رابط های کاربری متمرکز شده است. کدهای زبان Flow9 را می‌توان در فایل‌های اجرایی برای لینوکس، iOS، اندروید، ویندوز و macOS کامپایل کرد و به برنامه‌های کاربردی وب در HTML5/JavaScript (WebAssembly) یا متن‌های منبع در Java، D، Lisp، ML و C++ ترجمه کرد. کد کامپایلر باز کن تحت مجوز GPLv2 و کتابخانه استاندارد تحت مجوز MIT مجوز دارد.

این زبان از سال 2010 به عنوان یک جایگزین جهانی و چند پلتفرمی برای Adobe Flash در حال توسعه است. Flow9 به عنوان یک پلتفرم برای ایجاد رابط های گرافیکی مدرن است که می تواند هم برای وب و هم برای برنامه های دسکتاپ و تلفن همراه استفاده شود. این پروژه در بسیاری از پروژه های داخلی Area9 استفاده می شود و در ابتدا Flow نام داشت، اما قبل از باز کردن کد تصمیم گرفته شد که نام آن را به Flow9 تغییر دهیم تا از تداخل با تحلیلگر آماری جلوگیری شود. جریان از فیس بوک

Flow9 یک نحو آشنا شبیه به زبان C را ترکیب می کند (نگاه کنید به مقایسه کد در Flow9 و JavaScript)، با ابزارهای برنامه نویسی کاربردی در سبک ML и فرصت ها زبان های دامنه خاص که بر حل مشکلات خاص تا حد امکان کارآمد متمرکز هستند (برای Flow9 این توسعه رابط است). Flow9 برای استفاده از تایپ دقیق طراحی شده است، اما در صورت لزوم می توان از تایپ پویا با تشخیص خودکار نوع و همچنین استفاده کرد. لینک ها. Polymorphism پشتیبانی می شود (یک تابع می تواند داده های انواع مختلف را پردازش کند)، توانایی ایجاد زیرگروه ها، ماژول ها، آرایه ها، هش ها، عبارات لامبدا.

همان کد را می توان برای پلتفرم های مختلف کامپایل کرد، بدون نیاز به پورت جداگانه و تغییرات در کد. همین برنامه می‌تواند در مرورگر، دستگاه‌های تلفن همراه با صفحه‌نمایش لمسی و روی سیستم‌های دسکتاپ با صفحه‌کلید و ماوس اجرا شود. ما مجموعه ای آماده از کامپوننت ها با عناصر رابط به سبک React ارائه می دهیم که مطابق با مفهوم طراحی متریال گوگل طراحی شده است. طراحی را می توان تا سطح پیکسل کنترل کرد. برای تنظیم سبک ها می توان از سینتکس استاندارد CSS استفاده کنید. برای رندر در لینوکس، macOS و Windows هنگام کامپایل در C++ استفاده می شود باطن مبتنی بر Qt با OpenGL، و هنگامی که در جاوا کامپایل شد - JavaFX.

به لطف استفاده از تکنیک های برنامه نویسی کاربردی، کد نوشته شده و اجزای رابط را می توان به راحتی از پروژه های دیگر قرض گرفت. این زبان بسیار فشرده است و تنها شامل 25 کلمه کلیدی است و توضیحات دستور زبان در 255 خط به همراه نظرات قرار می گیرد. برای پیاده سازی عملکردهای یکسان در Flow9، 2 تا 4 برابر کد کمتری نسبت به HTML+CSS+JavaScript، C#، Swift یا Java مورد نیاز است. به عنوان مثال، اگر برای برنامه آزمایشی Tic-Tac-Toe از راهنماها برای React نوشتن 200 خط کد در React/JavaScript/HTML/CSS طول کشید، برای Flow9 ما موفق شدیم این کار را در 83 خط انجام دهیم. علاوه بر این، این برنامه نه تنها می تواند در مرورگر راه اندازی شود، بلکه می تواند در قالب برنامه های تلفن همراه برای iOS و Android نیز کامپایل شود.

این پلتفرم شامل کامپایلر اصلی flowc است که در Flow9 نوشته شده است و می تواند به عنوان یک سرور کامپایل کار کند. کامپایلر مرجع جریان (نوشته شده در بند انگشت) دیباگر با پشتیبانی از پروتکل gdb. یک سیستم پروفایل با یک تحلیلگر حافظه و یک دیباگر جمع آوری زباله. کامپایلر JIT برای سیستم های x86_64. مترجم برای ARM و سایر سیستم عامل ها؛ ابزارهایی برای کامپایل انتخابی در C++ و جاوا از حیاتی ترین بخش های کد. پلاگین برای ادغام با ویرایشگرهای کد Visual Code، Sublime Text، Kate و Emacs. مولد تجزیه کننده (PEG).

منبع: opennet.ru

اضافه کردن نظر