لطفا صبرکنید...

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

تاریخچه زبان های برنامه نویسی-کدنویسم
تاریخچه زبان های برنامه نویسی از مستندسازی کامپیوترهای مکانیکی اولیه تا ابزارهای مدرن برای توسعه نرم افزار را در بر می گیرد. زبانهای برنامه نویسی اولیه بسیار تخصصی بودند و بر نمادهای ریاضی و نحوی مشابه متکی بودند. در طول قرن بیستم، تحقیقات در تئوری کامپایلر منجر به ایجاد زبان‌های برنامه‌نویسی سطح بالا شد که از یک نحو در دسترس‌تر برای برقراری ارتباط دستورالعمل‌ها استفاده می‌کردند. اولین زبان برنامه نویسی سطح بالا Plankalkül بود که توسط Konrad Zuse بین سالهای 1942 و 1945 ایجاد شد. اولین زبان سطح بالا که دارای یک کامپایلر مرتبط بود توسط کورادو بوهم در سال 1951 برای پایان نامه دکترای خود ایجاد شد. اولین زبان تجاری موجود، FORTRAN (ترجمه فرمول) بود که در سال 1956 توسعه یافت (اولین کتابچه راهنمای کاربر در سال 1956 ظاهر شد، اما اولین بار در سال 1954 توسعه یافت) توسط تیمی به رهبری جان بکوس در IBM.
تاریخچه زبان های برنامه نویسی-کدنویسم

تاریخچه زبان های برنامه نویسی-کدنویسم

تاریخ اولیه

در طی سالهای 1842-1849، آدا لاولیس خاطرات ریاضیدان ایتالیایی لوئیجی منابرا را در مورد جدیدترین ماشین پیشنهادی چارلز بابیج ترجمه کرد: موتور تحلیلی. او خاطرات را با یادداشت هایی تکمیل کرد که به طور مفصل روشی را برای محاسبه اعداد برنولی با موتور مشخص می کرد که توسط اکثر مورخان به عنوان اولین برنامه کامپیوتری منتشر شده در جهان شناخته می شد. اولین کدهای کامپیوتری برای کاربردهایشان تخصصی بودند: به عنوان مثال، آلونزو چرچ توانست حساب لامبدا را به روش فرمولی بیان کند و ماشین تورینگ انتزاعی از عملکرد یک ماشین علامت گذاری نوار بود. Jacquard Looms و Charles Babbage’s Difference Engine هر دو دارای زبان های ساده برای توصیف اقداماتی بودند که این ماشین ها باید انجام دهند، از این رو آنها خالقان اولین زبان برنامه نویسی بودند.

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

در دهه 1940، اولین کامپیوترهای کاملاً مدرن با انرژی الکتریکی ساخته شدند. سرعت محدود و ظرفیت حافظه، برنامه نویسان را مجبور به نوشتن برنامه های زبان اسمبلی با تنظیم دستی کرد. در نهایت متوجه شد که برنامه نویسی به زبان اسمبلی به تلاش فکری زیادی نیاز دارد. پیشنهاد اولیه برای یک زبان برنامه نویسی سطح بالا Plankalkül بود که توسط Konrad Zuse برای کامپیوتر Z1 خود بین سالهای 1942 و 1945 توسعه یافت اما در آن زمان اجرا نشد. اولین زبان های برنامه نویسی کاربردی که برای انتقال دستورالعمل ها به کامپیوتر طراحی شده بودند در اوایل دهه 1950 نوشته شدند. کد کوتاه جان ماچلی که در سال 1949 پیشنهاد شد، یکی از اولین زبان‌های سطح بالا بود که برای کامپیوترهای الکترونیکی توسعه یافت. بر خلاف کد ماشین، عبارات کد کوتاه عبارات ریاضی را به شکل قابل فهم نشان می دادند. با این حال، برنامه باید هر بار که اجرا می‌شد به کد ماشین ترجمه می‌شد و این روند را بسیار کندتر از اجرای کد ماشین معادل می‌کرد. در اوایل دهه 1950، Alick Glennie Autocode، احتمالاً اولین زبان برنامه نویسی کامپایل شده را در دانشگاه منچستر توسعه داد. در سال 1954، تکرار دوم از زبان، معروف به “Mark 1 Autocode” برای Mark 1 توسط R. A. Brooker توسعه یافت.همچنین بروکر، با دانشگاه منچستر، در دهه 1950 یک کد خودکار برای Ferranti Mercury ایجاد کرد. نسخه EDSAC 2 توسط داگلاس هارتری از آزمایشگاه ریاضی دانشگاه کمبریج در سال 1961 ابداع شد. این نسخه که با نام EDSAC 2 Autocode شناخته می شود، توسعه مستقیمی از Autocode مرکوری بود که برای شرایط محلی سازگار شده بود و به دلیل بهینه سازی کد شی و زبان منبع آن مورد توجه قرار گرفت. تشخیصی که در آن زمان پیشرفته بود. یک رشته توسعه معاصر اما جداگانه، Atlas Autocode برای دستگاه اطلس 1 دانشگاه منچستر توسعه داده شد. در سال 1954، FORTRAN در IBM توسط تیمی به رهبری جان بکوس اختراع شد. این اولین زبان با هدف عمومی سطح بالا بود که به طور گسترده استفاده می‌شد که یک پیاده‌سازی کاربردی داشت، بر خلاف طراحی روی کاغذ. هنگامی که FORTRAN برای اولین بار معرفی شد، به دلیل اشکالات، تاخیر در توسعه، و کارایی نسبی برنامه های “کد دستی” نوشته شده در اسمبلی با شک و تردید نگریسته شد. با این حال، در بازار سخت افزاری که به سرعت در حال تکامل بود. این زبان در نهایت به دلیل کارایی خود شناخته شد. این زبان هنوز هم یک زبان محبوب برای محاسبات با کارایی بالا است و برای برنامه‌هایی استفاده می‌شود که سریع‌ترین ابررایانه‌های TOP500 جهان را معیار و رتبه‌بندی می‌کنند. یکی دیگر از زبان های برنامه نویسی اولیه توسط گریس هاپر در ایالات متحده به نام FLOW-MATIC ابداع شد. این برای UNIVAC I در رمینگتون رند در طول دوره 1955 تا 1959 توسعه داده شد. هاپر دریافت که مشتریان پردازش داده های تجاری با نمادهای ریاضی ناخوشایند هستند و در اوایل سال 1955، او و تیمش مشخصاتی را برای یک زبان برنامه نویسی زبان انگلیسی نوشتند. یک نمونه اولیه را اجرا کرد. کامپایلر FLOW-MATIC در اوایل سال 1958 در دسترس عموم قرار گرفت و در سال 1959 به طور قابل ملاحظه ای کامل شد. Flow-Matic تأثیر عمده ای در طراحی COBOL داشت، زیرا در آن زمان فقط آن و نسل مستقیم آن AIMACO مورد استفاده قرار می گرفتند. زبان های دیگری که امروزه هنوز مورد استفاده قرار می گیرند عبارتند از LISP (1958) که توسط جان مک کارتی اختراع شد و COBOL (1959) که توسط کمیته برد کوتاه ایجاد شد. نقطه عطف دیگر در اواخر دهه 1950 انتشار “زبان جدیدی برای الگوریتم ها” توسط کمیته ای از دانشمندان کامپیوتر آمریکایی و اروپایی بود. گزارش ALGOL 60 (“زبان الگوریتمی”). این گزارش بسیاری از ایده‌های رایج در آن زمان را ادغام کرد و سه نوآوری کلیدی زبان را به نمایش گذاشت:

آموزش الگوریتم نویسی و رسم فلوچارت

  • ساختار بلوک تودرتو: دنباله‌های کد و اعلان‌های مرتبط را می‌توان بدون نیاز به تبدیل به رویه‌های جداگانه و با نام صریح در بلوک‌ها گروه‌بندی کرد.
  • محدوده واژگانی: یک بلوک می‌تواند متغیرها، رویه‌ها و توابع خصوصی خود را داشته باشد که برای کدگذاری خارج از آن بلوک، یعنی پنهان کردن اطلاعات، نامرئی است.
  • یکی دیگر از نوآوری های مرتبط با این، در نحوه توصیف این زبان بود:
  • یک نماد ریاضی دقیق، فرم Backus-Naur (BNF)، برای توصیف نحو زبان استفاده شد. تقریباً همه زبان‌های برنامه‌نویسی بعدی از یک نوع BNF برای توصیف بخش بدون متن از نحو خود استفاده کرده‌اند.
  • ALGOL 60 به ویژه در طراحی زبان های بعدی تأثیرگذار بود، که برخی از آنها به زودی محبوبیت بیشتری پیدا کردند. سیستم‌های بزرگ باروز برای برنامه‌ریزی در زیر مجموعه گسترده‌ای از ALGOL طراحی شده‌اند.
  • ایده های کلیدی ALGOL ادامه یافت و ALGOL 68 را تولید کرد:
  • نحو و معنایی حتی متعامدتر شد، با روال‌های ناشناس، یک سیستم تایپ بازگشتی با توابع درجه بالاتر و غیره.
  • نه تنها بخش بدون متن، بلکه نحو و معناشناسی کامل زبان به طور رسمی بر اساس گرامر Van Wijngaarden تعریف شد، فرمالیسمی که به طور خاص برای این منظور طراحی شده است.
بسیاری از ویژگی‌های زبان کم استفاده ALGOL 68 (به عنوان مثال، بلوک‌های همزمان و موازی) و سیستم پیچیده میانبرهای نحوی و اجبارهای نوع خودکار آن، آن را در بین پیاده‌کننده‌ها نامحبوب کرده و به دشواری شهرت آن دست یافته است. نیکلاوس ویرث در واقع از کمیته طراحی خارج شد تا زبان پاسکال ساده‌تر را ایجاد کند. فرترن

برخی از زبان های قابل توجهی که در این دوره توسعه یافتند عبارتند از:

1951 – زبان مجمع منطقه ای 1952 – کد خودکار 1954 – IPL (پیشرو LISP) 1955 – FLOW-MATIC (منتهی به COBOL) 1957 – FORTRAN (اولین کامپایلر) 1957 – COMTRAN (پیش ساز COBOL) 1958 – LISP 1958 – ALGOL 58 1959 – FACT (پیش از COBOL) 1959 – COBOL 1959 – RPG 1960 – ALGOL 60 1962 – APL 1962 – سیمولا 1962 – اسنوبول 1963 – CPL (پیش از C) 1964 – Speakeasy 1964 – پایه 1964 – PL/I 1966 – JOSS 1966 – اوریون 1967 – BCPL (پیش از C) 1967 – لوگو (زبان آموزشی که بعداً Smalltalk و Scratch را تحت تأثیر قرار داد).

ایجاد پارادایم های اساسی

دوره ای از اواخر دهه 1960 تا اواخر دهه 1970 شکوفایی عمده زبان های برنامه نویسی را به همراه داشت. بیشتر پارادایم های زبانی اصلی که اکنون مورد استفاده قرار می گیرند در این دوره اختراع شدند:
  • Speakeasy که در سال 1964 در آزمایشگاه ملی آرگون (ANL) توسط استنلی کوهن توسعه یافت، یک سیستم برنامه نویسی شی گرا (OOPS) است که بسیار شبیه بسته عددی متلب، IDL و Mathematica بعدی است. Speakeasy دارای یک دستور پایه فرترن واضح است. ابتدا به محاسبات فیزیک کارآمد در داخل ANL پرداخت، برای استفاده تحقیقاتی (به عنوان “Modeleasy”) برای هیئت فدرال رزرو در اوایل دهه 1970 اصلاح شد و سپس به صورت تجاری در دسترس قرار گرفت. Speakeasy و Modeleasy هنوز در حال استفاده هستند.
  • Simula که در اواخر دهه 1960 توسط Nygaard و Dahl به عنوان ابر مجموعه ALGOL 60 اختراع شد، اولین زبان طراحی شده برای پشتیبانی از برنامه نویسی شی گرا بود.
  • FORTH، اولین زبان برنامه نویسی پیوسته توسط چارلز مور در سال 1969 به عنوان یک سیستم توسعه شخصی در حالی که در رصدخانه ملی رادیو نجوم (NRAO) بود، طراحی شد.
  • C، یک زبان برنامه نویسی سیستم های اولیه، توسط دنیس ریچی و کن تامپسون در آزمایشگاه Bell بین سال های 1969 تا 1973 توسعه یافت.
  • اسمال تاک (اواسط دهه 1970) طراحی کاملی از یک زبان شی گرا ارائه کرد.
  • Prolog که در سال 1972 توسط آلن کولمراور، فیلیپ روسل و رابرت کوالسکی طراحی شد، اولین زبان برنامه نویسی منطقی بود.
  • ML یک سیستم از نوع چند شکلی (که توسط رابین میلنر در سال 1973 اختراع شد) بر روی Lisp ساخت، [15] که پیشگام زبان های برنامه نویسی تابعی با تایپ ایستا بود. هر یک از این زبان ها یک خانواده کامل از فرزندان را ایجاد کردند و بیشتر زبان های مدرن حداقل یکی از آنها را در اصل و نسب خود می دانند.
