Ngôn ngữ lập trình Flow9 mã nguồn mở

Công ty Area9 mở ra mã nguồn ngôn ngữ lập trình chức năng Flow9, tập trung vào việc tạo giao diện người dùng. Mã bằng ngôn ngữ Flow9 có thể được biên dịch thành các tệp thực thi cho Linux, iOS, Android, Windows và macOS, đồng thời được dịch sang các ứng dụng web bằng HTML5/JavaScript (WebAssembly) hoặc văn bản nguồn trong Java, D, Lisp, ML và C++. Mã trình biên dịch đang mở được cấp phép theo GPLv2 và thư viện chuẩn được cấp phép theo giấy phép MIT.

Ngôn ngữ này đã được phát triển từ năm 2010 như một sự thay thế phổ quát và đa nền tảng cho Adobe Flash. Flow9 được định vị là một nền tảng để tạo các giao diện đồ họa hiện đại có thể được sử dụng cho cả ứng dụng Web, máy tính để bàn và thiết bị di động. Dự án được sử dụng trong nhiều dự án nội bộ của Area9 và ban đầu được gọi là Flow, nhưng trước khi mở mã, người ta đã quyết định đổi tên thành Flow9 để tránh nhiễu với máy phân tích thống kê Dòng chảy Từ Facebook.

Flow9 kết hợp một cú pháp quen thuộc tương tự như ngôn ngữ C (xem so sánh mã trong Flow9 và JavaScript), với các công cụ lập trình chức năng theo kiểu ML и những cơ hội ngôn ngữ dành riêng cho miền tập trung vào việc giải quyết các vấn đề cụ thể một cách hiệu quả nhất có thể (đối với Flow9, đây là phát triển giao diện). Flow9 được thiết kế để sử dụng kiểu gõ nghiêm ngặt, nhưng nếu cần, có thể sử dụng kiểu gõ động với tính năng phát hiện kiểu tự động, cũng như liên kết. Hỗ trợ đa hình (một hàm có thể xử lý dữ liệu thuộc nhiều loại khác nhau), khả năng tạo kiểu con, mô-đun, mảng, băm, biểu thức lambda.

Cùng một mã có thể được biên dịch cho các nền tảng khác nhau mà không cần chuyển cổng riêng và thay đổi mã. Ứng dụng tương tự có thể chạy trên trình duyệt, trên thiết bị di động có màn hình cảm ứng và trên hệ thống máy tính để bàn có bàn phím và chuột. Chúng tôi cung cấp một bộ sưu tập các thành phần làm sẵn với các thành phần giao diện theo phong cách React, được thiết kế theo khái niệm Material Design của Google. Thiết kế có thể được kiểm soát ở mức pixel. Để đặt kiểu ai có thể sử dụng cú pháp CSS tiêu chuẩn. Để hiển thị trên Linux, macOS và Windows khi được biên dịch bằng C++ được sử dụng phụ trợ dựa trên Qt với OpenGL và khi được biên dịch bằng Java - JavaFX.

Nhờ sử dụng các kỹ thuật lập trình chức năng, mã viết và các thành phần giao diện có thể dễ dàng được mượn từ các dự án khác. Ngôn ngữ này rất nhỏ gọn và chỉ bao gồm 25 từ khóa, mô tả ngữ pháp gồm 255 dòng cùng với các nhận xét. Để triển khai chức năng giống hệt nhau trên Flow9, cần ít mã hơn 2-4 lần so với trên HTML+CSS+JavaScript, C#, Swift hoặc Java. Ví dụ: nếu đối với ứng dụng thử nghiệm Tic-Tac-Toe từ hướng dẫn đối với React, chúng tôi phải viết 200 dòng mã trong React/JavaScript/HTML/CSS, đối với Flow9, chúng tôi đã thực hiện được trong 83 dòng. Hơn nữa, ứng dụng này không chỉ có thể được khởi chạy trên trình duyệt mà còn có thể được biên dịch thành dạng ứng dụng di động dành cho iOS và Android.

Nền tảng này bao gồm trình biên dịch flowc chính, được viết bằng Flow9 và có khả năng hoạt động như một máy chủ biên dịch; trình biên dịch tham chiếu luồng (được viết bằng haxe); trình gỡ lỗi có hỗ trợ giao thức gdb; một hệ thống định hình với bộ phân tích bộ nhớ và trình gỡ lỗi thu gom rác; Trình biên dịch JIT cho hệ thống x86_64; thông dịch viên cho ARM và các nền tảng khác; các công cụ để biên dịch có chọn lọc trong C++ và Java những phần quan trọng nhất về hiệu năng của mã; các plugin để tích hợp với trình soạn thảo mã Visual Code, Sublime Text, Kate và Emacs; trình tạo trình phân tích cú pháp (PEG).

Nguồn: opennet.ru

Thêm một lời nhận xét