Flow9 programlingvo malfermfonte

Area9 Kompanio malfermiĝis fontkodoj de funkciaj programlingvoj Fluo9, temigis kreado de uzantinterfacoj. Kodo en la lingvo Flow9 povas esti kompilita en ruleblajn dosierojn por Linukso, iOS, Android, Vindozo kaj macOS, kaj tradukita en TTT-aplikaĵojn en HTML5/JavaScript (WebAssembly) aŭ fonttekstojn en Java, D, Lisp, ML kaj C++. Kompilkodo malfermi estas licencita sub GPLv2 kaj la norma biblioteko estas licencita sub la MIT-licenco.

La lingvo disvolviĝas ekde 2010 kiel universala kaj plurplatforma alternativo al Adobe Flash. Flow9 estas poziciigita kiel platformo por kreado de modernaj grafikaj interfacoj kiuj povas esti uzitaj por kaj la Reto kaj labortablo kaj moveblaj aplikoj. La projekto estas uzata en multaj internaj projektoj Area9 kaj origine nomiĝis Flow, sed antaŭ malfermi la kodon oni decidis renomi ĝin al Flow9 por eviti interferon kun la statistika analizilo. fluo de Fejsbuko.

Flow9 kombinas konatan sintakson similan al la C-lingvo (vidu komparo kodo en Flow9 kaj JavaScript), kun funkciaj programaj iloj en la stilo ML и ŝancoj domajnaj specifaj lingvoj fokusitaj al solvi specifajn problemojn kiel eble plej efike (por Flow9 ĉi tio estas interfaca evoluo). Flow9 estas desegnita por uzi striktan tajpadon, sed se necese, eblas uzi dinamikan tajpadon kun aŭtomata tipo-detekto, same kiel ligiloj. Polimorfismo estas subtenata (unu funkcio povas prilabori datumojn de malsamaj tipoj), la kapablo krei subtipojn, modulojn, tabelojn, haŝojn, lambdajn esprimojn.

La sama kodo povas esti kompilita por malsamaj platformoj, sen la bezono de aparta portado kaj ŝanĝoj al la kodo. La sama aplikaĵo povas funkcii en retumilo, sur porteblaj aparatoj kun tuŝekranoj, kaj sur labortablaj sistemoj kun klavaro kaj muso. Ni ofertas pretan kolekton de komponantoj kun interfacaj elementoj en la stilo React, desegnitaj laŭ la koncepto de Google Material Design. Dezajno povas esti kontrolita ĝis la piksela nivelo. Por agordi stilojn povas uzu norman CSS-sintakso. Por bildigo en Linukso, macOS kaj Vindozo kiam kompilite en C++ estas uzata backend bazita sur Qt kun OpenGL, kaj kiam kompilita en Java - JavaFX.

Danke al la uzo de funkciaj programaj teknikoj, la skribitaj kodoj kaj interfacaj komponantoj povas facile esti pruntitaj de aliaj projektoj. La lingvo estas tre kompakta kaj inkluzivas nur 25 ŝlosilvortojn, kaj la gramatika priskribo taŭgas en 255 linioj kune kun komentoj. Por efektivigi identan funkciecon sur Flow9, 2-4 fojojn malpli da kodo estas bezonata ol ĉe HTML+CSS+JavaScript, C#, Swift aŭ Java. Ekzemple, se por la testa aplikaĵo Tic-Tac-Toe de gvidado por React necesis skribi 200 liniojn de kodo en React/JavaScript/HTML/CSS, por Flow9 ni sukcesis fari ĝin en 83 linioj. Krome, ĉi tiu aplikaĵo povas ne nur esti lanĉita en la retumilo, sed ankaŭ kompilita en la formo de moveblaj aplikoj por iOS kaj Android.

La platformo inkluzivas la ĉefan flowc-kompililon, skribitan en Flow9 kaj kapabla funkcii kiel kompilservilo; fluo-referenca kompililo (skribita en haxe); erarserĉilo kun gdb-protokolo-subteno; profila sistemo kun memoranalizilo kaj rubokolekta erarserĉilo; JIT-kompililo por x86_64-sistemoj; interpretisto por ARM kaj aliaj platformoj; iloj por selektema kompilo en C++ kaj Java de la plej rendiment-kritikaj partoj de la kodo; kromaĵojn por integriĝo kun kodredaktiloj Visual Code, Sublime Text, Kate kaj Emakso; analizatorgeneratoro (PEG).

fonto: opennet.ru

Aldoni komenton