Flow9 програмчлалын хэл нь нээлттэй эх сурвалж

Area9 компани нээгдсэн функциональ програмчлалын хэлний эх кодууд Урсгал9, хэрэглэгчийн интерфэйсийг бий болгоход чиглэсэн. Flow9 хэл дээрх кодыг Linux, iOS, Android, Windows болон macOS-д зориулсан гүйцэтгэх файл болгон хөрвүүлж, HTML5/JavaScript (WebAssembly) дээрх вэб программууд эсвэл Java, D, Lisp, ML болон C++ дээрх эх бичвэрүүд рүү хөрвүүлэх боломжтой. Хөрвүүлэгчийн код нээлттэй GPLv2, стандарт номын сан нь MIT лицензийн дагуу лицензтэй.

Энэ хэл нь 2010 оноос хойш Adobe Flash-ийн бүх нийтийн, олон платформын хувилбар болгон хөгжиж байна. Flow9 нь вэб болон ширээний болон гар утасны программуудад ашиглах боломжтой орчин үеийн график интерфэйсийг бий болгох платформ юм. Төслийг олон дотоод Area9 төслүүдэд ашигладаг бөгөөд анх Урсгал гэж нэрлэдэг байсан боловч кодыг нээхээс өмнө статистикийн анализаторт саад учруулахгүйн тулд үүнийг Flow9 болгон өөрчлөхөөр шийдсэн. Урсгал Facebook-ээс.

Flow9 нь Си хэлтэй төстэй танил синтаксийг нэгтгэдэг (харна уу харьцуулалт Flow9 болон JavaScript дахь код), хэв маягийн функциональ програмчлалын хэрэгслүүдтэй ML и боломжууд тодорхой асуудлуудыг аль болох үр дүнтэй шийдвэрлэхэд чиглэсэн домэйны тусгай хэлүүд (Flow9-ийн хувьд энэ нь интерфейсийн хөгжүүлэлт юм). Flow9 нь хатуу бичихэд зориулагдсан боловч шаардлагатай бол төрөл автоматаар тодорхойлох динамик бичих, түүнчлэн холбоосууд. Полиморфизм (нэг функц нь өөр өөр төрлийн өгөгдлийг боловсруулах боломжтой), дэд төрөл, модуль, массив, хэш, ламбда илэрхийлэл үүсгэх чадварыг дэмждэг.

Тус тусад нь шилжүүлэх, кодыг өөрчлөх шаардлагагүйгээр ижил кодыг өөр өөр платформд зориулж эмхэтгэж болно. Ижил програм нь хөтөч, мэдрэгчтэй дэлгэцтэй гар утасны төхөөрөмж, гар, хулгана бүхий ширээний систем дээр ажиллах боломжтой. Бид Google-ийн материалын дизайны үзэл баримтлалын дагуу бүтээгдсэн React загварын интерфэйсийн элементүүдийн бэлэн цуглуулгыг санал болгож байна. Дизайныг пикселийн түвшинд хүртэл хянах боломжтой. Загвар тохируулахын тулд болно стандарт CSS синтакс ашиглах. Линукс, macOS болон Windows дээр C++ дээр хөрвүүлэхэд зориулагдсан ашиглаж байна OpenGL-тэй Qt дээр суурилсан backend ба Java-д хөрвүүлсэн бол - JavaFX.

Функциональ програмчлалын техникийг ашигласны ачаар бичсэн код болон интерфейсийн бүрэлдэхүүн хэсгүүдийг бусад төслүүдээс хялбархан зээлж авах боломжтой. Хэл нь маш нягт бөгөөд ердөө 25 түлхүүр үг агуулсан бөгөөд дүрмийн тайлбар нь тайлбарын хамт 255 мөрөнд багтдаг. Flow9 дээр ижил функцийг хэрэгжүүлэхийн тулд HTML+CSS+JavaScript, C#, Swift эсвэл Java-оос 2-4 дахин бага код шаардлагатай. Жишээлбэл, хэрэв Tic-Tac-Toe-ийн туршилтын програм манлайлал React-ийн хувьд React/JavaScript/HTML/CSS дээр 200 мөр код бичих шаардлагатай байсан бол Flow9-ийн хувьд бид үүнийг 83 мөрөнд хийж чадсан. Нэмж дурдахад энэ програмыг зөвхөн хөтөч дээр ажиллуулаад зогсохгүй iOS болон Android үйлдлийн системд зориулсан гар утасны програмын хэлбэрээр нэгтгэж болно.

Уг платформ нь Flow9 дээр бичигдсэн, эмхэтгэлийн серверээр ажиллах чадвартай үндсэн flowc хөрвүүлэгчийг агуулдаг; урсгалын лавлагаа хөрвүүлэгч (дээр бичигдсэн хакс); gdb протоколын дэмжлэгтэй дибаглагч; санах ойн анализатор болон хог цуглуулагч дибаглагч бүхий профайл үүсгэх систем; x86_64 системд зориулсан JIT хөрвүүлэгч; ARM болон бусад платформуудад зориулсан орчуулагч; кодын гүйцэтгэлд хамгийн чухал хэсгүүдийг C++ болон Java хэл дээр сонгон эмхэтгэх хэрэгслүүд; Visual Code, Sublime Text, Kate болон Emacs код засварлагчтай нэгтгэх залгаасууд; задлагч генератор (PEG).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх