TGViewer
کداکسپلور | CodeExplore کداکسپلور | CodeExplore @codeexplore · 9.19K subscribers
Post #4490 2.19K
بریم یکم راجب زبانی حرف بزنیم که بهش کم توجهی شده

زبان برنامه‌نویسی (لوا 👩‍💻 Lua)
یکی از شاهکارهای دنیای نرم‌افزار که با هدف سادگی، سرعت زیاد و حجم بسیار کم طراحی شده این زبان در سال 1993 توسط تیمی از دانشمندان دانشگاه کاتولیک ریو دو ژانیرو در برزیل متولد شد.
نام لوا در زبان پرتغالی به معنای ماه (🌕) است. این زبان به صورت کاملاً مستقل اجرا نمی‌شود بلکه به عنوان یک زبان اسکریپت‌نویسی تزریقی طراحی شده است تا درون برنامه‌های بزرگ‌تر قرار بگیرد و به کاربران اجازه شخصی‌سازی و کنترل محیط برنامه را بدهد.

موفقیت بزرگ لوا در دنیای بازی‌سازی رقم خورد جایی که به عنوان موتور اصلی اسکریپت‌نویسی بازی‌های معروفی مثل Roblox و دنیای وارکرفت انتخاب شد
و حتی Nginx هم توی خودش از زبان لوا استفاده کرده

مدیریت حافظه در لوا کاملا خودکاره و برنامه‌نویس نیازی به آزادسازی دستی حافظه نداره این زبان از یک سیستم جمع‌آوری زباله بسیار پیشرفته و مرحله‌ای استفاده می‌کنه که در پس‌زمینه اجرا میشه و اشیایی رو که دیگه در کد استفاده نمیشه، از حافظه پاک می‌کنه تا از کند شدن برنامه جلوگیری کنه
ساختار داده ها توی لوا در اوج سادگیه؛ این زبان تنها یک ساختار داده همه‌فن‌حریف به نام Tabel دارد که می‌تواند به عنوان آرایه، لیست، دیکشنری و حتی برای شبیه‌سازی برنامه‌نویسی شی‌گرا استفاده بشه
یعنی ما توی زبان لوا شی گرایی نداریم ولی همون کار شی گرایی و حتی ارث بری رو میتونیم با همون تیبل ها شبیه سازی کنیم و استفاده کنیم

تمام هسته اصلی کامپایلر و مفسر لوا با زبان برنامه‌نویسی (👩‍💻) نوشته شده انتخاب زبان سی به این دلیل بود که لوا بتونه روی هر دستگاهی، از ابر رایانه‌ها گرفته تا ساعت‌های هوشمند و روترهای شبکه، بدون هیچ مشکلی اجرا بشه کل حجم مفسر لوا تنها چندصد کیلوبایته که نشون میده بهینه‌سازی فوق‌العاده کدهای سی در ساختارشه
وقتی شما یک خط کد در لوا می‌نویسید، این کد بلافاصله به زبان ماشین تبدیل نمیشه بلکه یک فرآیند چندمرحله‌ای را پشت سر می‌گذارد
در مرحله اول، تحلیل‌گر متنی کد شما را می‌خواند و ساختار متنی را به نشانه‌ها یا توکن‌ها تبدیل می‌کند.
در مرحله دوم، این توکن‌ها به یک درخت ساختار درختی یا همان درخت نحو انتزاعی تبدیل می‌شوند تا منطق برنامه بررسی شود.
در مرحله سوم، کامپایلر داخلی لوا این درخت را به یک زبان میانی بسیار بهینه به نام بایت‌کد تبدیل می‌کند. بایت‌کدها دستورالعمل‌های فشرده‌ای هستند که برای پردازنده‌های واقعی نیستند، بلکه برای یک پردازنده فرضی ساخته شده‌اند.
در مرحله چهارم، ماشین مجازی لوا که بر پایه ثبات‌ها طراحی شده است، این بایت‌کدها را برداشته و یکی پس از دیگری به دستورات بومی پردازنده یا همان کد ماشین تبدیل و اجرا می‌کند.
این معماری مبتنی بر ثبات باعث شده که لوا نسبت به زبان‌هایی مثل پایتون که از معماری پشته استفاده می‌کنند، سرعت اجرای بسیار بالاتری داشته باشد.
اگر از نسخه‌های پیشرفته‌تر مثل Lua JIT استفاده کنید، مرحله بایت‌کد مستقیماً در زمان اجرا به کد ماشین کامپایل می‌شود که سرعتی نزدیک به زبان سی رو میده

برای نصب و استفاده هم کافیه برید توی سایت رسمی خود زبان لوا یعنی

https://www.lua.org


توی سایت خود لوا که برید برای تازه کار ها شاید یکم عجب باشه و دنبال فایل نصبی و یا باینریش بگردن برای ویندوز. ولی باید بگم که اونجوری نیست و فقط سورس زبان توی سایت در دسترسه و باید اون رو با زبان سی بیلد کنید و تبدیل به باینری کنید تا بتونید استفاده کنید چون هیچ نصب کننده ای و یا رابط گرافیکی مثل پایتون براش وجود نداره ولی میتونید از گیتهاب و سایت های مختلف اخرین نسخه بیلد شده و اماده رو دانلود کنید
ولی بر خلافش توی لینوکس راحته و توی ترمینال با دستور sudo apt install lua نسخه باینری و قابل استفاده لوا براتون نصب میشه و در مک هم قضیه همینطوره


#lua #article
☕️ Telegram | Website | Discord
  • ❤‍🔥 12
  • ⚡ 4
  • 🔥 3
  • 😁 1
More from @codeexplore
  1. Oct 3, 2026♨️گیت هاب قابلیت Computer Use رو به‌صورت Public Preview به GitHub Copilot CLI و اپ Copilot…
  2. Oct 3, 2026🤨🧐 #fun ☕️ Telegram | Website | Discord
  3. Oct 3, 2026پایتون 3.15 منتشر شد🎉 البته 1.5 روز تاخیر توی انتشار داشت ولی خب از امروز قابل دسترسه. #p…
  4. Oct 2, 2026وقتی OpenAI آپدیت جدید میده: #fun #chatgpt ☕️ Telegram | Website | Discord
  5. Oct 2, 2026✨ اکانت ChatGPT Plus پیش‌ساخته یک ماهه، کاملاً اختصاصی🔐 ‌ ✅ ۱۰ روز گارانتی بی‌قید و شرط ‌…
  6. Oct 2, 2026Post #4841
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →