*[[برنامهنویسی دستوری|دستوری]] که در آن برنامهنویس به ماشین دستور می دهد که چگونه حالت خود را تغییر دهد،
**رویهای،[[برنامهنویسی رویهای|رویهای]]، که در آن دستورها را به رویهها گروهبندی میکند.
**[[برنامهنویسی شیءگرا|شیء گرا،گرا]]، که در آن دستورها را با بخشی از حالتی که بر روی آن عمل می کند، گروه بندی می کند.
*اعلانی،[[برنامهنویسی اعلانی|اعلانی]]، که در آن برنامه نویس صرفاً خواص مربوط به نتایج مطلوبش را اعلان می کند، نه چگونگی محاسباتش را.
**تابعی،[[برنامهنویسی تابعی|تابعی]]، که در آن نتیجه مطلوب به صورت مقدار مربوط به بکارگیری یک سری از توابع، اعلان می گردد.
**منطقی،[[برنامهنویسی منطقی|منطقی]]، که در آن نتیجه مطلوب به صورت جواب به سؤالی در مورد دستگاهی از حقایق و قواعد اعلان می گردد.
**ریاضیاتی،[[بهینهسازی|ریاضیاتی]]، که در آن نتیجه مطلوب به صورت راه حلی از یک مسئله بهینه سازی اعلان می گردد.
**واکنشی، که در آن نتیجه مطلوب به صورت جریانهای دادهای و انتشار تغییرات اعلان میشود.
== مرور کلی ==
یک [[زبانهای برنامهنویسی|زبان برنامهنویسی]] میتواندممکن است یک یا چند ''شیوۀپارادایم برنامهنویسی'' را پشتیبانی نماید. برای مثال، برنامههای نوشته شده با [[سی++]] میتوانند کاملاً به صورت [[برنامهنویسی رویهای|رویهای]] باشند یا کاملاً منطبق بر شیوهپارادایم [[برنامهنویسی شئگرا]] که در تضاد کامل با شیوهپارادایم ''رویهای'' است بوده یا حتی حاوی عناصری از هر دو شیوهپارادایم باشند. تصمیمگیری برای چگونگی استفاده از عناصر ''شیوههایپارادایمهای برنامهنویسی'' برعهده طراح برنامه یا برنامهنویس میباشد.