بخش دوم دوره EVS0 : معرفی انواع زبان های برنامه نویسی

بازگشت به آموزشگاه

اگر با فلوچارت دوره های ما آشنایی ندارید >>این لینک<< را مشاهده کنید.

دسترسی سریع به بخش های قبلی دوره :


مقدمه

مسلما یکی از سودمندترین اختراعات بشر تا به امروز کامپیوترها بوده اند. دستگاه هایی که هزاران بار سریعتر از انسان فکر میکنند و سرعت عملشان به طرز غیر قابل باوری بالاست. سرعت و قدرت، امکان انجام خیلی از کارهایی را فراهم کردند که انسان به طور عادی از انجام آن ها عاجز بود. اما یک مشکل وجود داشت: این دستگاه ها به همان اندازه که قوی بودند ، کم هوش هم بودند؛ آن ها به طور عادی هیچ عملی انجام نمی دادند مگر این که به صراحت از آن ها درخواست می شد. اما این درخواست چگونه باید صورت می گرفت؟ باید راهی برای گفتگو با آن ها پیدا می شد. و در این زمان بود که متخصصان تصمیم گرفتند زبان های مخصوصی را بوجود بیاورند تابتوانند با کامپیوترها گفتگو کنند. این زبان های مخصوص به اصطلاح زبان های برنامه نویسی کامپیوتر نام گرفتند.به نسل اولیه زبان های برنامه نویسی، زبان های سطح پایین گفته می شد، چرا که به سختی قابل یادگیری و به کارگیری بودند. پیاده سازی اعمالی ابتدایی توسط این زبان ها باعث می شد مدت ها وقت با ارزش برنامه نویسان گرفته شود. اما وضع به همین منوال نماند و با گذشت زمان زبان های جدیدی به وجود آمدند که آموختن آن ها راحت تر بود. طی سه دهه ی اخیر، صنعت کامپیوتر مورد هجوم انواع زبان های برنامه نویسی قرار گرفت و زبان های بسیاری اختراع شد. به طوری که بیش از 2500 زبان برنامه نویسی وجود دارد که تا به امروز توسعه داده شده اند! اما از میان همه آن ها تنها حدود 50 زبان برنامه نویسی مورد توجه و استفاده بیشتر قرار دارد و در انواع ماشین ها نظیر کامپیوتر ها ، تلفن هایی همراه ، صفحات وب و سیستم های مبتنی بر میکروکنترلر استفاده می شود. در شکل زیر 14 زبان برنامه نویسی برتر را بر اساس حقوق و تعداد شاغلین آن مشاهده می کنید.


زبان برنامه نویسی چیست ؟

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

عموماً زبانهای برنامه‌نویسی را به پنج نسل تقسیم می‌کنند :

  • نسل اول زبان ماشین – زبان صفر و یک
  • نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
  • نسل سوم زبانهایی مانند کوبول و پی ال وان و… -دستورهای قابل فهم تر برای انسان و نیاز به کامپایلرها
  • نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها – نزدیک به محاوره‌های انسانی
  • نسل پنج زبانهایی مانند prolog , ops5 – تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط برنامه‌نویس

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


تولد اولین زبان برنامه نویسی

تاریخچه برنامه نویسی به Ada Lovelace (آدا لاولیس) باز می گردد. کسی که میتوان به عنوان اولین برنامه نویس از او یاد کرد. او با سمبل ها و علامت ها اولین زبان برنامه نویسی را ساخت؛ ولی عده ای معتقدند تورینگ اولین کسی بود که زبان برنامه نویسی را ساخت و برای اثبات آن برنامه ها و شبیه ساز های نوشته شده توسط تورینگ را مثال میزنند.

