الدالة الرئيسية فى البرمجة

في البرمجة ،الدالة الرئيسية هي الدالة التي يبدأ تنفيذها أولاً في الكود ، وتحتوى باقى الدوال الثانوية بداخلها

لبدء تشغيل البرنامج، يقوم نظام التشغيل بنقل التحكم إلى الدالة الرئيسية أو بمعنى أدق يقوم بمنح الدالة الصلاحية لاستخدام موارد الجهاز. ( أثناء اقلاع النظام يتم نقل التحكم بداية من البيوس إلى نظام التشغيل)

بالنسبة لبعض أنظمة التشغيل ولغات البرمجة ، الدالة الرئيسية تكون عبارة عن مكتبة تعمل في الوقت الحقيقى لتشغيل البرنامج، وهي مجموعة من وظائف الدعم للغة. تقوم أكواد المكتبة بتهيئة البرنامج ثم نقل التحكم إلى التعليمات أو الدوال الثانوية

في الأنظمة البسيطة، يبدأ التنفيذ من العبارة الأولى، وهي شائعة في اللغات التي تستخدم interpreted بدلا من الكومبايلر مثل لغة البرمجة بايثون ، والتنسيقات البسيطة القابلة للتنفيذ مثل عبارات وأمر الطباعة والإدخال .
في لغات JVM مثل Java ، تكون نقطة البداية ثابتة تسمى main ؛ في لغات CLI مثل لغة #C ، تكون نقطة الإدخال طريقة ثابتة تسمى main

 الفائدة 
تنطبق نقاط الإدخال على كل من الأكواد البرمجية المصدرية والملفات القابلة للتشغيل (أى تكون بلغة الآلة). ومع التطور المستمر للبرمجيات، يجدد المبرمجون الدوال الرئيسية فقط في شفرة المصدر، مما يجعلها أسهل للتعرف عليها. تعتمد نقاط الإدخال في الملفات القابلة للتنفيذ على الواجهة الثنائية للتطبيق (ABI) لنظام التشغيل الفعلي، ويتم إنشاؤها بواسطة الكومبايلر أو اللينكر (إذا لم يتم إصلاحها بواسطة ABI). قد تحتوي ملفات الكائنية الأخرى أيضًا على نقاط دخول، يتم استخدامها لاحقًا بواسطة اللينكر عند إنشاء ملف قابل للتنفيذ.

الدوال الرئيسية قادرة على تمرير الأكواد والدوال أو المتغيرات أو غيرها من المعلومات كمتغير محلي تستخدمه طريقة Main() بهذه الطريقة، يمكن تعيين خيارات محددة عند تنفيذ البرنامج، ثم تفسيرها بواسطة االكومبايلر. تستخدم العديد من البرامج هذا كطريقة بديلة لتكوين إعدادات مختلفة، أو تنفيذ مجموعة مختلفة من الإجراءات باستخدام برنامج واحد.

 C \ C++ 
في C وC ++ ، يمكننا أن نرى الطريقة التي تعمل بها الدالة الرئيسية في الكود التالى:
كود ......int main(void)
{//the body where the secondery functions are written

}
return 0;;() int main

return 0

;

 مراجع 

تصنيف:برمجيات
تصنيف:برمجة
تصنيف:تدفق السيطرة
تصنيف:لغات برمجة .نت