لغة 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
>
وهذه النتيجة ومبروك عليكم – في حال لم تفهم وكنت تستعمل اللينكس قم بتنزيل اللغة من مستودعات توزيعتك
اخواني مستعملين الويندز ابحثوا في القوقل لماذا؟ بسبب التعصب ضد الويندز!  امزح معكم فقط قوموا بتنزيل مشروع  mingw ثم ادخلوا على الطرفية واكتبوا make mingw فقط او  ادخلوا على قوقل كود وعلى هذا المشروع بالتحديد وقوموا بتنزيل المشروع وفقط
الان لنكتب اول مثال لنا وهو على العادات والتقاليد مرحبا ايها العالم
print “Hello World!”
طبعا كل سطر يمكن ان ينتهي بي ; او لا لا يوجد فرق والقواعد الخاصة في هذه اللغة اقرب الى لغة الجافاسكربت بالطبع لن استطيع تغطية كل شيء عن اللغة الان, لمعرفة كل شيء عن اللغة استعمل هذه الكتب
الان فقط
 سوف اشرح كيفية عمل ابسط كود للغة كبرنامج تنفيذي بلغة ++C لاني وعدتكم في الاعلى اني سافعل ذلك – ملحوظة البرمجة على اللينكس اسهل من الويندز فاستعملوا اللينكس في البرمجة:نصيحة-
الان يجب عليك ان تكون قد نزلت نزلت اللغة ومكتبة اللغة و Headers  الان تضع هذا الكود ونترجمه وكل شيء – هو بلغة C++-
#include <lua.hpp>
int main( int argc, char *argv[]){
    return 0;
}
الان نترجم الكود من خلال g++ والكود هو طبعا انا سميت الملف lua.cpp:
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;
}
اول كود بعد الدالة الرئيسية هو اهم سطر سوف تستعمله في كل برامجك في هذه اللغة لن تغيره لانه هو المتغير الذي بحتفظ بكل شيء عن برنامجك
ثاني سطر هو يقوم بفتح كل المكتبات المسجلة في اللغة مثل مكتبة الرياضيات وغيرها بعدها قمنا بوضع نص لتنفيذه ثم قمنا باستدعائه في السطر التالي
   واهم شيء هو ان لا ننسى ان نغلق البرنامج من خلال الدالة الاخيرةالتي تعمل على تنظيف المتغير وتحرير الذاكرة….الخ
 الان الى هنا اكون قد شرحت مثال بسيط اذا اردت التوسع فما عليك الان ان تقرا الكتب المرفقة في الرابط الذي في الاعلى
 الرابط مرة اخرى هو هذه الكتب
 الدرس القادم يسكون كيفية برمجة اضافات لاداة
nmap
الى الدرس القادم القاكم اي سؤال انا موجود :]

شارك هاذا المقال !

bem981

مبرمج لدي خبرة في البرمجة في اكثر من لغة ومهتم في عالم الاختراق وكل ما هو جديد فيه

لا توجد تعليقات

أضف تعليق