لغة Lua اللغة التي جمعت الحجم الصغير مع القوة
لغة لوا هي احد اللغات البرمجية التي استطاعت جمع القوة مع صغر الحجم
ما هي هذه اللغة
اولا ما هي هذه اللغة ولماذا سوف اقوم بشرحها؟
سوف اقوم بشرحها بسبب القوة الموجودة في هذه اللغة وايضا اداة nmap تتطلب معرفة بلغة Lua من اجل كتابة اضافة لها وهذا ما سوف اشرحه في الدرس القادم 😀
لغة لوا تلفظ بالانجليزية ( LOO-ah ) ومعناها في البرتغالية القمر – اسم جميل حسب راي الشخصي :3 – وحسب المبرمجين فهم يفضلوا ان تكتب بهذه الصورة “Lua” واحتراماً لهم سوف نلتزم بذلك 🙂
الان بدات هذه اللغة سنة 1993 على يد فريق عمل من جامعة PUC-Rio وهم انظر لهذه الصفحة
طبعا يمكن استعمال هذه اللغة كلغة تفسيرية مثل البايثون او الروبي …الخ – هنا الاعلى –
او تنفيذية – وهنا تكمن القوة – حيث يمكن برمجة برنامج تنفيذي وليس مفسر كيف هذا ما سوف نتطرق اليه اليوم وما ذكر في الاعلى ايضا
ولكن نستطيع عمل ذلك في كل – تقريبا – اللغات التفسيرية مثل البايثون او PHP او حتى الروبي ولكن ما الذي يجعل هذه اللغة – Lua – مميزة عن غيرها من اللغات؟
الجواب يكمن في حجم البرنامج التنفيذي! هل جربت ان تبرمج برنامج تنفيذي بلغة php؟ انا جربت والنتيجة – دون ان اترجم مع البرنامج اي اضافة باستثناء اضافة الـ(Core) – كانت 5 ميغا بايت والبايثون نفس الحجم – للامانة لم اجرب الروبي!- وكانت افضل طريقة وجدتها لعمل برنامج تنفيذي بلغة python او php كانت عن طريق ملفات dll في الويندز او so في *nix وايضا هذه اللغات لم تخصص من اجل هذا الغرض لكن لغة Lua خصصت من اجل هذا الغرض حيث يمكنك عمل برنامج تنفيذي بسعة 200 كيلو بايت – يمكنك عمل نفس البرنامج بلغة Assembly بحجم 1 كيلو بايت لكن لا يهم – طبعا باستعمال هذه الخاصية تم تضمين مفسر اللغة في الكثير من البرمجيات لعمل اضافات لها – لصغر حجم المترجم الذي لا يذكر لدرجة كبيرة – مثل هذه البرمجيات اداة Nmap وايضا البرنامج الشهير Adobe Photoshop وايضا الالعاب تستعمل هذه اللغة للاضافات وغيرها من الاجزاء والعديد من البرمجيات الاخرى
الان لتحميل هذه اللغة من الموقع الرسمي
الان من هنا نكون قد نزلنا السورس كود للترجمة اتبع ما يلي في اللينكس او الماك من خلال التيرمنال:
wget http://www.lua.org/ftp/lua-5.3.0.tar.gz #تخطى هذه الخطوة اذا قمت بتنزيل اللغة من الموقع الرسمي
tar -zxvf lua-5.3.0.tar.gz # فك ضغط اللغة
cd lua-5.3.0
make [platform]
طبعا استبدل مكان [platform] باسم المنصة التي لديك linux او mac لمعرفة المنصات المدعومة فقط اكتب make وبعد الترجمة اكتب
طبعا في حال اللينكس او الماك [ لا اعلم عن الويندز كيف ستكون النتيجة لم اجرب :\ ]
~$ src/lua
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
>
print “Hello World!”
#include <lua.hpp>int main( int argc, char *argv[]){return 0;}
g++ lua.cpp -llua -o lua
#include <lua.hpp>int main( int argc, char *argv[]){
lua_State *L = luaL_newstate();
luaL_openlibs(L);
luaL_loadstring(L,”print ‘Hi!'”);
lua_pcall(L,0,0,0);
lua_close(L);
return 0;
}
إرسال التعليق