Flow9 ծրագրավորման լեզու բաց կոդով

Տարածք 9 ընկերություն բացվեց ֆունկցիոնալ ծրագրավորման լեզուների սկզբնական կոդեր Հոսք9, կենտրոնացած է օգտատերերի միջերեսներ ստեղծելու վրա։ Flow9 լեզվով ծածկագիրը կարող է կազմվել գործարկվող ֆայլերի մեջ Linux, iOS, Android, Windows և macOS-ի համար և թարգմանվել վեբ հավելվածների HTML5/JavaScript-ով (WebAssembly) կամ Java, D, Lisp, ML և C++ աղբյուրների տեքստերի: Կազմողի կոդը բացել լիցենզավորված է GPLv2-ի համաձայն, իսկ ստանդարտ գրադարանը լիցենզավորված է MIT լիցենզիայի ներքո:

Լեզուն զարգանում է 2010 թվականից՝ որպես Adobe Flash-ի ունիվերսալ և բազմահարթակ այլընտրանք: Flow9-ը դիրքավորվում է որպես ժամանակակից գրաֆիկական ինտերֆեյսներ ստեղծելու հարթակ, որոնք կարող են օգտագործվել ինչպես համացանցի, այնպես էլ աշխատասեղանի և բջջային հավելվածների համար: Նախագիծն օգտագործվում է շատ ներքին Area9 նախագծերում և ի սկզբանե կոչվում էր Flow, սակայն մինչ ծածկագիրը բացելը որոշվեց այն վերանվանել Flow9՝ վիճակագրական անալիզատորի հետ միջամտությունից խուսափելու համար: Շիթ Facebook-ից։

Flow9-ը համատեղում է C լեզվին նման ծանոթ շարահյուսություն (տես համեմատություն կոդը Flow9-ում և JavaScript-ում), ոճի ֆունկցիոնալ ծրագրավորման գործիքներով ML и հնարավորություններ տիրույթի հատուկ լեզուներ, որոնք կենտրոնացած են կոնկրետ խնդիրների հնարավորինս արդյունավետ լուծման վրա (Flow9-ի համար սա ինտերֆեյսի մշակումն է): Flow9-ը նախատեսված է խիստ մուտքագրում օգտագործելու համար, սակայն անհրաժեշտության դեպքում հնարավոր է օգտագործել դինամիկ մուտքագրում ավտոմատ տիպի հայտնաբերմամբ, ինչպես նաև հղումներ. Աջակցվում է պոլիմորֆիզմը (մեկ ֆունկցիան կարող է մշակել տարբեր տեսակի տվյալներ), ենթատիպեր, մոդուլներ, զանգվածներ, հեշեր, լամբդա արտահայտություններ ստեղծելու հնարավորություն։

Նույն կոդը կարող է կազմվել տարբեր հարթակների համար՝ առանց առանձին տեղափոխման և կոդում փոփոխությունների անհրաժեշտության։ Նույն հավելվածը կարող է գործարկվել բրաուզերում, սենսորային էկրանով շարժական սարքերում և ստեղնաշարով և մկնիկով աշխատասեղանի համակարգերում: Մենք առաջարկում ենք React ոճով ինտերֆեյսի տարրերով բաղադրիչների պատրաստի հավաքածու՝ մշակված Google Material Design հայեցակարգին համապատասխան: Դիզայնը կարելի է կառավարել մինչև պիքսելային մակարդակ: Ոճեր սահմանելու համար կարելի օգտագործել ստանդարտ CSS շարահյուսություն: Linux-ում, macOS-ում և Windows-ում ցուցադրման համար C++-ով կոմպիլյացիայի դեպքում օգտագործվում է backend-ը, որը հիմնված է Qt-ի վրա OpenGL-ով, իսկ երբ կազմվում է Java-ում՝ JavaFX:

Ֆունկցիոնալ ծրագրավորման տեխնիկայի կիրառման շնորհիվ գրավոր կոդը և ինտերֆեյսի բաղադրիչները հեշտությամբ կարող են փոխառվել այլ նախագծերից: Լեզուն շատ կոմպակտ է և ներառում է ընդամենը 25 հիմնաբառ, իսկ քերականական նկարագրությունը տեղավորվում է 255 տողի մեջ՝ մեկնաբանությունների հետ միասին: Flow9-ում նույնական ֆունկցիոնալությունն իրականացնելու համար պահանջվում է 2-4 անգամ ավելի քիչ կոդ, քան HTML+CSS+JavaScript, C#, Swift կամ Java: Օրինակ, եթե թեստային հավելվածի համար Tic-Tac-Toe from ուղեցույցներ React-ի համար պահանջվեց գրել 200 տող կոդ React/JavaScript/HTML/CSS-ում, Flow9-ի համար մեզ հաջողվեց դա անել 83 տողում: Ավելին, այս հավելվածը կարող է ոչ միայն գործարկվել բրաուզերում, այլև համալրվել iOS-ի և Android-ի համար նախատեսված բջջային հավելվածների տեսքով:

Պլատֆորմը ներառում է հիմնական flowc կոմպիլյատորը, որը գրված է Flow9-ով և կարող է աշխատել որպես կոմպիլյացիոն սերվեր; հոսքի հղման կոմպիլյատոր (գրված է բռունցք); վրիպազերծիչ gdb արձանագրության աջակցությամբ; պրոֆիլավորման համակարգ՝ հիշողության անալիզատորով և աղբահանող վրիպազերծիչով. JIT կոմպիլյատոր x86_64 համակարգերի համար; թարգմանիչ ARM-ի և այլ հարթակների համար; գործիքներ՝ C++-ում և Java-ում կոդի ամենակարևոր մասերի ընտրովի կոմպիլյացիայի համար. պլագիններ կոդի խմբագրիչների հետ ինտեգրվելու Visual Code, Sublime Text, Kate և Emacs; վերլուծիչ գեներատոր (PEG).

Source: opennet.ru

Добавить комментарий