نمیتوان به طور قطعی گفت ولی به نظر میرسد که اولین زبان برنامه نویسی که برای کامپیوترها نوشته شده است زبان Plankalkül (پلن کلکولوس) است به معنی “سیستم رسمی برنامه ریزی” که یک زبان سطح بالاست. این زبان توسط یک مهندس آلمانی به نام Konrad Zuse (کنراد زوس) با هدف مهندسی بین سال 1942 و 1945 ساخته شده است ولی در آن زمان به دلیل جنگ جهانی دوم توجهی به این زبان نشد. باورها بر این است که زمانی که پلن کلکولوس رها شد، زبان های Fortran (فرترن) و Lisp (لیسپ) شروع به کار کردند. یادداشت هایی درباره ی چگونگی کار زوس بر روی توسعه پلن کلکولوس در سال 1941 برای زنده ماندن این زبان در تاریخ، نوشته شده است. دلیل دیگر شکست زوس در پلن کلکولوس این بود که او خود را مشغول به ساخت کامپیوتر های تجاری Z3 کرده بود و دوباره در سال 1948 زوس برگه ای درباره پلن کلکولوس منتشر کرد تا توجه همگان را جلب کند ولی این کار بی نتیجه بود. در تصویر زیر کد Hello World در پلن کلکولوس ، اولین زبان برنامه نویسی در کامپیوترها را مشاهده میکنیم.


اصول معماری فون نیومن

جان وان نیومن ( John von Neumann ) ریاضیدان مجارستانی بود که در سال 1945 یک یادداشت کوتاه در مورد پنج بخش بنیادین یک کامپیوتر پیشرفته نوشت. این یادداشت بعد ها اساس کار جان ماچلی ‌(John Mauchly)‌ و پروفسور ایکرت ‌(Eckert)‌ برای کامپیوتر ادواک ‌(EDVAC)‌ قرار گرفت. این یادداشت به‌طور تصادفی در بین عموم توزیع شد و آنان به‌ خاطر کارهایشان اعتبار علمی کامپیوتر را دریافت کردند. اما ماچلی و ایکرت عصبانی شدند، زیرا آن یادداشت برای وان نیومن بود. EDVAC به عنوان اولین برنامه کامپیوتری ذخیره شده در نظر گرفته شد. به همین جهت از وی به‌عنوان مخترع کامپیوتر با امکان ذخیره‌سازی برنامه‌ها یاد می‌شود. در 1950 وان نیومن به عنوان مشاور IBM استخدام شد تا پروژه های تکنولوژی پیشرفته مطرح شده یا در حال انجام را بر عهده بگیرد. وان نیومن همچنین در پروژه منهتن در لوس‌آلاموس نیومکزیکو شرکت داشت و مبانی ریاضی انفجار بمب اتم را اثبات کرد.

معماری فون نیومن، یک مدل برای رایانهٔ ارقامی است که از یک واحد پردازش مرکزی ( CPU ) و یک حافظه ( Memory ) مجزا مستقل برای نگه‌داری از اطلاعات و دستورالعمل‌ها استفاده می‌کند. یک رایانهٔ ارقامی با برنامهٔ ذخیره شده به گونه‌ای است که دستورهای برنامه‌ریزی شده مانند داده‌ها را در حالت خواندنی-نوشتنی در حافظه دسترسی تصادفی (RAM) نگه‌داری می‌کند. از معماری این مدل چنی استنتاج می‌شود که چون گذرگاه‌ها بین واحد‌ها به اشتراک گذاشته شده‌اند بنابراین در هر لحظه فقط یکی از حالت‌های آوردن دستورها و یا انجام عملیات روی داده‌ها صورت می‌گیرد که به آن گلوگاه فون نیومن می‌گویند. شکل زیر طرح این معماری را نشان می دهد.‏

دکتر وان نیومن ، سیستم دارای معماری فوق را به عنوان “ابزاری که می تواند دستورالعمل هایی را انجام دهد تا یک دستور  پیچیده مورد نظر اجرا شود.” تعریف کرد. سپس، او بیان کرد که دستورالعمل هایی را که این سیستم را کنترل می کند، باید با جزییات کامل به این ابزار داده شود؛ آن ابزار باید قادر باشد تا دستورالعمل ها را کاملاَ انجام دهد؛ بدون آنکه نیازی به مداخله هوش انسان باشد.

در معماری ساخته شده وان نیومن ، 5 ویژگی زیر دیده می شود:

1) هنگامی که ابزار یک کامپیوتر اولیه باشد، باید اعمال حسابی را که معمول است مثل:جمع، تفریق، ضرب و تقسیم ، انجام دهد. بنابراین باید واحدهای تخصیص یافته ای برای این اعمال داشته باشد.

2) کنترل منطقی این ابزار ( مثل : ترتیب دهی مناسب عملیاتی آن ) می تواند به خوبی توسط یک واحد کنترل مرکزی ( CPU ) اجرا شود.

3) ابزاری که باید توالی های پیچیده و طولانی این عملیات را اجرا کند ، باید ظرفیت حافظه ( Memory ) قابل توجهی داشته باشد.