دهه‌های 1960 و 1970 نیز بحث‌های قابل‌توجهی بر سر مزیت‌های «برنامه‌نویسی ساختاریافته» بود که اساساً به معنای برنامه‌نویسی بدون استفاده از goto بود. بخش قابل توجهی از برنامه نویسان بر این باور بودند که حتی در زبان هایی که goto را ارائه می دهند، استفاده از آن به جز در موارد نادر سبک برنامه نویسی بدی است. این بحث ارتباط تنگاتنگی با طراحی زبان داشت: برخی از زبان‌ها فاقد Goto بودند، که استفاده از برنامه‌نویسی ساخت‌یافته را اجبار می‌کرد. برای ارائه زمان‌های کامپایل سریع‌تر، برخی از زبان‌ها برای «کامپایلرهای یک‌گذر» ساختار یافته‌اند که انتظار دارند روال‌های فرعی ابتدا تعریف شوند، مانند پاسکال، جایی که روال اصلی یا عملکرد درایور، بخش نهایی فهرست برنامه است.

برخی از زبان های قابل توجهی که در این دوره توسعه یافتند عبارتند از:

1967 – BCPL (پیش از B) 1968 – لوگو 1969 – B (پیش از C) 1970 – پاسکال 1970 – چهارم 1972 – سی 1972 – اسمال تاک 1972 – Prolog 1973 – ML 1975 – طرح 1978 – SQL (زبان پرس و جو که بعداً توسعه یافت)

دهه 1980: ادغام، ماژول ها، عملکرد

