انواع زبان های برنامه نوسی

در اینجا میخواهیم لیستی از انواع زبان های برنامه نویسی داشته باشیم. این لیست از زبان های برنامه نویسی قابل توجه است که بر اساس نوع گروه بندی شده اند.

هیچ طرح طبقه بندی کلی برای زبان های برنامه نویسی وجود ندارد. بنابراین، در بسیاری از موارد، یک زبان تحت عنوان‌های متعدد فهرست می‌شود .

زبان های آرایه 
زبان‌های برنامه‌نویسی آرایه(array) (که بردار یا چند بعدی نیز نامیده می‌شود ) عملیات روی اسکالرها را تعمیم می‌دهند تا به طور شفاف روی بردارها ، ماتریس‌ها و آرایه‌های با ابعاد بالاتر اعمال شوند:

 A+
 Analytica
 APL
 Chapel
 Fortran 90
 FreeMat
 GAUSS
 Interactive Data Language (IDL)
 J
 Julia
 K
 Mathematica (Wolfram language)
 MATLAB
 Octave
 Q
 R
 S
 Scilab
 S-Lang
 SequenceL
 Speakeasy
 X10

زبان های اسمبلی 
شاید برایتان سوال باشد که زبان اسمبلی چیست؟ زبان‌های اسمبلی در واقع مستقیماً با یک زبان ماشین مطابقت دارند ، بنابراین دستورالعمل‌های کد ماشین به شکلی قابل درک برای انسان ظاهر می‌شوند، اگرچه ممکن است یک نگاشت یک به یک بین یک عبارت فردی و یک دستورالعمل فردی وجود نداشته باشد. زبان های اسمبلی به برنامه نویسان اجازه می دهند از آدرس های نمادین استفاده کنند که اسمبلر آنها را به آدرس های مطلق یا قابل جابجایی تبدیل می کند . اکثر اسمبلرها از ماکروها و ثابت های نمادین نیز پشتیبانی می کنند .

زبان های برنامه نویسی پیوسته 
زبان برنامه نویسی پیوسته یک زبان برنامه نویسی کامپیوتری بدون نقطه است که در آن همه عبارات نشان دهنده توابع هستند و کنار هم قرار گرفتن عبارات نشان دهنده ترکیب تابع است . حال عملکرد آن چگونه است؟ برنامه نویسی پیوسته جایگزین برنامه کاربردی تابع ، که در سایر سبک های برنامه نویسی رایج است، با ترکیب تابع به عنوان راه پیش فرض برای ساخت زیر روال ها می شود .

 Factor
 Forth
 jq (function application is also supported)
 Joy
 Kitten
 Lviv
 PostScript
 r3
 Staapl
 Trith
 xs
 8th

زبانهای کامپایل شده 
اینها در واقع زبان‌هایی هستند که معمولاً توسط کامپایلرها پردازش می‌شوند ، اگرچه که از نظر تئوری هر زبانی را می‌توان کامپایل یا تفسیر کرد.

 اکشن اسکریپت
 JOVIAL
 ALGOL 60 (طراحی زبان بسیار تاثیرگذار)
 SMALL Machine ALGOL مانند زبان
 بالرین (بایت کد برای زمان اجرا (BVM))
 بیسیک (از جمله اولین نسخه Dartmouth BASIC)
 BCPL
 C (یکی از پرکاربردترین زبان های رویه ای)
 C++ (زبان چندپارادایمی مشتق شده از C)
 C# (به CIL ، یک زمان اجرا تولید می کند)
 سیلان (به بایت کد JVM )
 سرد
 CLIPPER 5.3 (برای نرم افزار مبتنی بر DOS)
 CLEO برای کامپیوترهای Leo
 Clojure (به بایت کد JVM )
 COBOL
 کبرا
 D (از مهندسی مجدد C++)
 DASL به جاوا، جاوا اسکریپت، JSP، فلکس به عنوان فایل جنگ
 دلفی ( سیستم توسعه آبجکت پاسکال بورلند )
 DIBOL (زبان تجاری تعاملی دیجیتال)
 eC
 ایفل (ساخته شده توسط برتراند مایر )
 Ubercode
 Emacs Lisp
 F# (به CIL ، زمان اجرا را تولید می کند)
 Fortran (اولین بار توسط John Backus از IBM گردآوری شد )
 Gosu (به بایت کد JVM )
 Groovy (به بایت کد JVM )
 HolyC
 Inform (معمولا فایل های داستانی برای Glulx یا Z-code )
 جاوا (معمولا بایت کد JVM ؛ به کد ماشین )
 JOVIAL
 جولیا (در حال پرواز به کد ماشین)
 Kotlin (Kotlin/Native از LLVM برای تولید باینری ها استفاده می کند)
 LabVIEW
 Nemerle (به بایت کد زبان میانی)
 پاسکال (اکثر اجراها)
 PL/I (در اصل برای پردازنده های مرکزی IBM)
 پایتون (به بایت کد VM میانی )
 RPG (سازنده برنامه گزارش)
 Scala (به بایت کد JVM )
 طرح (به عنوان مثال Gambit)
 SequenceL - کاملاً کاربردی، موازی و بدون مسابقه
 Simula (اولین زبان شی گرا، ابر مجموعه ای از ALGOL 60 )
 ML
 استاندارد ML (SML)
 OCaml
 Vala (سیستم نوع GObject)
 Xojo

