Tìm hiều về Lua và ứng dụng

phanhao

Member
gemgem
Tham gia
18/03/2025
Bài viết
160
Được Like
0
Coin
0
Points
800
1. Tổng quan về Lua

Lua là một ngôn ngữ lập trình được viết dựa trên C. Được phát mình vào năm 1993 bởi Roberto Ierusalimschy, Luiz Henrique de Figueiredo và Waldemar Cele, ngay từ ban đầu, đích nhắm tới của Lua là trở thành một thứ ngôn ngữ lập trình đơn giản, gọn nhẹ, và có thể dễ dàng được tích hợp vào các chương trình đc viết bằng các loại ngôn ngữ phổ biến khác như C hay Java. Điều này mang lại cho Lua nhiều lợi thế : Không phụ thuộc vào nền tảng phần cứng, cấu trúc linh động, ít dư thừa, có thể dễ dàng test hay debug. Lua thực hiện được điều này nhờ có môi trường an toàn, khả năng tự động quản lí bộ nhớ, và nhiều công cụ để xử lí string cũng như những loại data khác có dung lượng động.

2 Tại sao lựa chọn Lua ?

Lua là một ngôn ngữ được sử dụng nhiều, và đã được kiểm chứng


Lua đã được dùng trong rất nhiều các ứng dụng công nghiệp ( ví dụ như Adobe's Photoshop Lightroom ), trong các hệ thống nhúng ( ví dụ như Ginga middleware dùng trong các hệ thống TV số ở Brazil ) , hay làm game ( ví dụ như World of Warcarft addons hay Angry Birds ). HIện tại Lua được đánh giá là ngôn ngữ kịch bản ( scripting language ) hàng đầu sử dụng trong game. Lua được đông đảo cộng đồng ghi nhận, và có hệ thống documentation khá đầy đủ và chi tiết.

Lua rất nhanh

Lua rất nổi tiếng về tốc độ xử lí, là chuẩn mực để các loại ngôn ngũ kịch bản khác hướng tới. Khả năng thực thi của Lua đã được kiểm chứng qua rất nhiều bài test ( benchmark ), cũng như trong môi trường thực tế . Một phần đáng kể của các ứng dụng lớn hiện nay đều đc viết bằng Lua

Lua is portable

Lua được phân phối trong các gói nhỏ (small package) và được build độc lập trong tất cả những nền tảng có bộ biên dịch C chuẩn. Lua có thể chạy trên tất cả các nền tảng Unix và Windows, trên các nền tảng di động ( Android, iOS, BREW, Symbian, Windows Phone), trên các vi xử lí nhứng ( như ARM và Rabbit, cho các ứng dụng như Lego MindStorms)

Lua is embeddable

Lua là một loại ngôn ngữ rất nhanh và nhỏ gọn, có thể dễ dàng được nhúng vào trong các ứng dụng khác nhau. Với hệ thống API đơn giản và được documented tốt, ta có thể dễ dàng tích hợp Lua vào trong các hệ thống viết bằng các loại ngôn ngữ khác. Có thể dễ dàng sử dụng các thư viện của các ngôn ngữ khác trong Lua, cũng như dễ dàng dùng các thư viện Lua trong các ứng dụng viết bằng ngôn ngữ khác, không chỉ C , C++, Java, ... mà kể cả các loại ngôn ngữ kịch bản khác như Perl hay Ruby.

Lua is powerful (but simple)

Một khái niệm cơ bản trong Lua, đó là cung cấp những phương thức tổng quát ( meta-mechanisms ) để thực hiện những tính năng ( features ), thay vì cung cấp trực tiếp những tính đó. Ví dụ, mặc dù Lua không phải là ngôn ngữ hướng đối tượng thuần túy, thay vào đó , Lua cung cấp khái niệm metatable, và dựa vào đây, ta có thể implement class và kế thừa trong Lua. Đặc điểm cơ bản này của Lua, giúp cho ngôn ngữ này nhỏ gọn về mặt cấu trúc, trong khi vẫn có thể dễ dàng được extend sang những hệ thống khác.

Lua rất nhỏ gọn

Thêm Lua vào một ứng dụng không làm phình to ứng dụng đó. File tarball của Lua 5.3.1, trong đó có chứa cả source code và documentation, có dung lượng 276k khi nén và 1.1M khi giải nén. Source code của Lua chúa khoảng 23000 dòng code C. Trong một hệ thống Linux 64-bit, bộ biên dịch Lua built với tất cả các thư viện Lua chuẩn chiếm khoảng 242kb , và thư viện Lua thì chiếm khoảng 414Kb.

Lua is free

Lua là phần mềm mã nguồn mở, được phân phối dưới license MIT. Lua có thể được dùng cho tất cả các mục đích, kể cả mục đích thương mại và vẫn hoàn toàn miễn phí.

3 Making your first Lua program

Trong phần này, ta sẽ cùng nhau tìm hiểu về một ứng dụng thực tiễn đang khá phổ biến của Lua, đó là dùng trong làm game. Để làm quen, ta hãy cùng xây dựng một ứng dụng thuộc loại cơ bản nhất, cùng viết một Addons đơn giản trong game World of Warcraft.

Cài đặt Lua

Về cơ bản thì việc cài đặt Lua là rất đơn giản. Để có thể bắt đầu bắt tay vào lập trình Lua, bạn chỉ cần có :

  • Thứ nhất : Bộ thông dịch Lua ( Lua interpreter ) : Một chương trình nhỏ, nơi bạn có thể gõ trực tiếp các lệnh của Lua và thực thi chúng ngay lập tức. Lua interpreter sẽ dừng thực thi mọt file Lua ngay khi nó bắt gặp lỗi trong file đó .
  • Thứ hai : Bộ biên dịch Lua (Lua complier) : Khi ta muốn extend Lua đến một ứng dụng/ ngôn ngữ khác, ta sẽ cần phải có một bộ SDK ( Software Development Kit ), trong đó có bộ biên dịch (complier) tương thích với Lua.
  • Thứ ba : Cuối cùng, ta sẽ cần phải có một bộ text editor để bắt đầu thực hiện việc viết mã code Lua. Hãy sử dụng bất kì text editor nào mà bạn cảm thấy quen thuộc, tất cả đều có thể viết Lua, từ Notepad hay Vim hay Sublime ...
 
Top Bottom