'''زیرروال''' در [[برنامه نویسیبرنامهنویسی کامپیوتر]]، به دنباله ایدنبالهای از دستورالعمل هادستورالعملها گفته میشود که به صورت یک واحد بسته بندیبستهبندی شده، یک کار خاص([[Task (computing)|task]]) را برای یک برنامه انجام میدهدمیدهد. این واحد درآینده می تواندمیتواند هر کجا که آن کار خاص باید انجام شود استفاد یا فراخوانی شود.
زیربرنامه ممکن است داخل یک برنامه و یا به طور جداگانه داخل [[کتابخانه (رایانه)]] ای تعریف شده باشد که می تواندمیتواند توسط برنامه هایبرنامههای مختلف مورد استفاده قرار گیرد. در زبانزبانهای های برنامه نویسیبرنامهنویسی مختلف، زیرروال(subroutine) ممکن است با نام هاینامهای مختلف [[اسلوب (برنامهنویسی شیءگرا)|اسلوب]](method)، تابع(function)، روال(routine)، یا زیر برنامه(subprogram) شناخته شود. گاهی اوفات اصطلاح عمومی "«واحد قابل فراخوانی"» نیز استفاده میمیشود.<ref>{{cite شود.web
<ref>{{cite web
|author= U.S. Election Assistance Commission
|title= Definitions of Words with Special Meanings
|authorlink= Election Assistance Commission}}</ref>
نام زیربرنامه نشان می دهدمیدهد یک زیرروال رفتاری مشابه یک برنامه کامپیوتری دارد که به عنوان یک گام در یک برنامه بزرگتر یا زیربرنامه دیگر استفاده میشود. زیرروال اغلب کد میشود تا بتوان آن را چند بار و از مکان هایمکانهای مختلف در طول یک اجرای برنامه (از جمله در میان دیگر زیرروالهای کد شده) مورد استفاده قرار داد (به اصطلاح call کرد). پس از صدا کردن زیرروال و اجرای آن، برنامه به دستور بعدی پس از زیرروال برمیگرد.
[[موریس ویلکس]]، [[David Wheeler (British computer scientist)|دیوید ویلر]]، و [[Stanley Gill|استنلی گیل]] مخترعین این مفهوم شناخته شده اندشدهاند که آن را زیرروال بسته (در تقابل با زیرروال باز یا [[ماکرو]]<ref>{{cite web|last=Dainith|first=John|title="open subroutine." A Dictionary of Computing. 2004..|url=http://www.encyclopedia.com/doc/1O11-opensubroutine.html|work=Encyclopedia.com|accessdate=January 14, 2013}}</ref>
) نامیدهاند.<ref>{{Cite conference | last1 = Wheeler | first1 = D. J.| authorlink1 = David Wheeler (computer scientist) | chapter = The use of sub-routines in programmes | doi = 10.1145/609784.609816 | title = Proceedings of the 1952 ACM national meeting (Pittsburgh) on - ACM '52 | pages = 235 | year = 1952 | pmid = | pmc = | url = http://www.laputan.org/pub/papers/wheeler.pdf}}</ref><ref>{{cite book ▼
) نامیده اند.
▲<ref>{{Cite conference | last1 = Wheeler | first1 = D. J.| authorlink1 = David Wheeler (computer scientist) | chapter = The use of sub-routines in programmes | doi = 10.1145/609784.609816 | title = Proceedings of the 1952 ACM national meeting (Pittsburgh) on - ACM '52 | pages = 235 | year = 1952 | pmid = | pmc = | url = http://www.laputan.org/pub/papers/wheeler.pdf}}</ref><ref>{{cite book
|last1= Wilkes
|first1= M. V.
}}</ref>
زیربرنامه هازیربرنامهها از ابزار هایابزارهای قدرتمند [[برنامه نویسیبرنامهنویسی]] هستند<ref name="knuth1">{{cite book |title= The Art of Computer Programming, Volume I: Fundamental Algorithms |author= Donald E. Knuth |authorlink= Donald Knuth |publisher= Addison-Wesley |isbn=0-201-89683-4}}</ref> و قواعد نوشتاری ([[syntax (programming languages)|syntax]]) بسیاری از [[زبانزبانهای های برنامه نویسیبرنامهنویسی|زبان برنامهنویسی]]، استفاده از آنها را پشتیبانی میکند. استفاده از زیربرنامه اغلب موجب کاهش هزینه هایهزینههای توسعه و نگه داری برنامه هایبرنامههای بزرگ میشودمیشود. همچنین میزان کیفیت و اعتبار برنامه را افزایش می دهدمیدهد.<ref name="structprog">{{cite book |author= O. -J. Dahl |author2=E. W. Dijkstra |author3=C. A. R. Hoare |title= Structured Programming |publisher= Academic Press |year= 1972 |ISBN= 0-12-200550-3}}</ref> زیربرنامه هازیربرنامهها که میتوانند در کتابکتابخانهها خانه ها جمع آوریجمعآوری شوند، روش مهمی برای اشتراک یا تجارت نرم افزار هانرمافزارها به حساب میآیند.
== مفهوم کلی ==
محتوای یک زیربرنامه یا بدنه آن بخشی از کد برنامه است که هنگامی که زیرروال فراخوانده میشودمیشود به اجرا درمی اید. هنگامی که یک زیررزوال فراخوانی میشودمیشود ممکن است یک یا چند مقدار داده را به صورت ورودی بگیرد که به آنها [[آرگومان]] هایهای ورودی گفته میشود. زبان هایزبانهای مختلف برنامه نویسیبرنامهنویسی از شکل هایشکلهای مختلفی برای انتقال آرگومان هاآرگومانها بهره میگیرند. ▼
== مزایا ==
▲محتوای یک زیربرنامه یا بدنه آن بخشی از کد برنامه است که هنگامی که زیرروال فراخوانده میشود به اجرا درمی اید. هنگامی که یک زیررزوال فراخوانی میشود ممکن است یک یا چند مقدار داده را به صورت ورودی بگیرد که به آنها [[آرگومان]] های ورودی گفته میشود. زبان های مختلف برنامه نویسی از شکل های مختلفی برای انتقال آرگومان ها بهره میگیرند.
مزایای شکستن یک برنامه به زیربرنامههای مختلف به شرح زیر است:
* تجزیه کردن یک برنامه برای انجام کاری خاص به گامهای سادهتر (یکی از دو ابزار اصلی [[برنامهنویسی ساختیافته]])
* کاهش دادن [[duplicate code|کدهای تکراری]] در یک برنامه
* فراهم کردن امکان [[reuse of code|استفاده مجدد از کد]] در برنامههای مختلف
* ایجاد امکان تقسیم کار بهتر بین برنامهنویسان یک پروژه برنامهنویسی بزرگ
* امکان [[نهانسازی اطلاعات]] از کاربران زیربرنامه
* افزایش قابل ردیابی بودن فرایند اجرای برنامه
== منابع ==
{{Reflistپانویس}}
{{دادههای کتابخانهای}}
|