دهه 1980 سالهای تثبیت نسبی در زبانهای دستوری بود. به جای ابداع پارادایم‌های جدید، همه این جنبش‌ها بر اساس ایده‌های ابداع شده در دهه قبل توضیح دادند. C++ برنامه نویسی شی گرا و سیستمی را ترکیب کرد. دولت ایالات متحده Ada را استاندارد کرد، زبان برنامه نویسی سیستمی که برای استفاده توسط پیمانکاران دفاعی در نظر گرفته شده است. در ژاپن و جاهای دیگر، مبالغ هنگفتی برای بررسی به اصطلاح زبان‌های برنامه‌نویسی نسل پنجم که ساختارهای برنامه‌نویسی منطقی را در خود جای داده بودند، صرف شد. جامعه زبان های کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. تحقیقات در میراندا، یک زبان کاربردی با ارزشیابی تنبل، در این دهه شروع شد. یکی از گرایش‌های جدید مهم در طراحی زبان، افزایش تمرکز بر برنامه‌نویسی برای سیستم‌های مقیاس بزرگ از طریق استفاده از ماژول‌ها یا واحدهای سازمانی در مقیاس بزرگ کد بود. Modula، Ada و ML همگی سیستم های ماژول قابل توجهی را در دهه 1980 توسعه دادند. سیستم‌های ماژول اغلب با سازه‌های برنامه‌نویسی عمومی پیوند می‌خوردند: ژنریک‌ها، در اصل، ماژول‌های پارامتری هستند. اگرچه پارادایم های جدید اصلی برای زبان های برنامه نویسی ضروری ظاهر نشدند، بسیاری از محققان ایده های زبان های قبلی را گسترش دادند و آنها را با زمینه های جدید تطبیق دادند. برای مثال، زبان‌های سیستم‌های Argus و Emerald، برنامه‌نویسی شی‌گرا را با سیستم‌های محاسباتی توزیع‌شده تطبیق دادند. دهه 1980 همچنین پیشرفت هایی را در پیاده سازی زبان برنامه نویسی به همراه داشت. حرکت کامپیوتری مجموعه دستورات کاهش یافته (RISC) در معماری کامپیوتر فرض می کند که سخت افزار باید برای کامپایلرها طراحی شود تا برای برنامه نویسان مونتاژ انسانی. با کمک بهبود سرعت واحد پردازش مرکزی (CPU) که روش‌های کامپایل تهاجمی فزاینده‌ای را ممکن می‌سازد، جنبش RISC علاقه بیشتری به فناوری کامپایلر برای زبان‌های سطح بالا برانگیخت. فناوری زبان در امتداد این خطوط تا دهه 1990 ادامه یافت. برخی از زبان های قابل توجهی که در این دوره توسعه یافتند عبارتند از: 1980 – ++C(به عنوان C با کلاس ها، در سال 1983 تغییر نام داد) 1983 – آدا 1984 – Common Lisp 1984 – متلب 1984 – dBase III، dBase III Plus (Clipper و FoxPro به عنوان FoxBASE) 1985 – ایفل 1986 – هدف-C 1986 – LabVIEW (زبان برنامه نویسی بصری) 1986 – ارلنگ 1987 – پرل 1988 – PIC (زبان نشانه گذاری) 1988 – Tcl 1988 – Wolfram Language (به عنوان بخشی از Mathematica، فقط در ژوئن 2013 یک نام جداگانه دریافت کرد) 1989 – FL (Backus)

آموزش جامع برنامه نویسی ++C از مبتدی تا پیشرفته

دهه 1990: عصر اینترنت

رشد سریع اینترنت در اواسط دهه 1990 رویداد مهم تاریخی بعدی در زبان های برنامه نویسی بود. اینترنت با گشودن یک پلتفرم کاملاً جدید برای سیستم های کامپیوتری، فرصتی را برای پذیرش زبان های جدید ایجاد کرد. به طور خاص، زبان برنامه نویسی جاوا اسکریپت به دلیل ادغام اولیه آن با مرورگر وب Netscape Navigator محبوبیت پیدا کرد. زبان‌های برنامه‌نویسی مختلف دیگر در توسعه برنامه‌های کاربردی سفارشی‌سازی شده برای سرورهای وب مانند پی‌اچ‌پی کاربرد گسترده‌ای پیدا کردند. در دهه 1990 هیچ نوآوری اساسی در زبان های امری مشاهده نشد، بلکه بسیاری از نوترکیب ها و بلوغ ایده های قدیمی به چشم می خورد. این دوره گسترش زبان های کاربردی را آغاز کرد. یک فلسفه بزرگ رانندگی بهره وری برنامه نویس بود. بسیاری از زبان‌های توسعه سریع برنامه‌های کاربردی (RAD) پدیدار شدند، که معمولاً با محیط توسعه یکپارچه (IDE)، جمع‌آوری زباله، و از نوادگان زبان‌های قدیمی‌تر بودند. همه این زبان ها شی گرا بودند. اینها شامل Object Pascal، Objective Caml (تغییر نام OCaml)، Visual Basic و Java بود. جاوا به ویژه مورد توجه بسیاری قرار گرفت. رادیکال تر و مبتکرتر از زبان های RAD زبان های جدید برنامه نویسی بودند. این زبان‌ها مستقیماً از زبان‌های دیگر سرچشمه نمی‌گیرند و نحو جدید و ترکیب آزادتر ویژگی‌ها را نشان می‌دهند. بسیاری این زبان‌های برنامه‌نویسی را حتی از زبان‌های RAD مفیدتر می‌دانند، اما اغلب به دلیل انتخاب‌هایی که برنامه‌های کوچک را ساده‌تر، اما برنامه‌های بزرگ را برای نوشتن و نگهداری دشوارتر می‌کند. در ارتباط با وب استفاده می شود.

