Luau, một biến thể kiểm tra kiểu của ngôn ngữ Lua trở thành nguồn mở

Gần đây việc phát hành phiên bản đầu tiên đã được công bố độc lập với ngôn ngữ lập trình luau, tiếp tục với sự phát triển của Lua và cũng tương thích với các phiên bản trước của Lua 5.1.

Ngôn ngữ Luau là được thiết kế chủ yếu để nhúng các công cụ viết kịch bản trong các ứng dụng và nhằm đạt được hiệu suất cao và tiêu thụ tài nguyên thấp. Mã dự án được viết bằng C ++ và được mở theo giấy phép MIT.

Luau mở rộng Lua với khả năng kiểm tra kiểu và một số bản dựng cú pháp mới như chuỗi ký tự. Ngôn ngữ này tương thích ngược với Lua 5.1 và một phần với các phiên bản mới hơn. API Lua Runtime được hỗ trợ, cho phép Luau được sử dụng với các mã và liên kết có sẵn từ trước.

Cho đến ngày nay, Luau không còn là một phần không thể tách rời của nền tảng Roblox; là một ngôn ngữ mã nguồn mở độc lập.

Thời gian chạy của ngôn ngữ dựa trên mã thời gian chạy Lua 5.1 đã được sửa đổi nhiều, nhưng trình thông dịch đã được viết lại hoàn toàn. Sự phát triển liên quan đến một số kỹ thuật tối ưu hóa mới giúp đạt được hiệu suất cao hơn so với Lua.

Khi Roblox được tạo ra cách đây 15 năm, chúng tôi đã chọn Lua làm ngôn ngữ lập trình. Lua nhỏ, nhanh, dễ tích hợp và học hỏi, đồng thời nó mở ra khả năng rất lớn cho các nhà phát triển của chúng tôi.

Phần lớn Roblox được xây dựng dựa trên Lua, bao gồm hàng trăm nghìn dòng mã được phát triển nội bộ cung cấp năng lượng cho ứng dụng Roblox và Roblox Studio cho đến ngày nay, và hàng triệu trải nghiệm mà các nhà phát triển đã tạo ra. Đối với nhiều người trong số họ, đó là ngôn ngữ lập trình đầu tiên họ học.

Dự án được phát triển bởi Roblox và được sử dụng trong mã nền tảng trò chơi và các ứng dụng tùy chỉnh từ công ty này, bao gồm cả nhà xuất bản Roblox Studio. Ban đầu, Luau được phát triển sau những cánh cửa đóng kín, nhưng cuối cùng người ta quyết định chuyển nó sang loại dự án mở để cùng phát triển hơn nữa với sự tham gia của cộng đồng.

Các tính năng chính:

  • Một hệ thống kiểu tuần tự, chiếm vị trí trung gian giữa cách viết động và viết tĩnh. Luau cho phép viết tĩnh khi cần thiết bằng cách chỉ định thông tin kiểu thông qua các chú thích đặc biệt.
  • Các các loại cài sẵn "Bất kỳ", "nil", "boolean", "số", "chuỗi" và "luồng". Đồng thời, khả năng sử dụng kiểu gõ động mà không cần xác định rõ ràng kiểu biến và hàm cũng được giữ nguyên.
  • Hỗ trợ cho chuỗi chữ (như trong Lua 5.3)
  • Hỗ trợ cho biểu thức "continue", ngoài từ khóa hiện có "break", để chuyển đến một lần lặp mới của vòng lặp.
  • Hỗ trợ các toán tử gán ghép
  • Hỗ trợ việc sử dụng khối điều kiện "If-then-else" ở dạng biểu thức trả về giá trị được tính toán trong quá trình thực thi khối. Bạn có thể chỉ định một số câu lệnh elseif tùy ý trong một khối.
  • Sự hiện diện của chế độ hộp cát cho phép bạn chạy mã không đáng tin cậy. Chức năng này có thể được sử dụng để tổ chức mã của riêng bạn và mã được viết bởi một nhà phát triển khác, chẳng hạn như các thư viện của bên thứ ba không thể được đảm bảo, chạy song song với nhau.
  • Hạn chế của thư viện tiêu chuẩn mà từ đó các chức năng có thể tạo ra các vấn đề bảo mật đã bị loại bỏ. Ví dụ: các thư viện "io" (truy cập tệp và quy trình khởi động), "gói" (truy cập tệp và tải mô-đun), "os" (chức năng truy cập tệp và thay đổi biến môi trường đã bị xóa), "Gỡ lỗi" (không an toàn xử lý bộ nhớ), "dofile" và "loadfile" (truy cập hệ thống tệp).
  • Cung cấp các công cụ để phân tích mã tĩnh, phát hiện lỗi (Linter) và xác thực việc sử dụng các loại.
  • Máy phân tích, thông dịch viên bytecode và trình biên dịch độc quyền hiệu suất cao.
  • Luau chưa hỗ trợ biên dịch JIT, nhưng có ý kiến ​​cho rằng trình thông dịch Luau có hiệu suất khá tương đương với LuaJIT trong một số tình huống.

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.