Flow9 dasturlash tili ochiq manba

Maydon 9 kompaniyasi ochildi funktsional dasturlash tilining manba kodlari Oqim9, foydalanuvchi interfeyslarini yaratishga qaratilgan. Flow9 tilidagi kod Linux, iOS, Android, Windows va macOS uchun bajariladigan fayllarga kompilyatsiya qilinishi va HTML5/JavaScript (WebAssembly) da veb-ilovalarga yoki Java, D, Lisp, ML va C++-dagi manba matnlarga tarjima qilinishi mumkin. Kompilyator kodi ochiq GPLv2 ostida litsenziyalangan va standart kutubxona MIT litsenziyasi ostida litsenziyalangan.

Til 2010 yildan beri Adobe Flash-ga universal va ko'p platformali alternativ sifatida rivojlanmoqda. Flow9 ham Internet, ham ish stoli va mobil ilovalar uchun ishlatilishi mumkin bo'lgan zamonaviy grafik interfeyslarni yaratish uchun platforma sifatida joylashtirilgan. Loyiha ko'plab ichki Area9 loyihalarida qo'llaniladi va dastlab Flow deb nomlangan, ammo kodni ochishdan oldin statistik analizatorga xalaqit bermaslik uchun uni Flow9 deb o'zgartirishga qaror qilindi. Flow Facebookdan.

Flow9 C tiliga o'xshash tanish sintaksisni birlashtiradi (qarang taqqoslash Flow9 va JavaScript-dagi kod), uslubdagi funktsional dasturlash vositalari bilan ML ΠΈ imkoniyatlar Muayyan muammolarni iloji boricha samarali hal qilishga qaratilgan domenga xos tillar (Flow9 uchun bu interfeysni ishlab chiqish). Flow9 qattiq yozishdan foydalanish uchun mo'ljallangan, ammo agar kerak bo'lsa, avtomatik tipni aniqlash bilan dinamik yozishdan foydalanish mumkin, shuningdek ishoratlar. Polimorfizm qo'llab-quvvatlanadi (bitta funktsiya har xil turdagi ma'lumotlarni qayta ishlashi mumkin), pastki tiplar, modullar, massivlar, xeshlar, lambda ifodalarini yaratish qobiliyati.

Xuddi shu kodni turli platformalar uchun kompilyatsiya qilish mumkin, alohida ko'chirish va kodga o'zgartirishlar kerak emas. Xuddi shu dastur brauzerda, sensorli ekranli mobil qurilmalarda va klaviatura va sichqoncha bilan ish stoli tizimlarida ishlashi mumkin. Biz Google Material Design kontseptsiyasiga muvofiq ishlab chiqilgan React uslubidagi interfeys elementlariga ega tayyor komponentlar to'plamini taklif qilamiz. Dizaynni piksel darajasiga qadar boshqarish mumkin. Uslublarni o'rnatish uchun mumkin standart CSS sintaksisidan foydalaning. C++ da kompilyatsiya qilinganda Linux, macOS va Windows tizimlarida renderlash uchun ishlatiladi OpenGL bilan Qt-ga asoslangan backend va Java-da kompilyatsiya qilinganda - JavaFX.

Funktsional dasturlash usullaridan foydalanish tufayli yozma kod va interfeys komponentlarini boshqa loyihalardan osongina olish mumkin. Til juda ixcham va faqat 25 ta kalit so'zni o'z ichiga oladi va grammatika tavsifi sharhlar bilan birga 255 qatorga to'g'ri keladi. Flow9-da bir xil funksiyalarni amalga oshirish uchun HTML+CSS+JavaScript, C#, Swift yoki Java-ga qaraganda 2-4 baravar kamroq kod talab qilinadi. Misol uchun, agar Tic-Tac-Toe dan test ilovasi uchun qo'llanmalar React uchun React/JavaScript/HTML/CSS-da 200 qator kod yozish kerak bo'ldi, Flow9 uchun biz buni 83 qatorda bajarishga muvaffaq bo'ldik. Bundan tashqari, ushbu ilovani nafaqat brauzerda ishga tushirish, balki iOS va Android uchun mobil ilovalar ko'rinishida ham kompilyatsiya qilish mumkin.

Platforma Flow9 da yozilgan va kompilyatsiya serveri sifatida ishlashga qodir bo'lgan asosiy flowc kompilyatorini o'z ichiga oladi; oqim mos yozuvlar kompilyatori (yozilgan xaks); gdb protokolini qo'llab-quvvatlash bilan tuzatuvchi; xotira analizatori va axlat yig'uvchi tuzatuvchiga ega profillash tizimi; x86_64 tizimlari uchun JIT kompilyatori; ARM va boshqa platformalar uchun tarjimon; kodning ishlash jihatidan eng muhim qismlarini C++ va Java tillarida tanlab kompilyatsiya qilish vositalari; Visual Code, Sublime Text, Kate va Emacs kod muharrirlari bilan integratsiyalash uchun plaginlar; tahlil qiluvchi generator (PEG).

Manba: opennet.ru

a Izoh qo'shish