# أداة برمجة

أدوات البرمجة أو (أدوات تطوير البرامج) هي مجموعة من البرامج الحاسوبية التي يتم استخدامها من قبل المبرمجين أو المطورين لبناء وإنشاء ومعالجة وصيانة البرامج والتطبيقات. ربما يعبر هذا المصطلح ويشير إلى مجموعة من التطبيقات والبرامج البسيطة والسهلة التي تساعد في إنجاز المهمات، كما هو الحال الآن بتواجد العديد من البرامج اليدوية التي تساعد في تمكين الفرد من إصلاح عناصر بشكل فيزيائي. في عالم تطوير البرمجيات، هنالك عدة مكونات أساسية من أهمها هي «محرر مصادر الأكواد البرمجية» (source code editor), «المحول البرمجي» (compiler) و «المترجم» (Interpreter). كل هؤلاء العناصر هي مكونات رئيسية لا غنى عنها، تستخدم بشكل مطلق ومستمر في عالم البرمجيات والتطوير. بالإضافة، هناك العديد من برمجيات التطوير في في عالم الحوسبة، قد تزيد نسبة استخدام بعضها وقد يكون البعض منها غير مستخدمة بإستمرار، وهذا المعيار يحكمه المطور أو المبرمج بذاته. قد تكون الأدوات على هيئة برامج منفصلة متعددة يتم تشغيلها عبر «واجهات سطور الأوامر» في أنظمة التشغيل، أو قد تكون أيضا متجزئة من برامج أخرى كبيرة الحجم تدعى «بيئة التطوير المتكاملة» ويرمز لها عادة باللغة الإنجليزية "IDE". في أغلب الأحيان وبالتحديد عند الاستخدام السهل والغير معقد أو للإجرائات السريعة والسهلة، يتم استخدام حيل وطرق مشتهرة ومعروفة عند المبرمجين المحترفين بحيث تنجز لهم المهام المطلوبة من دون الحاجة إلى تنزيل وتحميل الأداة البرمجية المختصة. على سبيل المثال، عندما يرغب المبرمج في تصحيح كود برمجي معين (debugging), بالإمكان استخدام طرق معينة مثل استخدام المصحح البرمجي السريع المدمج في متصفحات الإنترنت نفسها ومن دون اللجوء إلى تنزيل وتحميل أدوات برمجية خاصة للتصحيح البرمجي.
هناك غموض واضح لدى الكثير من الناس حول التفرقة مابين الأدوات والتطبيقات. وللتوضيح، يستخدم المطورين والمبرمجين «الأدوات» كوسيلة في كل الأوقات عند التعامل مع قواعد البيانات التي تتكون من ملفات يخزن فيها كافة العناصر والمعلومات المهمة. ولكن عند التعامل مع قواعد بيانات قد تم تطويرها بالكامل، فهي حينئذ تصبح بحد ذاتها «تطبيق». لسنوات عديدة، كانت ولازالت الهندسة البرمجية باستخدام الحاسب هي الأكثر طلباََ واستخدام، حيث أنها أدت نجاحات باهرة في الصناعات والهندسة المعمارية وقطاعات التصميم العام، ولكن برامج البيئة المتكاملة "IDE" هي الأكثر نجاحاً.

## استخدامات أدوات البرمجة
### الترجمة من لغة الإنسان إلى لغة الحاسب (لتنفيذ المهام)

الحواسب الذكية والحديثة تعتبر جداً معقدة، ومن أجل برمجتها، يجب جرد العديد من الأفكار. على سبيل المثال، عوضاً عن الكتابة باللغة الثنائية وتمثيلها برمجياً، سيتطرق المبرمج بكتابة الكود البرمجي باستخدام لغات مفهومة له مثل لغة سي، ولغة الجافا ولغة البايثون (C, Java, Python). أدوات أو مكونات البرمجة الأساسية التي قمنا بتعريفها سابقاً ستقوم بترجمة وتحويل هذه اللغات المستخدمة والمفهومة من قبل الإنسان إلى (bits & bytes) بحيث تمكن الحاسب نفسه من فهمها وقرائتها ثم بعد ذلك تشغيل أو تنفيذ المهام التي قام بطلبها المبرمج والمطور.
تؤدي هذه البرامج العديد من المهام المحددة والمكررة بشكل جيد والتي ستكون مضيعة للوقت ومعرضة للخطأ عند القيام بها من قبل الأفراد/المستخدمين، مثل وضع أجزاء من البرنامج في الذاكرة وتحديد المراجع بين أجزاء البرنامج كما يفعل الموصل. يمكن أن يؤدي تحسين برامج التحويل البرمجي من ناحية أخرى إلى إجراء تحويلات معقدة على التعليمات البرمجية المصدر لتحسين سرعة التنفيذ أو الخصائص الأخرى للبرنامج. يسمح هذا للمبرمج بالتركيز أكثر على الجوانب المفاهيمية العليا للبرنامج دون القلق بشأن تفاصيل الجهاز الذي يعمل عليه.

