Flow9 programmeringssprog open source

Area9 Company åbnet funktionelle programmeringssprog kildekoder Flow9, med fokus på at skabe brugergrænseflader. Kode i Flow9-sproget kan kompileres til eksekverbare filer til Linux, iOS, Android, Windows og macOS og oversættes til webapplikationer i HTML5/JavaScript (WebAssembly) eller kildetekster i Java, D, Lisp, ML og C++. Compiler kode åben er licenseret under GPLv2, og standardbiblioteket er licenseret under MIT-licensen.

Sproget har siden 2010 udviklet sig som et universelt og multi-platform alternativ til Adobe Flash. Flow9 er placeret som en platform til at skabe moderne grafiske grænseflader, der kan bruges til både web og desktop- og mobilapplikationer. Projektet bruges i mange interne Area9-projekter og hed oprindeligt Flow, men før åbningen af ​​koden blev det besluttet at omdøbe det til Flow9 for at undgå interferens med den statistiske analysator Flow fra Facebook.

Flow9 kombinerer en velkendt syntaks, der ligner C-sproget (se sammenligning kode i Flow9 og JavaScript), med funktionelle programmeringsværktøjer i stilen ML и muligheder domænespecifikke sprog fokuseret på at løse specifikke problemer så effektivt som muligt (for Flow9 er dette grænsefladeudvikling). Flow9 er designet til at bruge streng indtastning, men om nødvendigt er det muligt at bruge dynamisk indtastning med automatisk typeregistrering, samt henvisning. Polymorfi er understøttet (en funktion kan behandle data af forskellige typer), evnen til at skabe undertyper, moduler, arrays, hashes, lambda-udtryk.

Den samme kode kan kompileres til forskellige platforme, uden behov for separat portering og ændringer af koden. Den samme applikation kan køre i en browser, på mobile enheder med berøringsskærme og på stationære systemer med tastatur og mus. Vi tilbyder en færdiglavet kollektion af komponenter med interface-elementer i React-stilen, designet i overensstemmelse med Google Material Design-konceptet. Design kan styres ned til pixelniveau. For at indstille stilarter man kan brug standard CSS-syntaks. Til gengivelse på Linux, macOS og Windows, når de er kompileret i C++ brugt backend baseret på Qt med OpenGL, og når det er kompileret i Java - JavaFX.

Takket være brugen af ​​funktionelle programmeringsteknikker kan den skrevne kode og interfacekomponenter nemt lånes fra andre projekter. Sproget er meget kompakt og indeholder kun 25 nøgleord, og grammatikbeskrivelsen passer ind i 255 linjer sammen med kommentarer. For at implementere identisk funktionalitet på Flow9 kræves der 2-4 gange mindre kode end på HTML+CSS+JavaScript, C#, Swift eller Java. For eksempel hvis til testapplikationen Tic-Tac-Toe fra guider for React tog det at skrive 200 linjer kode i React/JavaScript/HTML/CSS, for Flow9 lykkedes det at gøre det på 83 linjer. Desuden kan denne applikation ikke kun lanceres i browseren, men også kompileres i form af mobilapplikationer til iOS og Android.

Platformen inkluderer hovedflowc-kompileren, skrevet i Flow9 og i stand til at fungere som en kompileringsserver; flow reference compiler (skrevet i ben); debugger med gdb protokol support; et profileringssystem med en hukommelsesanalysator og en garbage collector debugger; JIT-kompiler til x86_64-systemer; tolk til ARM og andre platforme; værktøjer til selektiv kompilering i C++ og Java af de mest ydeevnekritiske dele af koden; plugins til integration med kodeeditorer Visual Code, Sublime Text, Kate og Emacs; parser generator (PEG).

Kilde: opennet.ru

Tilføj en kommentar