4) ابزار باید واحدهایی را برای انتقال اطلاعات ذخیره شده به بخش حساب مرکزی ، بخش کنترل مرکزی و حافظه داشته باشد. ( یعنی ورودی : Input )

5) ابزار باید واحدهایی را برای انتقال اطلاعات از بخش حساب مرکزی ، بخش کنترل مرکزی و حافظه به واسط خارجی داشته باشد. ( یعنی خروجی : Output )

وان نیومن 2 اصل اساسی دیگر را ارائه کرد که تاثیر مستقیمی بر مسیر توسعه برنامه نویسی گذاشت؛

  • اولین اصل “تکنیک برنامه مشترک” (Shared-program technique) نام داشت. بر طبق این اصل سخت افزار کامپیوترها باید بسیار ساده باشند و نیازی نیست که برای هر برنامه به صورت دستی سیم کشی و تجهیز شوند. در عوض، دستورات نرم افزاری باید از ترکیب همان دستورات ساده سخت افزاری تشکیل شوند و یک دستور نرم افزار مرکب و پیچیده تر را بسازند. این اصل سخت افزارها را ساده و دستورات نرم افزاری را پیچیده می کرد.
  • وان نیومن اصل دوم خود را “انتقال کنترل به صورت شرطی” (Conditional Control Transfer) نامید. بر طبق این اصل که تاثیر عمیقی بر توسعه برنامه نویسی گذاشته است، برنامه کامپیوتری می تواند شامل بلاک های کوچکتری از دستورات بنام زیرروال (Subroutine) شود که می توانند در هر جای برنامه اصلی جای گیرند. این بلاک ها می توانند هر چندبار که لازم است در هر کجای برنامه اصلی استفاده شوند. بخش مهم دیگری از این اصل، کنترل روند برنامه کامپیوتری توسط دستورات منطقی مانند IF…Then و حلقه هایی مانند FOR را امکانپذیر می کرد.

تولد اولین زبان برنامه نویسی دارای کامپایلر

سال 1948 همزمان بود با ارائه تئوری ریاضی ارتباطات توسط کلود شانن (Claude Shannon, 1916-2001). ارائه تز تئوری ریاضی ارتباطات او اساس تئوری اطلاعات (Information Theory) را شکل داد. این تئوری نحوه استفاده از منطق باینری (اعداد در مبنای دو، همان صفر و یک ها) در محاسبات نرم افزاری در کامپیوترها را بیان می کرد. تز ارائه شده توسط شانن دنیای صفر و یک ها (باینری) که اساس و پایه کامپیوترهای الکترونیکی امروزی هستند را شکل می داد. بعدها اولین کامپیوتر باینری در حین جنگ جهانی دوم توسط یک آلمانی بنام زوس ساخته شد. شکل زیر شانون را نشان می دهد.

در سال 1949، پس از ارائه 2 اصل وان نیومن، زبان برنامه نویسی بنام کد کوتاه (Short Code) توسط جان ماچلی به وجود آمد. کد کوتاه که دستورات آن به صورت یک سری صفر و یک تشکیل شده بود، اولین زبان برنامه نویسی برای کامپیوترهای الکترونیکی به حساب می آید. ساخت این زبان برنامه نویسی به عنوان اولین قدم در جهت ساخت دنیای برنامه نویسی امروز به حساب می آید.

در سال 1951، گریس هاپر اولین کامپایلر دنیای کامپیوتر را به نام A-0 نوشت. کامپایلر به برنامه ای گفته می شود که دستورات برنامه نویسی را به دستورات صفر و یک (در آن زمان دستورات زبان کد کوتاه) تبدیل می کند. از آن پس برنامه نویس نیازی به ورود کدهای صفر و یک نداشت و توسعه دنیای برنامه نویسی سرعتی چند برابر یافت.

پس از آن فورترن (FORTRAN) به عنوان اولین زبان برنامه نویسی به شکل امروزی در سال 1957 توسط شرکت IBM ساخته شد. نام آن مخفف سیستم تبدیل فرمول (FORmula TRANslating system) بود. دستورات آن بسیار ساده بودند و فقط شامل دستورات IF ، DO و GOTO می شدند. هرچند دستورات این زبان امروزه بسیار محدود و ناکارآمد تلقی می شود اما در آن زبان قدم بسیار بزرگی رو به جلو بود. انواع داده ای نیز برای اولین بار در زبان FORTRAN ارائه شدند. داده هایی مانند متغیرهای منطقی، صحیح، حقیقی و اعداد با دقت مضاعف در FORTRAN قابل تعریف و استفاده بودند.

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

تا سال 1972 بیش از 200 زبان برنامه نویسی مختلف ظهور کرد. اکثر این زبانها به منظور کاربرد خاصی توسعه یافته بودند، برخی دیگر نیز ویرایش جدیدی از زبانهای قبلی بودند. در زیر لیست زبان های برنامه نویسی توسعه یافته در این دوره را مشاهده می کنید :

  • 1951 – Regional Assembly Language
  • 1952 – Autocode
  • 1954 – IPL (forerunner to LISP)
  • 1955 – FLOW-MATIC (led to COBOL)
  • 1957 – FORTRAN (First compiler)
  • 1957 – COMTRAN (precursor to COBOL)
  • 1958 – LISP
  • 1958 – ALGOL 58
  • 1959 – FACT (forerunner to COBOL)
  • 1959 – COBOL
  • 1959 – RPG
  • 1962 – APL
  • 1962 – Simula
  • 1962 – SNOBOL
  • 1963 – CPL (forerunner to C)
  • 1964 – Speakeasy (computational environment)
  • 1964 – BASIC
  • 1964 – PL/I
  • 1966 – JOSS
  • 1967 – BCPL (forerunner to C)

تقسیم بندی انواع زبان های برنامه نویسی

امروزه زبان های برنامه نویسی بسیار وسیع و گسترده شده و هر یک کاربردهای خاصی نیز پیدا کرده اند. از این رو میتوان زبان‌های برنامه‌نویسی را از سه دیدگاه متفاوت مورد بررسی قرار داده و تقسیم‌بندی کرد.

دیدگاه اول : بر اساس روش های برنامه نویسی

1- ساخت گرا ( Functional Languages )

زبان های ساخت گرا به زبان هایی می گویند که از ساختار منظم که توسط توابع ایجاد شده اند، برخوردار هستند. مثلا برای نوشتن برنامه ای که می خواهد دو عدد را با هم جمع کند از تابعی به نام add استفاده شود که دو عدد را بگیرد و با هم جمع کند و این تابع را در برنامه های دیگرمان هم استفاده کنیم. برخی از زبان های ساخت یافته در زیر نوشته شده اند :

Haskell: یک زبان برنامه نویسی کاملا ساخت گرا.
ML: یک زبان برنامه نویسی استاندارد که نگارش های مختلفی دارد.
Erlang: یک زبان ساخت گرا با کاربرد صنعتی.
K&J: دو زبان برنامه نویسی با قابلیت های آرایه ای قوی.
APL: یک زبان برنامه نویسی ساخت گرا بر پایه آرایه ها .
LISP: یک زبان برنامه نویسی ساخت گرا. البته از این زبان به بعد برنامه نویس شی گرا مطرح شد.
C: این زبان به عنوان اولین زبان برنامه نویسی سیستمی مطرح است.
زبان هایی مثلPascal و Basic هم از این گروه هستند.
در 20 سال اخیر کمیته برنامه نویسی ساخت گرا بجای ارائه زبان جدید به ارتقای زبان هایی مثل ML و LISP پرداختند.

2- شئ گرا ( Object Oriented Language )

زبان های شی گرا زبان هایی هستند که بر پایه اشیاء ساخته و نوشته می شوند همه چیز در این زبان ها شی محسوب می شود. و هم عرض با این زبان ها نوعی برنامه نویسی به نام OOP یا Object Oriented Programming بوجود آمده این زبان ها در واقع نسل جدید زبان های برنامه نویسی هستند:
Simula: اولین زبان برنامه نویسی oo که در سال 1960 عرضه شد.
++C: این زبان در حقیقت ترکیبی از برنامه نویسی سیستمی و شی گرا است.
Perl: یک زبان برنامه نویسی تحت UNIX که برای ساخت وب سایت های پویا بکار می رود.
PHP: زبان برنامه نویسی سمت سرور که در سالهای اخیر محبوبیت زیادی کسب کرده است.
Java: زبان برنامه نویسی محصول شرکت Sun
تعداد زبان های برنامه نویسی واقعا زیاد است ASP و VB و … نیز از این جمله اند.

3- متن گرا ( Scripting language )

