2009-08-13 65 views
24

Tôi đã đọc điều gì đó về Lua ngày nay, và tôi đã tự hỏi nó là gì.Lua, Lua là gì?

Tôi đã làm một Google và Wikipedia (Tôi hiểu nó cho đến khi họ bắt đầu nói về một C API) bit tìm kiếm tôi vẫn không hiểu nó.

Lua là gì? Có bất kỳ hướng dẫn cho người mới bắt đầu?

+2

Chính xác, bạn không hiểu gì? – Geo

+6

Một ngôn ngữ lập trình gọn gàng với một tên kỳ quặc! – NoMoreZealots

+0

@Geo. Lua là gì. –

Trả lời

31

Lua là một ngôn ngữ kịch bản cho C và C++. Nó cho phép sử dụng cú pháp đơn giản hơn của Lua và thực hiện các kịch bản lệnh này trong ứng dụng C/C++ của bạn. Vì vậy, bạn không phải biên dịch chương trình trên mỗi thay đổi, nhưng chỉ đơn giản là cung cấp một phiên bản tập lệnh mới.

Đối với hướng dẫn chỉ sử dụng google, bạn sẽ tìm thấy đủ để giữ cho bạn bận rộn trong những ngày tiếp theo.

+0

I'dd thêm vào đó nó cho phép khá dễ dàng gọi mã C (không biết về C + +, không bao giờ làm điều đó bản thân mình, vì vậy có thể) từ kịch bản Lua của bạn. Nó cũng nhỏ và khá nhanh. Mà làm cho nó một lý tưởng "keo" cho một ứng dụng. Oh, và nó là một trình phân tích cú pháp tệp cấu hình hoàn hảo (nếu bạn không nhập bất kỳ hàm nào vào ngữ cảnh thông dịch mà bạn sử dụng để phân tích các tệp cấu hình). –

+19

Nó không chỉ dành cho C/C++. Thời gian chạy Lua cũng có thể được sử dụng từ các ngôn ngữ khác và có các triển khai khác với ngôn ngữ chính thức. Bản thân Lua về mặt kỹ thuật không bị ràng buộc với C hoặc C++. – OregonGhost

40

Lua là ngôn ngữ lập trình thông dịch nhẹ được phát triển ở Braxin với trọng tâm là nhúng.

Nó được viết bằng Pure ANSI C có nghĩa là tính di động cao, ngay cả khi mã C++.

Dưới đây là một ví dụ:

print("Hello World!") 

Wikipedia Summary

Official Site

+5

Tôi muốn thêm rằng các trò chơi chính thống như crysis sử dụng nó cho kịch bản. –

+11

Đừng quên World of Warcraft! Quân đội của Lua tin tặc đã được sinh ra do trò chơi đó. –

14

Lua là ngôn ngữ kịch bản. Liên kết là lua.org. Nó được sử dụng nhiều trong phát triển trò chơi, đáng chú ý nhất (với tôi) World of Warcraft.

+7

Tôi tự hỏi nếu có ai đó nghĩ rằng tôi đã làm việc cho Blizzard. Tôi không. Tôi chỉ chơi và thích trò chơi trong một thời gian dài. Mặt khác, việc bỏ thuốc lá là điều tốt nhất cho cuộc đời tôi./nhún vai –

+0

Tôi đã cho bạn +1 cho sự tuyệt vời của câu trả lời của bạn! – Mark

10

Lua là ngôn ngữ kịch bản có thể nhúng, nhẹ. Nó thu hút rất nhiều sự nổi tiếng một phần do nó được sử dụng trong nhiều trò chơi phổ biến. Một ví dụ điển hình là World of Warcraft sử dụng phiên bản lua nhúng để điều khiển hành vi của các yếu tố giao diện người dùng trong trò chơi.

Một giới thiệu tốt để các ngôn ngữ có thể được tìm thấy ở đây: http://computer-programming-languages.suite101.com/article.cfm/a_brief_introduction_to_lua_scripting

Và tham khảo trực tuyến chính thức của ngôn ngữ có thể được tìm thấy ở đây: http://www.lua.org/manual/5.1/

8

Đó là một ngôn ngữ kịch bản được thiết kế để làm việc với C (và C++). Nó được thiết kế để nhúng vào các chương trình C/C++. Điều đó có nghĩa là không giống như nhiều ngôn ngữ kịch bản khác, nó không sử dụng các biến toàn cầu và như vậy, điều này có nghĩa là bạn có thể dễ dàng tạo các công cụ tạo kịch bản lệnh lua.

Nó cũng tuyên bố là ngôn ngữ kịch bản động nhanh nhất.

Tôi đã sử dụng nó trong ứng dụng C++ dựa trên PC để tạo giao diện tập lệnh plugin và cũng sử dụng nó làm ngôn ngữ kịch bản được nhúng. Nó khá đa dạng, đẹp và nhỏ.

làm ngôn ngữ kịch bản chung? Nó không hoàn toàn giống như ruby ​​/ python/perl. Nó không có nhiều thư viện và cộng đồng người dùng khá nhỏ.

Nhưng để mở rộng ứng dụng C++/C? tuyệt vời của nó.

24

