با سلام،
دوست عزیز ببخشید با تاخیر جواب میدم...
کلا تقسیم بندی سبک های برنامه نویسی بستگی به زاویه ی دید داره و همین موضوع شاید کمی گیج کننده باشه.
از یه زاویه ی دید زبان های برنامه نویسی رو میشه به دو دسته ی زبان های دستوری (Imperative) و به زبان های اعلانی (Declarative) تقسیم کرد. سبک های شی گرا و یا رویه ای (Procedural) جز دسته ی زبان های دستوری هستن و سبک های تابعی (Functional) و یا منظقی (Logic) جز دسته ی زبان های اعلانی هستند. (منبع)
در زبان دستوری ما روند اجرای برنامه رو مرحله به مرحله شرح میدیم ولی در زبان های اعلانی فقط میگیم چی میخواییم. مثلا در حالت دستوری اگر بنده و دوستم به یه کافه بریم، دنبال یه میز خالی میگیردیم که حداقل دو صندلی داشته باشه، به سمت میز مورد نظر حرکت می کنیم و روی صندلی ها می نشینیم. ولی در حالت اعلانی تنها از متصدی کافه درخواست می کنیم که یه میز دو نفره برای ما فراهم کنه. (منبع)
یه زبان هم می تونه دستوری باشه و هم اعلانی مثل سی شارپ:
حالت دستوری
حالت اعلانیکد:List<int> collection = new List<int> { 1, 2, 3, 4, 5 }; List<int> results = new List<int>(); foreach(var num in collection) { if (num % 2 != 0) results.Add(num); }
هر دو کد بالا نتیجه ی یکسانی دارن ولی به دو سبک مختلف نوشته شدن. در حالت اول مرحله به مرحله تا استخراج اعداد پیش رفتیم ولی در حالت دوم فقط یه عبارت LINQ به کار بردیم. (منبع)کد:List<int> collection = new List<int> { 1, 2, 3, 4, 5 }; var results = collection.Where( num => num % 2 != 0);
این که کدوم حالت بهتره بستگی به کاربرد داره. مثلا برای برنامه نویسی موازی سبک تابعی مناسب تره چون طبق تعریف تابع خالص نباید اثر جانبی داشته باشه. اگر یه زبان برنامه نویسی از چندین سبک پشتیبانی کنه، هیچ چیز شما رو منع نمی کنه که از ترکیبی از سبک ها استفاده کنید.
تقسیم بندی زبان ها بین سبک های که شما فرمودید همیشه مطلق نیست ولی غالبا سی، اسمبلی و زبان ماشین رو جز سبک Imperative و زیر دسته ی Procedural قلمداد می کنن. (منبع)
شاد باشید
آرمین برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
Bookmarks