زبان های متن گرا زبان هایی هستند که نحوه نگارش آنها به زبان طبیعی نزدیک است.
این گونه زبان ها معمولا پیچیدگی های انواع دیگر را ندارند و می توان گفت ساده تر هستند.
TCL: یا Tickle پدر بزرگ زبان های متن گرا
Perl: یک زبان متن گرا است که قابلیت شی گرا دارد
Java Script: محبوب ترین زبان برنامه نویسی متن گرا است که در حال حاضر برای برنامه نویسی سمت مشتری در صفحات وب کاربرد دارد.
Python: زبان برنامه نویسی قدرتمند با قابلیت شی گرایی بسیار قوی می باشد که برای برنامه نویسی سمت مشتری در صفحات وب کاربرد دارد.

4- منطق گرا ( Logical Language )

زبان های برنامه نویسی منطق گرا به نوعی سردم دار سبک جدیدی از برنامه نویسی هستند که در علوم مختلف کاربرد دارد.
Prolog: اولین زبان برنامه نویسی متنی که در سال1972 ایجاد شد.
Mercury: زبان برنامه نویسی منطقی دیگر …

دیدگاه دوم : نزدیکی به زبان ماشین

1- سطح پایین: مثل زبان Assembly

2- سطح میانی : مثل زبان های C و ++C

3- سطح بالا : مثل زبان های Python و #C

زبان ماشین زبان 0 و 1 است. ماشین تنها 0 و 1 را می فهمد. زبانهاي سطح پايين به زباني گفته مي‌شود که دستورات موجود در آن به زبان ماشين نزديک است. زبان برنامه‌نويسي اسمبلي Assembly نوعي زبان سطح پايين بشمار مي‌آيد. به دليل نزديکی دستورات اين زبان به زبان ماشين برنامه‌نويسی با آن تا حدودي مشکل است ولي سرعت اجراء برنامه‌هاي نوشته شده با آن بسيار سريع تر از ساير زبانهاي برنامه نويسی است. همچنین زبان اسمبلی طوری است که کنترل کاملی بر روی سخت افزار کامپیوتر ایجاد کرده و ارتباطی به مراتب بهتر و قوی تر با حافظه و cpu کامپیوتر دارد. زبان های برنامه نویسی سطح میانی بیشتر از زبان های سطح پایین به زبان محاوره ای انسان نزدیک هستند و کنترل کمتری روی اجزای سخت افزاری ارائه می کنند. اما زبان های برنامه نویسی سطح بالا بیشتر از زبان های برنامه نویسی سطح میانی به زبان محاوره ای انسان نزدیک هستند و کنترل خودکار روی حافظه و سخت افزار دارند. ساختار زبان های سطح بالا به گونه ای است که یادگیری آن برای برنامه نویس آسان و کدهای آن قابل فهم تر می باشد.

دیدگاه سوم : نوع ترجمه

1- مفسری ( interpreter )

2- کامپایلری( compiler )

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

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

دیگر تفاوت این زبان ها سرعت اجرا و میزان استفاده از منابع می باشد و با توجه به این نکته که زبان های Interpreter کد ها را به صورت خط به خط تفسیر و اجرا می کنند، این امر باعث می شود تا مقدار زیادی از CPU و RAM کامپیوتر استفاده شود و قطعا مشخص است که سرعت پایین تری نیز خواهد داشت. اما امتیاز کامپایل شدن یکباره ی زبان های کامپایلر این است که در اجرا های متعدد سبک تر بوده و سرعت بهتری خواهند داشت.

همین مزیت یک مرتبه به صورت کامل کامپایل شدن زبان های کامپایلر در بخش ایراد سنجی و رفع مشکل نقص به حساب می آید. زیرا در زبان های مفسر هنگامی که برنامه خط به خط اجرا می شود، در هر بخشی از برنامه که مشکلی وجود داشته باشد قابل پیدا کردن و رفع می باشد اما در زبان های Compiler برای رفع یک مشکل در کد ها می بایست سورس خود برنامه را مجدد بازبانی کرد و خطا را پیدا کرده و تصحیح کرد، که بسیار دشوار تر از زبان های مفسری می باشد. تعدادی از زبان های مفسری که می توان به آن ها اشاره کرد Python, Ruby, Perl, PHP, JavaScript, VBScript می باشند و همچنین زبان های معروف کامپایلری نیز Cobol, C#, C++, Visual Basic و… هستند.


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

