یک زبان برنامهنویسی میتواند یک یا چند شیوه برنامهنویسی را پشتیبانی نماید. برای مثال، برنامههای نوشته شده با PHP میتوانند کاملاً بصورت رویهای باشند یا کاملاً منطبق بر شیوه برنامهنویسی شئگرا که در تضاد کامل با شیوه رویهای ست بوده یا حتی حاوی عناصری از هر دو شیوه باشند. تصمیمگیری برای چگونگی استفاده از عناصر شیوههای برنامهنویسی برعهده طراح برنامه یا برنامهنویس میباشد.
@cafeamoozesh
@cafeamoozesh
۱- برنامهنویسی رویه ای (procedural) :
یا برنامهنویسی رَوال وار یکپارادایم برنامهنویسی بر پایه مفهوم فراخوانی پروسهها است. پروسه که همچنین به نامهای روال، زیرروال (سابروتین)، تابع، روش شناخته میشود، دربردارنده یک سری گامهای محاسباتی است که باید توسط رایانه اجرا شوند.
هر پروسه میتواند در هر نقطهای در طول اجرای برنامه فراخوانده شود شامل فراخوانی پروسه توسط خودش (برنامهنویسی بازگشتی) یا پروسههای دیگر.
@cafeamoozesh
یا برنامهنویسی رَوال وار یکپارادایم برنامهنویسی بر پایه مفهوم فراخوانی پروسهها است. پروسه که همچنین به نامهای روال، زیرروال (سابروتین)، تابع، روش شناخته میشود، دربردارنده یک سری گامهای محاسباتی است که باید توسط رایانه اجرا شوند.
هر پروسه میتواند در هر نقطهای در طول اجرای برنامه فراخوانده شود شامل فراخوانی پروسه توسط خودش (برنامهنویسی بازگشتی) یا پروسههای دیگر.
@cafeamoozesh
۲-۱ برنامهنویسی شیءگرا :
( Object-Oriented Programming-OOP)
یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شیءها میباشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا میکند. به این معنا که دادهها و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله میشوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را میدهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگیهای برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایمهای برنامه نویسی است.
@cafeamoozesh
( Object-Oriented Programming-OOP)
یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شیءها میباشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا میکند. به این معنا که دادهها و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله میشوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را میدهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگیهای برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایمهای برنامه نویسی است.
@cafeamoozesh
۲-۲ فلسفه یی که منجر به شکل گیری ی زبانهای شی گرا شد، عبارت بود از این واقعیت که نحوهٔ عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوه یی شی گراست، از همین روی میبایستی زبانی تعریف میشد که همین شیوه را مبنای کار خود قرار داده و بازتولید میکرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در زبانهای برنامه نویسینیز میبایستی این اصول کلی برقرار میشد. تا به این شکل، برنامه نویس بتواند با بهرهگیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شیهای مختلفی را تعریف نموده، این شیها را در ارتباط با یکدیگر قرار داده و از شیهای پویای تولید شده برای حل مسئله ی پیش روی استفاده نماید. امروزه اکثر زبانهای دستوری برنامه نویسی از فنون شیءگرایی پشتیبانی میکنند. زبانهایی مانند جاوا، سی++، سی شارپ، دلفی از جمله زبانهای شیءگرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامهها در آنها بلوکهایی با نام پروسیجر است امروزه از فنون شیءگرایی نیز پشتبانی میکنند. زبانهای سی++ و پیاچپی از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده میشوند. در این پارادایم برنامه نویسی، دید برنامه نویس به سیستم دید شخصی است که سعی مینماید با پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید. (مفهوم مدیریت دیداری)
@cofeamoozesh
@cofeamoozesh
۳- برنامهنویسی تابعی :
(Functional programming)
نوعی پارادایم برنامهنویسی است که در آن «محاسبات» به صورت ارزشیابی توابع ریاضی در نظر گرفته میشوند.
@cafeamoozesh
(Functional programming)
نوعی پارادایم برنامهنویسی است که در آن «محاسبات» به صورت ارزشیابی توابع ریاضی در نظر گرفته میشوند.
@cafeamoozesh
۴- برنامهنویسی ساختیافته :
نوعی دیگر از پارادایم های برنامهنویسی است که طبق آن برنامهنویس قدمها و روالهایی را که لازم است تا برنامه به جواب برسد، مشخص میکند. در این روش از برنامهنویسی، انجام یک روال به روالهای کوچکتر تقسیم میشود و به این ترتیب یک برنامه با شکسته شدن به ریز برنامههای کوچکتر سعی میکند تا عملکرد مد نظر را پیادهسازی کند.
@cafeamoozesh
نوعی دیگر از پارادایم های برنامهنویسی است که طبق آن برنامهنویس قدمها و روالهایی را که لازم است تا برنامه به جواب برسد، مشخص میکند. در این روش از برنامهنویسی، انجام یک روال به روالهای کوچکتر تقسیم میشود و به این ترتیب یک برنامه با شکسته شدن به ریز برنامههای کوچکتر سعی میکند تا عملکرد مد نظر را پیادهسازی کند.
@cafeamoozesh
۵- برنامهنویسی منطقی :
( Logic Programming)
برنامهنویسی است که بهصورت عمده برپایهٔ منطق گسترش یافتهاست. هر برنامه در یک زبان برنامهنویسی منطقی، مجموعهای از جملات منطقیست که حقایق (Facts) و قوانین( Rules) یک مسأله را شرح میدهد. از رایجترین زبانهای برنامهنویسی منطقی میتوان به پرولوگ و دیتالاگ اشاره کرد. در این زبانها قوانین به شکل بند یا ردیف درج میشوند.
@cafeamoozesh
( Logic Programming)
برنامهنویسی است که بهصورت عمده برپایهٔ منطق گسترش یافتهاست. هر برنامه در یک زبان برنامهنویسی منطقی، مجموعهای از جملات منطقیست که حقایق (Facts) و قوانین( Rules) یک مسأله را شرح میدهد. از رایجترین زبانهای برنامهنویسی منطقی میتوان به پرولوگ و دیتالاگ اشاره کرد. در این زبانها قوانین به شکل بند یا ردیف درج میشوند.
@cafeamoozesh
۶-برنامهنویسی دستوری :
( Imperative programming)
درعلوم یارانه یکی از شیوههای برنامهنویسی است که در آن مراحل اجرای یک برنامه کامپیوتری قدم به قدم توسط برنامه نویس بیان میشود. این بر خلاف زبانهای اعلانی است که در آنها تنها نتیجه انجام دستورات بیان میشود. به بیان دیگر در زبانهای دستوری چگونگی اجرای برنامه بیان میشود اما در زبانهای اعلانی چیستی نتیجه بیان میشود.
به عنوان مثال اگر قصد باز کردن دری را داشته باشیم و با زبان اعلانی این را بخواهیم بیان کنیم خواهیم گفت در را باز کن اما اگر با زبان دستوری بیان کنیم خواهیم گفت بلند شو، به طرف در نزدیک شو، دستگیره را بگیر و در را به طرف بیرون هل بده.
@cafeamoozesh
( Imperative programming)
درعلوم یارانه یکی از شیوههای برنامهنویسی است که در آن مراحل اجرای یک برنامه کامپیوتری قدم به قدم توسط برنامه نویس بیان میشود. این بر خلاف زبانهای اعلانی است که در آنها تنها نتیجه انجام دستورات بیان میشود. به بیان دیگر در زبانهای دستوری چگونگی اجرای برنامه بیان میشود اما در زبانهای اعلانی چیستی نتیجه بیان میشود.
به عنوان مثال اگر قصد باز کردن دری را داشته باشیم و با زبان اعلانی این را بخواهیم بیان کنیم خواهیم گفت در را باز کن اما اگر با زبان دستوری بیان کنیم خواهیم گفت بلند شو، به طرف در نزدیک شو، دستگیره را بگیر و در را به طرف بیرون هل بده.
@cafeamoozesh
۷-برنامهنویسی رویداد گرا:
یک الگوی برنامهنویسی است که در آن، روند اجرای برنامه توسط رویدادها - برای مثال، خروجی یک سنسور یا دستورهای کاربر (کلیکهای موس، دکمههای کیبورد) یا پیامهای دریافتی از سایر برنامهها یا رشتهها - تعیین میگردد.
برنامه نویسی رویداد گرا را میتوان به عنوان یک تکنیکمعماری نرمافزار تعریف کرد که در آن نرمافزار یک حلقه اصلی دارد که به روشنی به دو بخش زیر تقسیم میشود:
نخست، انتخاب رویداد (یا شناسایی رویداد)و دوم، اداره کردن رویدادها
برنامههای رویداد گرا را میتوان در هر زبانی نوشت، اگرچه این کار در زبانهایی که سطح بالایی از انتزاع را فراهم میکنند، آسان تر است.
@cafeamoozesh
یک الگوی برنامهنویسی است که در آن، روند اجرای برنامه توسط رویدادها - برای مثال، خروجی یک سنسور یا دستورهای کاربر (کلیکهای موس، دکمههای کیبورد) یا پیامهای دریافتی از سایر برنامهها یا رشتهها - تعیین میگردد.
برنامه نویسی رویداد گرا را میتوان به عنوان یک تکنیکمعماری نرمافزار تعریف کرد که در آن نرمافزار یک حلقه اصلی دارد که به روشنی به دو بخش زیر تقسیم میشود:
نخست، انتخاب رویداد (یا شناسایی رویداد)و دوم، اداره کردن رویدادها
برنامههای رویداد گرا را میتوان در هر زبانی نوشت، اگرچه این کار در زبانهایی که سطح بالایی از انتزاع را فراهم میکنند، آسان تر است.
@cafeamoozesh
۸ - برنامه نویسی داده محور
نوع دیگری از پارادیم برنامه نویسی است که در آن دستورهای برنامه ، داده ها را برای همسان سازی و پردازش های مورد نیاز به جای تعریف یک توالی مراحل توصیف می کنند . نمونه هایی استاندارد از زبان های برنامه نویسی داده محور زبان متن-پردازش sed و AWK هستند، که در آن ها داده ، دنباله ای از خطوط در یک جریان ورودی می باشد (این نوع زبان های برنامه نویسی هم اکنون با نام زبان های برنامه نویسی خط-گرا نیز شناخته می شوند) و در درجه اول عبارات منظم یا شماره خط الگوی تطابق هستند .
نوع دیگری از پارادیم برنامه نویسی است که در آن دستورهای برنامه ، داده ها را برای همسان سازی و پردازش های مورد نیاز به جای تعریف یک توالی مراحل توصیف می کنند . نمونه هایی استاندارد از زبان های برنامه نویسی داده محور زبان متن-پردازش sed و AWK هستند، که در آن ها داده ، دنباله ای از خطوط در یک جریان ورودی می باشد (این نوع زبان های برنامه نویسی هم اکنون با نام زبان های برنامه نویسی خط-گرا نیز شناخته می شوند) و در درجه اول عبارات منظم یا شماره خط الگوی تطابق هستند .
۹-برنامه نویسی غیر ساخت یافته :
قدیمی ترین پارادایم برنامهنویسی است که قادر به نوشتن الگوریتم برنامه یتورینگ کامل است. این برنامه نویسی بعداً با برنامه نویسی تابعی وسپس برنامه نویسی شی گرا ادامه یافت و هر دو این برنامه ها به عنوان برنامه نویسی ساخت یافتهدر نظر گرفته شدند. برنامهنویسی غیر ساخت یافته به خاطر تولید کدهایی که به سختی قابل خواندن بودند (اسپاگتی کد) به شدت مورد نکوهش قرار گرفت و گاهی اوقات یک روش بد برای نوشتن پروژه های بزرگ در نظر گرفته شد. اما این نوع برنامهنویسی برای آزادیای که به برنامهنویسان میدهد تحسین شده است و با این مقایسه شده است که موزارت چگونه موسیقی را نوشته است. هر دو زبانهای برنامه نویسی سطح بالا و سطح پایین وجود دارند که به عنوان زبانهای برنامه نویسی غیر ساخت یافته استفاده می شوند.
یک برنامه در یک زبان غیر ساخت یافته معمولاً شامل دستورهای متوالی منظم است یا جمله ها معمولاً هر کدام در یک خط نوشته شده اند.
@cafeamoozesh
قدیمی ترین پارادایم برنامهنویسی است که قادر به نوشتن الگوریتم برنامه یتورینگ کامل است. این برنامه نویسی بعداً با برنامه نویسی تابعی وسپس برنامه نویسی شی گرا ادامه یافت و هر دو این برنامه ها به عنوان برنامه نویسی ساخت یافتهدر نظر گرفته شدند. برنامهنویسی غیر ساخت یافته به خاطر تولید کدهایی که به سختی قابل خواندن بودند (اسپاگتی کد) به شدت مورد نکوهش قرار گرفت و گاهی اوقات یک روش بد برای نوشتن پروژه های بزرگ در نظر گرفته شد. اما این نوع برنامهنویسی برای آزادیای که به برنامهنویسان میدهد تحسین شده است و با این مقایسه شده است که موزارت چگونه موسیقی را نوشته است. هر دو زبانهای برنامه نویسی سطح بالا و سطح پایین وجود دارند که به عنوان زبانهای برنامه نویسی غیر ساخت یافته استفاده می شوند.
یک برنامه در یک زبان غیر ساخت یافته معمولاً شامل دستورهای متوالی منظم است یا جمله ها معمولاً هر کدام در یک خط نوشته شده اند.
@cafeamoozesh
۱۰-برنامهنویسی تابعی واکنشی :
( Functional reactive programming مخفف: FPR)
پارادایم برنامهنویسی برای برنامهنویسی واکنشی به کمک مفاهیم سازندهٔ برنامهنویسی تابعی است که برای واسطهای گرافیکی کاربر، مهندسی رباتیک و آهنگ برای سادهسازی این مسئلهها به کمک مدلسازی صریح زمان استفاده شده است.
@cafeamoozesh
( Functional reactive programming مخفف: FPR)
پارادایم برنامهنویسی برای برنامهنویسی واکنشی به کمک مفاهیم سازندهٔ برنامهنویسی تابعی است که برای واسطهای گرافیکی کاربر، مهندسی رباتیک و آهنگ برای سادهسازی این مسئلهها به کمک مدلسازی صریح زمان استفاده شده است.
@cafeamoozesh
۱۱-برنامه نویسی مفهوم :
یک پارادایم برنامه نویسی است، که بر چگونگی ترجمهٔ مفاهیمی که در ذهن برنامه نویس شکل میگیرد به آنچه در فضای کد قابل دستیابی است، تمرکز میکند. این رویکرد توسط کریستوف دی نچین در سال ۲۰۰۱ با زبان برنامه نویسی XL معرفی شد.
@cafeamoozesh
یک پارادایم برنامه نویسی است، که بر چگونگی ترجمهٔ مفاهیمی که در ذهن برنامه نویس شکل میگیرد به آنچه در فضای کد قابل دستیابی است، تمرکز میکند. این رویکرد توسط کریستوف دی نچین در سال ۲۰۰۱ با زبان برنامه نویسی XL معرفی شد.
@cafeamoozesh
cafeamoozesh.com pinned «۱۱-برنامه نویسی مفهوم : یک پارادایم برنامه نویسی است، که بر چگونگی ترجمهٔ مفاهیمی که در ذهن برنامه نویس شکل میگیرد به آنچه در فضای کد قابل دستیابی است، تمرکز میکند. این رویکرد توسط کریستوف دی نچین در سال ۲۰۰۱ با زبان برنامه نویسی XL معرفی شد. @cafeamoozesh»