Lua là một ngôn ngữ kịch bản lệnh đa ngôn ngữ có khả năng nhúng và có khả năng mở rộng nhẹ được nhập động đơn giản. Các "vani" (một số sẽ nói chính thức) thực hiện nó được thực hiện hoàn toàn trên ANSI C và có một API C tuyệt vời (đơn giản nhưng mạnh mẽ) mà bạn có thể sử dụng cho cả Lua nhúng trên ứng dụng của bạn hoặc mở rộng hành vi của chính ngôn ngữ đó. Nó được phát triển tại Khoa Tin học của Đại học Giáo hoàng Công giáo Rio de Janeiro (PUC-Rio).

Nghĩ rằng nó không được thiết kế chủ yếu cho điều đó, Lua tìm thấy một niche lớn trong kịch bản trò chơi, với những tên tuổi lớn như "Grim Fandango" và "World of Warcraft". Tuy nhiên, do tốc độ, tính đơn giản và tính di động của nó, nó cũng được sử dụng nhiều trong các hệ thống nhúng (xem, ví dụ, dự án eLua) và tính toán đồ họa.

Triết lý của nó là tối giản, tức là các thư viện cốt lõi của nó rất nhỏ với chức năng tối thiểu (giống như thư viện chuẩn của C), mặc dù thông qua API C, rất đơn giản để thêm các tính năng không thể thực hiện được Thư viện lõi tinh khiết, chẳng hạn như socket, GUIs… Trên thực tế, Lua rất tối giản rằng kiểu dữ liệu chính và chỉ có cấu trúc của nó là 'bảng', có thể được mô tả như mảng kết hợp trên 'roids.

Lua là thủ tục trong bản chất của nó, nhưng cũng hỗ trợ nhiều mô hình như lập trình chức năng và định hướng đối tượng.

Mặc dù Lua không phải là ngôn ngữ kịch bản nhanh nhất xung quanh (có thể là dự án V8 của javascript giành giải thưởng), nó rất nhanh (nhanh hơn ví dụ về vani hoặc Ruby) và cũng có tính năng triển khai chính thức không chính thức được gọi là LuaJIT.

Cuối cùng, Lua thực sự không phải là một ngôn ngữ thú vị để chơi, mà tôi khuyên bạn nên !. =)

Giới thiệu về hướng dẫn, tôi muốn giới thiệu bài viết về điều đó trên lua-users wiki.

Tôi hy vọng tôi đã giúp! =)

PS: Tôi không thể đăng tất cả liên kết vì tôi mới sử dụng ngăn xếp ngăn xếp, nhưng không khó để tìm mọi thứ trên Google. Lấy làm tiếc. = (

+1

Có điểm chuẩn nổi xung quanh, cho thấy triển khai JIT nhanh nhất là LuaJIT. Rõ ràng, LuaJIT thậm chí đã thực hiện trên V8. – TechZilla

3

Lua là SCRIPTING ngôn ngữ viết bằng C và thường được sử dụng trong phát triển trò chơi vì sức mạnh và tính linh hoạt của nó .Lua cũng là nền tảng để nó có thể được sử dụng ở mọi nơi trên nền tảng bất kỳ. . sử dụng như một ngôn ngữ lập trình với một chương trình tiện dụng tôi sử dụng gọi AutoPlay Media Studio cho phép bạn tạo các ứng dụng có đầy đủ tư cho nền tảng Windows tôi hy vọng điều này sẽ xóa mọi thứ cho bạn

website:..http://www.lua.org
AutoPlay Media Studio:http://www.indigorose.com.

3

API C, có vẻ là phần khiến bạn bối rối, được thiết kế để giúp bạn dễ dàng lấy mã C hiện có (hoặc mã C mới) và kiểm soát nó bằng tập lệnh Lua. Đây là ý nghĩa của việc nhúng. Thông qua việc nhúng, bạn có thể có giao diện dựa trên văn bản, nhẹ, lập trình, tương tác với bất kỳ mã C nào, cho rất ít nỗ lực. Ngay cả khi bạn không tự nhúng mọi thứ, Lua là một ngôn ngữ kịch bản rất hay.

Ví dụ yêu thích của tôi là một người đẹp đặt nhiều cuộc gọi hệ thống POSIX vào Lua.Khi tôi muốn một cái gì đó giống như một kịch bản shell nhưng phức tạp hơn, tôi chỉ có thể sử dụng thư viện này. Tương tự như vậy với thư viện MD5 và với nhiều thư viện khác.

Khi học Lua bạn có thể bỏ qua API C hoàn toàn — chỉ được hưởng lợi từ công việc của người khác với API — và nếu bạn cần nhúng mã của riêng mình, bạn có thể quay lại sau.

2

Lua là ngôn ngữ kịch bản lệnh mạnh mẽ, nhanh, nhẹ, có thể nhúng.

Lua kết hợp cú pháp thủ tục đơn giản với cấu trúc mô tả dữ liệu mạnh mẽ dựa trên mảng kết hợp và ngữ nghĩa mở rộng. Lua được tự động gõ, chạy bằng cách giải thích bytecode cho một máy ảo dựa trên đăng ký, và có bộ nhớ tự động quản lý với bộ sưu tập rác gia tăng, làm cho nó lý tưởng cho cấu hình, kịch bản, và tạo mẫu nhanh.

để biết thêm bạn có thể đọc here