زبانهای برنامهنویسی ساختارهای زبانی دستور مداری در رایانهها هستند که بهوسیلهٔ آنها میتوان یک الگوریتم را بهوسیلهٔ ساختارهای دستوری متفاوت برای اجرای رایانه توصیف کرد و با این روش امکان نوشتن برنامه جهت تولید نرمافزارهای جدید بوجود میآید. معمولاً هر زبان برنامهنویسی دارای یک محیط نرمافزاری برای وارد کردن متن برنامه، اجرا، همگردانی و رفع اشکال آن هستند. عموماً زبانهای برنامهنویسی را به پنج نسل تقسیم میکنند:
- نسل اول زبان ماشین - زبان صفرو یک
- نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
- نسل سوم زبانهایی مانند کوبول و پی ال وان و… -دستورهای قابل فهم تر برای انسان و نیاز به کامپایلرها
- نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها - نزدیک به محاورههای انسانی
- نسل پنج زبانهایی مانند prolog , ops5 ، ویژوال بیسیک- تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط برنامهنویس
یک زبان برنامهنویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شدهاست. زبانهای برنامهنویسی برای ایجاد برنامههایی به کار میروند که رفتار یک ماشین را مشخص میکنند، الگوریتم دقیق را بیان میکنند، یا روشی برای ارتباط انسانند. بسیاری از زبانهای برنامهنویسی تعدادی قالب از ویژگیهای نوشته شده دستوری(syntax) و معناشناسی (semantics) دارند، چرا که رایانهها دستورهای دقیقاً مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شدهاند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیادهسازی غالبی میباشند. (مانند Perl) اولین زبان برنامهنویسی به قبل از اختراع رایانه بازمیگردد، و برای هدایت رفتار ماشینهایی مانند دستگاههای نساجی اتوماتیک و نوازندههای پیانو به کار میرفت. هزاران زبان برنامهنویسی خلق شدهاند، بیشتر در زمینهٔ رایانه، زمینهای که هر ساله بسیاری دیگر ایجاد میشوند.