زبان های جدول تصمیم 
خب ، زبان های جداول تصمیم می توانند به عنوان کمکی برای روشن کردن منطق قبل از نوشتن برنامه به هر زبانی استفاده شوند، اما در دهه 1960 تعدادی از زبان ها توسعه یافتند که منطق اصلی به طور مستقیم در قالب یک جدول تصمیم بیان می شود، از جمله:

 Filetab

زبان های نسل چهارم 
زبان‌های برنامه‌نویسی نسل چهارم ،در واقع  زبان‌های سطح بالایی هستند که پیرامون سیستم‌های پایگاه داده ساخته شده‌اند و آنها معمولا در محیط های تجاری استفاده می شوند.

 1C
 ABAP
 CorVision
 CSC 's GraphTalk
 CA-IDEAL (محیط توسعه تعاملی برای یک عمر برنامه) برای استفاده با CA-DATACOM/DB
 تولید کننده گزارش Easytrieve (اکنون CA-Easytrieve Plus)
 تمرکز
 IBM Informix-4GL
 LINC 4GL
 MAPPER ( Unisys/Sperry ) – اکنون بخشی از BIS است
 MARK-IV ( استرلینگ/انفورماتیک ) اکنون VISION:BUILDER of CA
 طبیعی
 Progress 4GL
 PV-Wave
 LiveCode (بر اساس پایگاه داده نیست؛ با این حال، هدف کار در سطح بالاتری از انتزاع نسبت به 3GL است.)
 SAS
 SQL
 Ubercode (VHLL یا زبان بسیار سطح بالا)
 Uniface
 ویژوال دیتافلکس
 ویژوال فاکس پرو
 xBase

زبان های توصیف سخت افزار 
و زبان هایی هستند گه سخت افزار را توصیف میکنند، همانکه از اسمشان پیداست! در الکترونیک، زبان توصیف سخت افزار (HDL) یک زبان کامپیوتری تخصصی است که برای توصیف ساختار، طراحی و عملکرد مدارهای الکترونیکی و معمولاً مدارهای منطق دیجیتال استفاده می شود. دو نوع پرکاربرد و با پشتیبانی خوب HDL مورد استفاده در صنعت Verilog و VHDL هستند . زبان های توصیف سخت افزار عبارتند از:

1)  HDL برای طراحی مدارهای آنالوگ

2)  HDL برای طراحی مدارهای دیجیتال

زبان های کوچک 
زبان‌های کوچک در واقع همان طور که از اسمشان پیداست یک حوزه تخصصی (کوچک) مشکل را ارائه می‌کنند.

 awk – برای دستکاری فایل های متنی استفاده می شود.
 دنباله دار - برای حل مسائل پیچیده بهینه سازی ترکیبی در زمینه هایی مانند تخصیص منابع و زمان بندی استفاده می شود.
 sed - متن را تجزیه و تبدیل می کند
 SQL - فقط چند کلمه کلیدی دارد و تمام ساختارهای مورد نیاز برای یک زبان برنامه نویسی کامل را ندارد  بسیاری از سیستم های مدیریت پایگاه داده SQL را با ساختارهای اضافی به عنوان یک زبان رویه ذخیره شده گسترش می دهند.

هم چنین ببینید: 

 Programming paradigm
 IEC 61131-3 – a standard for programmable logic controller (PLC) languages
 List of educational programming languages
 Esoteric programming language

یادداشت ها 

 اشیاء SQL مجموعه ای از رکوردهای پایگاه داده هستند که جداول نامیده می شوند. یک زبان برنامه نویسی کامل می تواند الگوریتم ها را بدون توجه به زمان اجرا مشخص کند. بنابراین می توان یک الگوریتم برای تولید نتایج قابل استفاده در نظر گرفت. در مقابل، SQL فقط می‌تواند رکوردهایی را انتخاب کند که به مجموعه فعلی، داده‌های موجود در سیستم، محدود می‌شوند، نه اینکه بیانیه‌ای درباره صحت نتیجه ارائه کند.
 یک استثنای قابل توجه CPU سری 1801 شوروی/روسیه استکه در ابتدا از ISA داخلی خود استفاده می کرد، اما بعداً به عنوان یک تصمیم سیاسی برای سازگاری با PDP-11 دوباره طراحی شد که موفق هم عمل کردند.
 پرش به بالا:مدل‌های فرعی فهرست نشده‌اند، فقط مدل‌های پایه هستند.
 مفهوم شی با معنای سنتی OO تک ارسالی در جولیا وجود ندارد، در عوض با ارسال چندگانه کلی تر در انواع مختلف در زمان اجرا.
 سوئیفت از شمارش خودکار مراجع استفاده می کند .

References 
ترجمه شده از مقاله List_of_programming_languages_by_type