اما 12 زبان برنامه نویسی برتر سال 2017 از دیدگاه انجمن مهندسان برق و الکترونیک ( IEEE ) عبارتند از :

  • Python
  • C
  • JAVA
  • ++C
  • #C
  • R
  • JavaScript
  • PHP
  • GO
  • Swift
  • Arduino
  • Ruby

در شکل زیر این 12 زبان برنامه نویسی را به همراه نوع زبان ( وب ، موبایل ، کامپیوتر ، سیستم های نهفته ) و امتیاز آن توسط مجمع IEEE را مشاهده می کنید.

برای مشاهده لیست کامل 48 زبان برنامه نویسی برتر به >> این لینک << مراجعه نمایید.


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

در اوایل دهه ۱۹۷۰ میلادی ، زبان C ، توسط دنیس ریچی و به عنوان زبان برنامه نویسی سیستم ها طراحی شد. این زبان از دو زبان قدیمی تر بنام های BCPL و B حاصل شده است. زبان C تا سال ۱۹۷۸ منحصر به استفاده در لابراتوار کمپانی BELL بود تا این که توسط ریچی و کرنیه نسخه نهایی این زبان منتشر شد. به سرعت کامپایلر ها و مفسر های متعددی از C توسعه یافت اما برای جلوگیری از ناسازگاری های ایجاد شده و نیز حفظ قابلیت حمل زبان، تعاریف متحد الشکلی توسط استاندارد (ANSI (American national standard institute موسسه استاندارد ملی آمريكا ارائه گردید. مفسر یا کامپایلر ( Compiler ) خود برنامه ای کامپیوتری است که وظیفه تفسیر کد نوشته شده به زبان سطح بالا و سپس تولید کدهای سطح پایین به زبان ماشین را دارد.

به طور کلی ویژگی های مهم زبان C به اختصار به شرح زیر است:

  • زبان سی به طور گسترده ای در دسترس است. مفسر های تجاری آن در بیشتر کامپیوتر های شخصی، مینی کامپیوتر ها و نیز در کامپیوتر های بزرگ قابل استفاده اند.
  • سی زبانی است همه منظوره، ساخت یافته سطح بالا (مانند زبان پاسکال و فرتون . …) و انعطاف پذیر که برخی از خصوصیات زبانهای سطح پایین را نیز که معمولا در اسمبلی یا زبان ماشین موجود است داراست. در عین حال این زبان برای کاربردهای ویژه طراحی نشده و می توان از آن در همه ی زمینه ها، بخصوص به دلیل نزدیکی آن به زبان ماشین در برنامه نویسی سیستم، استفاده کرد. بنابراین سی بین زبان های سطح بالا و سطح پایین قرار دارد و در نتیجه اجازه می دهد که برنامه نویس خصوصیات هر دو گروه زبان را به کار برد. از این رو در بسیاری از کابردهای مهندسی به طور انحصاری زبان سی به کار می برند. (زبان های سطح بالا، دستور العمل هایی شبیه زبان انسان و پردازش فکری او داردند، همچنین یک دستور العمل زبان سطح بالا معادل چند دستور العمل به زبان ماشین است).
  • برنامه های نوشته شده به زبان c به طور کلی مستقل از ماشین یا نوع کامپیوتر است و تقریباً تحت کنترل هر سیستم عاملی اجرا می شود.
  • کامپایلرهای سی معمولا فشرده و کم حجم اند و برنامه های هدف ایجاد شده با آنها در مقایسه با سایر زبانهای برنامه سازی سطح بالا، خیلی کوچک و کار آمدند.
  • برنامه های سی در مقایسه با سایر زبانهای برنامه سازی سطح بالا، به راحتی قابل انتقال اند. دلیل آن این است که سی خیلی از ویژگی های وابسته به نوع کامپیوتر را در توابع کتابخانه ای خود منظور داشته است. بنابراین هر نسخه از سی با مجموعه ای از توابع کتابخانه ای مخصوص به خود همراه است که بر اساس ویژگی های کامپیوتر میزبان مربوط نوشته شده است. این توابع کتابخانه ای تا حدودی استاندارد است و معمولا هر تابع کتابخانه ای در نسخه های متعدد سی به شکل یکسان در دسترس است.
  • سی روش برنامه نویسی ماژولار را پشتیبانی می کند. همچنین از نظر عملگر ها نیز زبانی قوی است که عملگرهای گوناگونی برای دستکاری روی داده ها در سطح، بیت داراست.
  • به طور کلی جامعیت ، عمومیت، خوانایی، سادگی ، کارآیی، و پیمانه ای بودن که همگی از مشخصات برنامه ای ایده آل اند در زبان C پیاده سازی می شوند.

ویژگی های فوق موجب شده زبان C یکی از قویترین و محبوب ترین زبان های برنامه سازی دنیا مطرح شود.


زبان برنامه نویسی ++C

استراس‌تروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سی دارای ویژگی‌های مناسب برای ساخت برنامه‌های بسیار بزرگ است اما عملیات توسعه این برنامه ها بسیار کند است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد. در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 20 از زبان ++C ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی. در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده‌است.

اهداف به وجود اومدن ++C

در کتاب «طراحی و تکامل ++C» استراستروپ قوانین مورد استفاده در طراحی ++C را بیان می‌نماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک می‌کند.

ویژگی های زبان برنامه نویسی ++C :

++C طراحی شده‌است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.

++C طراحی شده‌است تا مستقیما و بصورت جامع از چندین شیوه برنامه‌نویسی (برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شی‌گرا، انتزاع داده، و برنامه‌نویسی جنریک)

++C طراحی شده‌است تا به برنامه‌نویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.

++C طراحی شده‌است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.

++C از بکاربردن ویژگی‌های خاص که مانع از عمومی شدن است خودداری می‌نماید.

++C از ویژگی‌هایی که بکار برده نمی‌شوند استفاده نمی‌کند.

++C طراحی شده‌است تا بدون یک محیط پیچیده عمل نماید.


زبان برنامه نویسی #C

در سال 1999، شرکت سان اجازه استفاده از زبان برنامه نویسی جاوا را در اختیار ماکروسافت قرار داد تا در سیستم عامل خود از آن استفاده کند.جاوا در اصل به هیچ پلت فرم یا سیستم عاملی وابسته نبود، ولی ماکروسافت برخی از مفاد قرار داد را زیر پا گذاشت و قابلیت مستقل از سیستم عامل بودن جاوا را از آن برداشت.شرکت سان پرونده‌ای علیه ماکروسافت درست کرد و ماکروسافت مجبور شد تا زبان شی گرای جدیدی با کامپایل جدید که به ++C شبیه بود را درست کند. در طول ساخت دات نت، کلاس‌های کتابخانه‌ای با زبان و کامپایلر SMC نوشته شدند.در سال 1999 آندرس هلزبرگ گروهی را برای طراحی زبانی جدید تشکیل داد که در آن زمان نامش Cool بود و همانند C بود با خواص شی گرایی. ماکروسافت در نظر داشت اسم این زبان را تا آخر Cool قرار دهد، ولی به دلیل مناسب نبودن برای اهداف تجاری این کار را نکرد. در ارائه و معرفی رسمی .NET در PDC در سال 2000 این زبان به C سی شارپ تغییر نام یافت و کتابخانه کلاس‌ها و runtime در ASP.NET به#C منتقل شدند. مدیر و سرپرست طراحان در ماکروسافت آندرس هلزبرگ بود که تجربه قبلی او در طراحی Framework و زبان‌های برنامه سازی++Borland , Delphi, Turbo Pascal, Visual C به آسانی در دستورالعمل‌های سی شارپ قابل رویت است و به همان خوبی در هسته CLR.


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

جاوا یک زبان برنامه‌نویسی است که در ابتدا توسط شرکت sun Microsystems ایجاد شده‌است و در سال 1995 به عنوان مولفه اصلی java platform منتشر شد.این زبان قسمت های بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شی‌گرایی ساده‌ای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. اجرای اصلی کامپایلرهای جاوا، ماشین‌های پیاده‌سازی و کتابخانه‌های آن توسط این شرکت از سال 1995 منتشر شد. در 2007 may این شرکت، نرم‌افزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.
Games Gosling پروژه زبان برنامه‌نویسی جاوا را در 1991 june آغاز کرد. این زبان در ابتدا Oak، سپس Green و در آخر هم جاوا نامیده شد. gosling قصد داشت یک ماشین مجازی و یک ماشینی به کار برد که شبیه C و ++C باشد. این شرکت نسخه اول جاوا را تحت عنوان Java1.0 در سال 1995 منتشر ساخت. جستجوگرهای اصلی وب، به هم پیوستند تا به طور مطمئن java applet را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخه جدید توانست ترکیب‌های جدیدی را برای نوع‌های مختلف پلت فرم‌ها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخه J2ME برای موبایل منتشر شد. در سال 2006 با هدف بازاریابی، این شرکت نسخه جدید J2 را با نام‌های JavaEE ،JavaME و JavaSE منتشر کرد. در سال 1997 شرکت سان میکروسیستمز،ISO/IEC JTC1 standards body و Ecma

International را به فرمول جاوا تغییر داد. شرکت sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینه‌ای فراهم آورد. شرکت sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. اولین تمایزی که بین SDK و JRE داد شامل فقدان کامپایلر برای JRE و سرفایل ها بود. در 13 نوامبر 2006 شرکت sun نرم‌افزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.

اهداف اولیه ساخت و طراحی جاوا

  1. این زبان باید ساده، شی‌گرا و مشهور باشد.
  2. مطمئن و بدون خطا باشد.
  3. وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد.
  4. باید با کارایی بالا اجرا شود.
  5. باید به صورت پویا و نخ‌کشی‌شده باشد.

زبان برنامه‌نویسی پایتون

پایتون یک زبان برنامه‌نویسی سطح بالا، شیءگرا و تفسیری است که توسط گیدو ون روسوم (Guido van Rossum) در سال ۱۹۹۰ طراحی اولیه شد. این زبان از زبان های برنامه نویسی تفسیری بوده و به صورت کامل یک زبان شی‌گرا است که در ویژگی‌ها با زبانهای تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند. پایتون پروژه‌ای بازمتن توسعه یافته است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد.

تاریخچه

پایتون در یک محیط آموزشی ایجاد و توسعه یافته است . یعنی در کریسمس سال ۱۹۹۸ در موسسه ملی تحقیقات ریاضی و رایانه (CWI) در شهر آمستردام. در آن زمان گیدو یک پژوهشگر در CWI بود و در زمان بیکاری خود بر روی پروژه شخصی خود یعنی پایتون کار می کرد. اولین نسخه عمومی از پایتون در ماه فوریه سال ۱۹۹۱ منتشر شد . برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (CNRI) واقع در رستون ایالات متحده‌ امریکا توسعه می‌یافت. تا اینکه در سال ۲۰۰۰ تیم توسعه دهنده پایتون به آزمایشگاه های پایتون منتقل شدند. نام پایتون از برنامه مورد علاقه سازنده آن یعنی مونتی پایتون که یک برنامه کمدی انگلیس بود گرفته شده است .

ویژگی هاي شی گرایی

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

رایگان

پایتون یک زبان برنامه‌نویسی رایگان و متن‌باز (open source)هست. می‌توانید متن آن و خود برنامه را به رایگان از اینترنت دریافت یا در توسعه آن همکاری کنید .

قابلیت حمل

چون پایتون با زبان قابل حمل ‏سی نوشته شده می تواند به صورت مجازی بر روی هر پردازشگری همگردانی و اجرا شود . ماشین مجازی (مفسرویندوز بنویسید و سپس بدون تغییر روی لینوکس یا مکینتاش یا هر سیستم عامل و سخت‌افزار دیگری که پایتون روی آن نصب باشد اجرا کنید . پایتون) متن برنامه را خوانده و هم‌زمان تفسیر کرده و اجرا می کند. پس شما می تونید یک برنامه را در

قدرتمند

پایتون زبانی چند رگه است که از زبان‌های برنامه‌نویسی تفسیری (برای مثال : تی‌سی‌ال، اسکیم، پرل) و زبان‌های سیستمی (برای مثال: سی‌پلاس‌پلاس، سی و جاوا) مشتق شده.

درونی سازی و گسترش

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


مطالعه بیشتر :

>> این سایت << تاریخچه بسیاری از سیستم عامل ها و زبان های برنامه نویسی ، یونیکس (تمامی سیستم عامل های یونیکس-بیس، اعم از یونیکس و لینوکس و مک و مینیکس و …) و تاریخچه ویندوز را دارد.


برای رفتن به بخش بعدی تصویر زیر کلیک کنید.


در صورتی که این مطلب مورد پسندتان واقع شد لایک و اشتراک گذاری فراموش نشود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بازگشت به آموزشگاه