โอเพ่นซอร์สภาษาโปรแกรม Flow9

บริษัทแอเรีย9 เปิด ซอร์สโค้ดภาษาโปรแกรมเชิงฟังก์ชัน Flow9เน้นไปที่การสร้างส่วนต่อประสานกับผู้ใช้ โค้ดในภาษา Flow9 สามารถคอมไพล์เป็นไฟล์ปฏิบัติการสำหรับ Linux, iOS, Android, Windows และ macOS และแปลเป็นเว็บแอปพลิเคชันใน HTML5/JavaScript (WebAssembly) หรือข้อความต้นฉบับใน Java, D, Lisp, ML และ C++ รหัสคอมไพเลอร์ เปิดอยู่ ได้รับใบอนุญาตภายใต้ GPLv2 และไลบรารีมาตรฐานได้รับใบอนุญาตภายใต้ใบอนุญาต MIT

ภาษาได้รับการพัฒนามาตั้งแต่ปี 2010 โดยเป็นทางเลือกที่เป็นสากลและหลายแพลตฟอร์มแทน Adobe Flash Flow9 อยู่ในตำแหน่งที่เป็นแพลตฟอร์มสำหรับการสร้างอินเทอร์เฟซแบบกราฟิกที่ทันสมัย ​​ซึ่งสามารถใช้ได้กับทั้งเว็บและเดสก์ท็อปและแอปพลิเคชันมือถือ โปรเจ็กต์นี้ใช้ในโปรเจ็กต์ Area9 ภายในหลายโปรเจ็กต์และเดิมเรียกว่า Flow แต่ก่อนที่จะเปิดโค้ด มีการตัดสินใจที่จะเปลี่ยนชื่อเป็น Flow9 เพื่อหลีกเลี่ยงการรบกวนกับเครื่องวิเคราะห์ทางสถิติ ไหล จากเฟสบุ๊ค

Flow9 รวมไวยากรณ์ที่คุ้นเคยคล้ายกับภาษา C (ดู การเปรียบเทียบ โค้ดใน Flow9 และ JavaScript) พร้อมด้วยเครื่องมือการเขียนโปรแกรมเชิงฟังก์ชันในรูปแบบ ML и โอกาส ภาษาเฉพาะโดเมนที่เน้นการแก้ปัญหาเฉพาะอย่างมีประสิทธิภาพมากที่สุด (สำหรับ Flow9 นี่คือการพัฒนาอินเทอร์เฟซ) Flow9 ได้รับการออกแบบให้ใช้การพิมพ์ที่เข้มงวด แต่หากจำเป็น ก็สามารถใช้การพิมพ์แบบไดนามิกพร้อมการตรวจจับประเภทอัตโนมัติได้เช่นกัน การอ้างอิง. รองรับความหลากหลาย (ฟังก์ชันหนึ่งสามารถประมวลผลข้อมูลประเภทต่างๆ) ความสามารถในการสร้างชนิดย่อย โมดูล อาร์เรย์ แฮช นิพจน์แลมบ์ดา

โค้ดเดียวกันสามารถคอมไพล์ได้สำหรับแพลตฟอร์มที่แตกต่างกัน โดยไม่จำเป็นต้องแยกพอร์ตและเปลี่ยนแปลงโค้ด แอปพลิเคชันเดียวกันนี้สามารถทำงานในเบราว์เซอร์ บนอุปกรณ์เคลื่อนที่ที่มีหน้าจอสัมผัส และบนระบบเดสก์ท็อปที่มีแป้นพิมพ์และเมาส์ เรานำเสนอคอลเลกชันส่วนประกอบสำเร็จรูปพร้อมองค์ประกอบอินเทอร์เฟซในสไตล์ React ซึ่งออกแบบตามแนวคิดการออกแบบวัสดุของ Google การออกแบบสามารถควบคุมได้จนถึงระดับพิกเซล เพื่อกำหนดสไตล์ หนึ่งสามารถ ใช้ไวยากรณ์ CSS มาตรฐาน สำหรับการเรนเดอร์บน Linux, macOS และ Windows เมื่อคอมไพล์ด้วย C++ เคย แบ็กเอนด์ที่ใช้ Qt ด้วย OpenGL และเมื่อคอมไพล์ใน Java - JavaFX

ด้วยการใช้เทคนิคการเขียนโปรแกรมเชิงฟังก์ชัน โค้ดที่เป็นลายลักษณ์อักษรและส่วนประกอบอินเทอร์เฟซจึงสามารถยืมมาจากโปรเจ็กต์อื่นได้อย่างง่ายดาย ภาษามีขนาดกะทัดรัดมากและประกอบด้วยคำหลักเพียง 25 คำ และคำอธิบายไวยากรณ์มีความยาวไม่เกิน 255 บรรทัดพร้อมกับความคิดเห็น หากต้องการใช้ฟังก์ชันการทำงานที่เหมือนกันบน Flow9 ต้องใช้โค้ดน้อยกว่า HTML+CSS+JavaScript, C#, Swift หรือ Java ถึง 2-4 เท่า ตัวอย่างเช่นหากสำหรับแอปพลิเคชันทดสอบ Tic-Tac-Toe จาก มัคคุเทศก์ สำหรับ 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).

ที่มา: opennet.ru

เพิ่มความคิดเห็น