### إتاحة معلومات البرامج للأفراد

بسبب كمية التعقيد الكبيرة في أنظمة البرمجيات، من الصعب جداً المعرفة والإلمام التام بكافة عناصر وأدوات البرمجة حتى ولو كان هذا البرمج أو المطور خبير جداً ولديه خبرة متميزة. أيضاً، من الصعب جداَ فهم العلاقة الذي تدور وتتصل مابين مصادر السطور البرمجية الذي قد تم كتابتها بواسطة المبرمج وسلوك البرنامج نفسه. عندما يتم إنشاء برامج جديدة عبر المطورين، يحتمل وجود أخطاء برمجية، ومن أجل العثور على هذه الأخطاء من قبل البرمجين/المطورين، يتم استخدام أدوات برمجية أخرى لإستكشاف المزيد من المعلومات الأخرى عن البرامج المستخدمة.
على سبيل المثال، يسمح مصحح الأخطاء للمبرمج باستخراج معلومات حول برنامج قيد التشغيل من حيث اللغة المصدر المستخدمة في البرنامج. يمكن للمصحح حساب قيمة متغير في البرنامج المصدر من حالة الجهاز الملموسة باستخدام المعلومات المخزنة بواسطة برنامج التحويل البرمجي. يمكن أن تشير مصححات الذاكرة مباشرة إلى الوصول إلى الذاكرة الخاطئة المشكوك فيها أو الصريحة في تشغيل البرامج التي قد تظل غير مكتشفة، وهي مصدر شائع لفشل البرنامج.
أدوات البرمجة تأتي بمسميات وأشكال وأنواع مختلفة عديدة:
* أدوات تحليل الأنظمة الثنائية وتوافقها.
* أدوات تتبع الأخطاء في قواعد البيانات.
* أدوات الإنشاء.
* أدوات الرسم البياني
* أدوات تشفير البرامج
* أدوات التعليمات البرمجية.
* الأدوات الموجودة في مواقع المشاركة مثل: سورس فورج، غيت هاب.
* أدوات التجميع والربط: gcc، Microsoft Visual Studio ،rior، ICC.
* أدوات تصحيح الأخطاء: مصحح# قائمة مصححات الأخطاء. انظر أيضا تصحيح الأخطاء.
* أدوات التفكيك: أدوات الهندسة العكسية عمومًا.
* أدوات الوثائق: مقارنة الوثائق، help2man، الوثائق القديمة البسيطة.
* أدوات الطرق الرسمية: التقنيات الرياضية للمواصفات والتطوير والتحقق.
* أدوات واجهة المستخدم الرسومية
* أدوات واجهة المكتبة.
* أدوات التكامل.
* مولدات المحلل اللغوي: Parsing# Parser development software
* تحليل الأداء أو التنميط: قائمة أداة تحليل الأداء
* التحكم في المراجعة: قائمة ببرنامج التحكم في المراجعة، مقارنة بين برنامج التحكم في المراجعة.
* لغات البرمجة النصية: PHP وAwk وPerl وPython وREXX وRuby وShell وTcl.
* أدوات البحث: grep.
* شفرة المصدر استنساخ / الازدواجية الحقائق: تكرار رمز# أدوات
* محرر شفرة المصدر.
* أدوات وبرامج تحرير النصوص: قائمة برامج تحرير النصوص.
* تنسيق التعليمات البرمجية: المسافة البادئة، الطابعات.
* أدوات إنشاء شفرة المصدر: البرمجة التلقائية # التطبيقات.
* تحليل الكود الثابت: الوبر، قائمة أدوات تحليل الكود الثابت.

## بيئات التطوير المتكاملة

تجمع بيئات التطوير المتكاملة ميزات العديد من الأدوات في حزمة واحدة. فهي على سبيل المثال تسهل القيام بمهام محددة، مثل البحث عن المحتوى فقط في الملفات في مشروع معين. يمكن استخدام IDEs على سبيل المثال لتطوير التطبيقات على مستوى المؤسسة.
يمكن العثور على جوانب مختلفة من IDEs للغات برمجة معينة في هذه المقارنة لبيئات التطوير المتكاملة.