برخی از زبان های قابل توجهی که در این دوره توسعه یافتند عبارتند از:

1990 – هاسکل 1990 – پایتون 1991 – ویژوال بیسیک 1993 – لوا 1993 – R 1994 – CLOS (بخشی از ANSI Common Lisp) 1995 – روبی 1995 – آدا 95 1995 – جاوا 1995 – دلفی (ابجکت پاسکال) 1995 – جاوا اسکریپت 1995 – PHP 1996 – OCaml 1997 – Rebol

روندهای فعلی

تکامل زبان برنامه نویسی هم در صنعت و هم در تحقیقات ادامه دارد. برخی از روندهای اخیر عبارتند از:
  • افزایش پشتیبانی از برنامه‌نویسی تابعی در زبان‌های رایج مورد استفاده تجاری، از جمله برنامه‌نویسی کاملاً کاربردی برای ساده‌تر کردن استدلال و موازی کردن کد (در هر دو سطح خرد و کلان)
  • ساختارهایی برای پشتیبانی از برنامه نویسی همزمان و توزیع شده.
  • مکانیسم‌هایی برای افزودن تأیید امنیت و قابلیت اطمینان به زبان: بررسی استاتیک گسترده، تایپ وابسته، کنترل جریان اطلاعات، ایمنی رشته استاتیک.
  • مکانیسم‌های جایگزین برای ترکیب‌پذیری و مدولار بودن: ترکیب‌ها، صفات، کلاس‌های نوع، نمایندگان، جنبه‌ها.
  • توسعه نرم افزار کامپوننت محور.
  • فرابرنامه‌نویسی، بازتاب یا دسترسی به درخت نحو انتزاعی
    • AOP یا Aspect Oriented Programming که به توسعه دهندگان اجازه می دهد کد را در ماژول یا کلاس دیگری در “نقاط پیوستن” وارد کنند.
    • زبان های مخصوص دامنه و تولید کد
      • XML برای رابط گرافیکی (XUL، زبان نشانه گذاری برنامه توسعه پذیر (XAML))
  • افزایش علاقه به توزیع و تحرک.
  • ادغام با پایگاه های داده، از جمله XML و پایگاه های داده رابطه ای.
  • منبع باز به عنوان یک فلسفه توسعه برای زبان ها، از جمله مجموعه کامپایلر گنو و زبان هایی مانند PHP، Python، Ruby و Scala.
  • علاقه بیشتر به زبان های برنامه نویسی بصری مانند Scratch، LabVIEW و PWCT
  • زبان‌های بسیار موازی برای واحدهای پردازش گرافیکی GPU و آرایه‌های ابر رایانه، از جمله OpenCL
  • تحقیقات اولیه در مورد زبان های برنامه نویسی محاسبات کوانتومی
  • تحقیقات اولیه در استفاده از روش‌های هوش مصنوعی (AI) برای تولید کد با استفاده از هوش مصنوعی مانند استفاده از GPT-3

برخی از زبان های قابل توجه توسعه یافته در این دوره عبارتند از:

2000 – اکشن اسکریپت 2001 – سی شارپ 2001 – D 2002 – خراش 2003 – گرووی 2003 – اسکالا 2005 – F# 2005 – HolyC 2006 – پاورشل 2007 – کلوژور 2008 – نیم 2009 – برو 2011 – دارت 2011 – کاتلین 2012 – جولیا 2012 – TypeScript 2012 – الم 2012 – اکسیر 2014 – سوئیفت 2015 – زنگ 2015 – راکو 2019 – بوسکه 2021 – Microsoft Power Fx سایر زبان های برنامه نویسی جدید عبارتند از Red، Crystal، Hack، Haxe، Zig و Reason. منبع:https://en.wikipedia.org/wiki/History_of_programming_languages
جدیدترین آموزش ها در
کدنویسم
codenevisam وب‌سایت

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