برنامه نویسی از گذشته تا امروز
 khoshnevis  1394/08/18  1351

 

مقدمه:

برنامه‌نویسی رایانه در فرهنگ واژه غیر متخصّصین ممکن است به تمام پروژه ساخت نرم‌افزار یا برنامهٔ رایانه‌ای گفته شود. با این همه برنامه‌نویسی تنها بخشی از فرایند توسعهٔ نرم‌افزار یا برنامه رایانه‌ای است. اهمیت، توجه و منابع اختصاص داده شده به برنامه‌نویسی، بسته به ویژگی‌های مشخص شده محصول و خواست افراد درگیر در پروژه و کاربران و در نهایت شیوهٔ انتخاب شده مهندسی نرم‌افزار متغیر است.
برنامه نویسی کامپیوتر (که اغلب به طور کوتاه برنامه نویسی نامیده می شود) فرآیند سوق دادن ساختار اصلی یک مسأله محاسباتی به برنامه ای قابل اجرا است. این کار مستلزم فعالیت هایی همچون تحلیل و درک مسأله است و عموما حل چنین مسایلی منجر می شود به ایجاد یک الگوریتم، بازبینی نیازمندی های الگوریتم که شامل صحت و میزان منابع مصرفی است، پیاده سازی(که معمولا به عنوان کدینگ از آن یاد می شود) این الگوریتم در یک زبان برنامه نویسی مقصد، تست کردن، اشکال زدایی، نگه داری کد منبع، پیاده سازی سیستم ساخت(build system) و مدیریت مصنوعات مشتق شده مانند کد ترجمه شده به زبان ماشین برنامه های کامپیوتری. الگوریتم اغلب تنها به شکل قابل تجزیه و تحلیل برای انسان و قابل استدلال با منطق نمایش داده می شود. کد منبع به یک یا چند زبان برنامه نویسی(مانند JavaScript ،Smalltalk ،Python ،Java ،C# ،C++ ،C، و غیره) نوشته شده است.

مقاله در مورد برنامه نویسی از گذشته تا امروز

نرم افزار چیست؟

یک پاسخ ساده برای آن عبارتست از: سخت افزار را می توانید لمس کنید اما نرم افزار را نه!
اما این پاسخ بسیار سطحی و ساده است. اگر بخواهیم دقیقتر بگوییم زمانیکه از نرم افزار صحبت می کنیم در حقیقت منظورمان برنامه ای است که در کامپیوتر اجرا می شود. در طول تاریخ، دنیای نرم افزارها و برنامه های کامپیوتری به موازات توسعه برنامه نویسی (Programming) و زبانهای برنامه نویسی (Programming languages) توسعه یافته است. بنابراین مطالعه روند توسعه دنیای برنامه نویسی ما را به مطالعه تاریخچه دنیای نرم افزار رهنمون می سازد.

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

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

ویژگی هایی که غالبا برای تشکیل یک زبان برنامه نویسی مهم شمرده می شوند:

تابع : یک زبان برنامه نویسی، زبانی است که برای نوشتن برنامه های رایانه ای به کار می رود که رایانه ای را برای انجام محاسبات یا اجرای الگوریتم و یا احتمالا کنترل دستگاه های خارجی مثل چاپگر، ربات و… درگیر می کنند.
هدف: زبان های برنامه نویسی با زبان های طبیعی تفاوت دارند و آن اینکه زبان های طبیعی فقط برای فعل و انفعالات بین مردم به کار می روند، در حالیکه زبان های برنامه نویسی همچنین به انسانها اجازه می دهد که از طریق دستورات با ماشین ها ارتباط برقرار کنند. برخی زبان های برنامه نویسی بوسیله یک دستگاه استفاده می شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه های پست اسکریپت(post script) غالبا توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد می شوند.
ساختارها: زبان های برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
توان بیانگر: نظریه محاسبات، زبان ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی می کند. تمام زبان های “کامل تورینگ” می توانند مجموعه یکسانی از الگوریتم ها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثال هایی هستند از زبان هایی که کامل تورینگ نیستند، ولی غالبا زبان برنامه نویسی نامیده می شوند.
برخی مولفین اصطلاح” زبان برنامه نویسی” را محدود به آنهایی می کنند که می توانند تمام الگوریتم های ممکن را پیاده سازی کنند، گاهی اوقات اصطلاح” زبان رایانه” برای زبان های برنامه نویسی محدودتر به کار می رود.
زبان های غیر محاسباتی، مانند زبان های مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولا زبان برنامه نویسی محسوب نمی شوند. یک زبان برنامه نویسی(که می تواند کامل تورینگ نباشد) ممکن است در این زبان های غیر محاسباتی (میزبان) تعبیه شوند.
مقاله در مورد برنامه نویسی از گذشته تا امروز

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

با توجه به مطالعات پیشین در زمینه روند توسعه ابزارهای برنامه نویسی، می توان این ابزارها را به چند نسل مختلف تقسیم بندی کرد؛
نسل اول
در سالهای دهه ۱۹۵۰ برنامه نویسی کامپیوترهای اولیه توسط تغییر سیم ها و تنظیم هزاران کلید و سوییچ انجام میشد. در برخی موارد این تنظیمات بر روی کاغذهای طومار گونه و یا کارت های سوراخشده نوشته می شدند که به کامپیوتر می گفتند چه کاری را (What)، به چه صورت (How) و در چه زمانی (When) انجام دهد.
به منظور اجرای یک نرم افزار، برنامه نویس باید اطلاعات جامع و کاملی از کامپیوتر موردنظر می داشت. یک اشتباه کوچک منجر به شکست در کل برنامه کامپیوتری میشد.
نسل دوم
در این دوره افراد به دنبال ابزارهای سریعتر و راحتتری برای برنامه نویسی بودند. نتیجه این تلاشها تولد نسل دوم زبان های برنامه نویسی در اواسط دهه ۱۹۵۰ شد. در این نسل از نمادها به جای دستورات صفر و یک استفاده می شد.
نسل سوم
در اواخر دهه ۱۹۵۰ مفسرهای زبان های طبیعی و کامپایلرهای پا به عرصه ظهور گذاشتند. قدیمیترین زبان برنامه نویسی این نسل FORTRAN است که در سال ۱۹۵۳ توسط IBM ساخته شد. در سال ۱۹۵۹ زبان برنامه نویسی COBOL به منظور استفاده در دنیای نرم افزارهای تجاری عرضه گردید.
زبانهای سطح بالای برنامه نویسی مانند BASIC ، PASCAL ، ALGOL ، PL/I و C در این دوره معرفی شدند.
نسل چهارم
زبانهای این نسل برنامه نویس را قادر می سازند تا کارهای سطح بالاتر و بیشتری را توسط کد کمتری انجام دهد. هر دستور از زبانهای این نسل معادل صدها دستور از زبانهای نسل سوم است. برنامه هایی که توسط این زبانهای نوشته می شوند، نیاز به یک محیط سخت افزاری خاص و امکانات خاص برای اجرا شدن دارند. در دهه ۱۹۹۰ درخواست ها برای استفاده از این زبانها بسیار زیاد شد و کمپانی هایی مانند Oracle و SUN تلاشهایی در این زمینه انجام دادند.
نسل پنجم
این نسل از زبانهای برنامه نویسی هنوز در مرحله تئوری هستند و تا به امروز نمونه عملی از آنها ساخته نشده است. بسیاری از تلاشها به دلیل محدودیت سخت افزارها، عملیاتی نشده اند. استفاده از زبان طبیعی و روزمره برای تفهیم کارها به کامپیوترها از ویژگی های بارز این نسل به شمار می رود. استفاده از شبکه های عصبی و هوش مصنوعی و همچنین استفاده از Agent ها به منظور انجام کارها در کامپیوتر از دیگر ویژگی های این نسل از زبان ها هستند. زبانهای برنامه نویسی از دیرباز تا کنون توسعه یافته اند. از سیم کشی کامپیوترها تا زبانهای سطح بالای نسل سوم و چهارم. این گامها هر کدام ابزارها و امکانات جدیدتر و بهتری را در اختیار برنامه نویسان قرار دادند و به طبع آن نرم افزارهای کامپیوتری نیز بهتر و پیشرفته تر شدند.
برنامه نویسی و تولید نرم افزارهای امروزی حاصل دسترنج ساعتها تفکر و تلاش این اشخاص است. همانطور که قبلا توضیح داده شد کامپیوترهای امروزی از لحاظ سخت افزاری بسیار ساده طراحی می شوند و این نرم افزار است که با ترکیب این اعمال می تواند کارهای بزرگتر و پیچیده تری را به انجام برساند. به موازات بهبود زبان و ابزارهای برنامه نویسی، توقع از نرم افزارها نیز بالاتر رفته است. امروزه نرم افزارها خدمات بسیاری را باید ارائه دهند. هر یک از خدمات باید به صورت کامل، با دقت بالا و سریع ارائه گردد تا بتواند توقع مخاطب را تامین کند. هر نرم افزار امروزی برای انجام یک کار ممکن است به صدها یا هزاران خط دستورات نیاز داشته باشد.
قدیمیترین نمونه عملی از برنامه نویسی به سال ۱۸۰۱ در کشور فرانسه توسط شخصی بنام جکارد برمی گردد. او یک دستگاه بافندگی طراحی کرده بود که می توانست اعمال خاصی از بافندگی را که روی کارتهای سوراخ شده (Punched card) ثبت شده بودند به ترتیب انجام دهد. این تکنولوژی اجازه تولید بافت های پیچیده و با کیفیت تر را به کارگران معمولی می داد. اکنون به جای کارگران متعدد و ماهر، فقط یک نفر برای مدیریت کل دستگاه کافی بود. روند تقریبا مشابهی نیز در خلال انقلاب صنعتی در انگلیس به وقوع پیوست. به دنبال استفاده از ماشینهای خودکار و کاهش نیروی کار انسانی، جنبشی تحت عنوان لودیت ها به راه افتاد. این جنبش متشکل بود از افرادی که مخالف توسعه تکنولوژی بودند و برای جایگاه شغلی، نان و رزق و روزی خود با تکنولوژی می جنگیدند.
در این دوره، برنامه نویسی به موازات ساخت ماشین های جدید توسط پاسکال، بابیج، شوالتز و … توسعه می یافت. برای حل هر مشکلی یک ماشین جدید ساخته می شود که چرخ دنده ها، سیم ها، میله ها و دستورات جدیدتری نسبت به قبل داشت.
در سال ۱۸۴۷ یک ریاضیدارن انگلیسی بنام George Boole با ارائه جبر منطقی، ارتباط میان علم ریاضیات و منطق را اثبات کرد. برای اولین بار او اثبات کرد که علم منطق بیشتر بخشی از ریاضیات است تا فلسفه! این عمل که یک گام بزرگ در تفکر بشریت به حساب می آید تقریبا صد سال (تا سال ۱۹۴۰) طول کشید تا در محاسبات کامپیوتری به کار گرفته شود.
در دهه ۱۹۴۰ اولین کامپیوتر الکترونیکی ساخته شد. حافظه محدود و سرعت بسیار پایین (به نسبت سرعت کامپیوترهای امروزی) از ویژگی های بارز کامپیوترهای الکترونیکی اولیه بودند. در این سالها که به عصر اطلاعات معروف بود، اجرای برنامه ها در کامپیوترها مستلزم تنظیم کلیدها، سوییچ ها و اتصال سیم های مختلف بود که منطق برنامه را مشخص می کردند.
زبانهای برنامه نویسی موجود در دنیا بیش از ۶۰۰ زبان می باشد؛ که در زیر برخی از این زبان ها، به ترتیب حروف الفبا مشاهده می کنید.
ای شارپ، A-0 System،آ+، آ++، آباپ، ای‌بی‌سی، ای‌بی‌سی الگول، ای‌بی‌ال‌ای، ای‌سی‌سی (زبان برنامه‌نویسی) ، Accent، Ace DASL، ACT-III، اکشن! ، اکشن‌اسکریپت، ایدا، Adenine، Agda، Agora، AIMMS، Alef، ALF، الگول ۵۸، الگول ۶۰، الگول ۶۸، Alice، Alma-0، AmbientTalk، Amiga E، AMOS، AMPL، ای‌پی‌ال، AppleScript، Arc، Arden Syntax، ARexx، Argus، AspectJ، اسمبلی، ATS، Ateji PX ، AutoHotkey، Autocoder ، AutoIt، Averest، AWK ،Axum، Babbage، بش ، بیسیک، bc، بی‌سی‌پی‌ال، BeanShell، Batch (Windows/Dos) ، Bertrand، BETA، Bigwig، Bistro، BitC، BLISS، Blue، Bon، Boo، Boomerang، Bourne shell ، BREW، BPEL، BUGSYS، BuildProfessional، زبان برنامه‌نویسی سی، سی ماینس ماینس، سی++ ، سی‌شارپ، C/AL، Caché ObjectScript، C Shell، Caml، Candle، CASUAL ، Cayenne، CDuce، Cecil، Cel، Cesil، کلد فیوژن، Cg، Chapel، CHAIN، Charity، Charm، Chef، CHILL، CHIP-8، chomski، Oxygene (formerly Chrome) ، ChucK، CICS، Cilk، CL ، Claire، Clarion، Clean، Clipper، CLIST، کلوژر، سی‌ال‌یو، CMS-2، کوبول، CobolScript، Cobra، CODE، کافی‌اسکریپت، کولا، ColdC، کلد فیوژن، Cool، COMAL، سی‌پی‌ال (CPL) ، زبان میانی مایکروسافت (CIL) ، لیسپ معمولی (also known as CL) ، COMPASS، Component Pascal، COMIT، Chr (CHR) ، Converge، Coral 66، Corn، CorVision، Coq، COWSEL، CPL، csh، CSP، Csound، Curl، Curry، Cyclone، Cython و …
زبان برنامه نویسی C:
در اوایل دهه ۱۹۷۰ میلادی ، زبان C ، توسط دنیس ریچی و به عنوان زبان برنامه نویسی سیستم ها طراحی شد. این زبان از دو زبان قدیمی تر بنام های BCPL و B حاصل شده است. زبان C تا سال ۱۹۷۸ منحصر به استفاده در لابراتوار کمپانی BELL بود تا این که توسط دو تن بنام های ریچی و کرنیه نسخه نهایی این زبان منتشر شد. به سرعت کامپایلر ها و مفسر های متعددی از C توسعه یافت اما برای جلو گیری از ناسازگاری های ایجاد شده و نیز حفظ قابلیت حمل زبان، تعاریف متحد الشکلی توسط استاندارد (ANSI (American national standard institute موسسه استاندارد ملی آمریکا ارائه گردید.مفسر خود برنامه ای کامپیوتری است که برنامه ی سطح بالا، داده ی ورودی آن و برنامه ی ایجاد شده به زبان ماشین، خروجی آن را تشکیل می دهد. به طور کلی ویژگی های مهم زبان C به اختصار به شرح زیر است:
زبان سی به طور گسترده ای در دسترس است. مفسر های تجاری آن در بیشتر کامپیوتر های شخصی، مینی کامپیوتر ها و نیز در کامپیوتر های بزرگ قابل استفاده اند.
سی زبانی است همه منظوره، ساخت یافته سطح بالا (مانند زبان پاسکال و فرتون . …) و انعطاف پذیر که برخی از خصوصیات زبانهای سطح پایین را نیز که معمولا در اسمبلی یا زبان ماشین موجود است داراست. در عین حال این زبان برای کاربردهای ویژه طراحی نشده و می توان از آن در همه ی زمینه ها، بخصوص به دلیل نزدیکی آن به زبان ماشین در برنامه نویسی سیستم، استفاده کرد. بنابراین سی بین زبان های سطح بالا و سطح پایین قرار دارد و در نتیجه اجازه می دهد که برنامه نویس خصوصیات هر دو گروه زبان را به کار برد. از این رو در بسیاری از کابردهای مهندسی به طور انحصاری زبان سی به کار می برند. (زبان های سطح بالا، دستور العمل هایی شبیه زبان انسان و پردازش فکری او داردند، همچنین یک دستور العمل زبان سطح بالا معادل چند دستور العمل به زبان ماشین است).
برنامه های نوشته شده به زبان c به طور کلی مستقل از ماشین یا نوع کامپیوتر است و تقریباً تحت کنترل هر سیستم عاملی اجرا می شود.
کامپایلرهای سی معمولا فشرده و کم حجم اند و برنامه های هدف ایجاد شده با آنها در مقایسه با سایر زبانهای برنامه سازی سطح بالا، خیلی کوچک و کار آمدند.
برنامه های سی در مقایسه با سایر زبانهای برنامه سازی سطح بالا، به راحتی قابل انتقال اند. دلیل آن این است که سی خیلی از ویژگی های وابسته به نوع کامپیوتر را در توابع کتابخانه ای خود منظور داشته است. بنابراین هر نسخه ازسی با مجموعه ای از توابع کتابخانه ای مخصوص به خود همراه است که بر اساس ویژگی های کامپیوتر میزبان مربوط نوشته شده است. این توابع کتابخانه ای تا حدودی استاندارد است و معمولا هر تابع کتابخانه ای در نسخه های متعدد سی به شکل یکسان در دسترس است.
سی روش برنامه نویسی ماژولار را پشتیبانی می کند. همچنین از نظر عملگر ها نیز زبانی قوی است که عملگرهای گوناگونی برای دستکاری روی داده ها در سطح، بیت داراست.
به طور کلی جامعیت ، عمومیت، خوانایی، سادگی ، کارآیی، و پیمانه ای بودن که همگی از مشخصات برنامه ای ایده آل اند در زبان C پیاده سازی می شوند.
ویژگی های فوق موجب شده زبان C یکی از قویترین و محبوب ترین زبان های برنامه سازی دنیا مطرح شود.
زبان برنامه نویسی ++C:
استراس‌تروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی‌های مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد. در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش ۲۰ از زبان ++C ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی. در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده‌است.
اهداف به وجود اومدن ++C:
در کتاب «طراحی و تکامل ++C» استراستروپ قوانین مورد استفاده در طراحی ++C را بیان می‌نماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک می‌کند. جزئیات بیشتر در کتاب قابل دسترسی است:
++C طراحی شده‌است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
++C طراحی شده‌است تا مستقیما و بصورت جامع از چندین شیوه برنامه‌نویسی (برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شی‌گرا، انتزاع داده، و برنامه‌نویسی جنریک)
++C طراحی شده‌است تا به برنامه‌نویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
++C طراحی شده‌است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
++C از بکاربردن ویژگی‌های خاص که مانع از عمومی شدن است خودداری می‌نماید.
++C از ویژگی‌هایی که بکار برده نمی‌شوند استفاده نمی‌کند.
++C طراحی شده‌است تا بدون یک محیط پیچیده عمل نماید.
زبان برنامه نویسی JAVA:
جاوا یک زبان برنامه‌نویسی است که در ابتدا توسط شرکت sun Microsystems ایجاد شده‌است و در سال ۱۹۹۵ به عنوان مولفه اصلی java platform منتشر شد.این زبان قسمت های بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شی‌گرایی ساده‌ای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. اجرای اصلی کامپایلرهای جاوا، ماشین‌های پیاده‌سازی و کتابخانه‌های آن توسط این شرکت از سال ۱۹۹۵ منتشر شد. در ۲۰۰۷ may این شرکت، نرم‌افزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.
Games Gosling پروژه زبان برنامه‌نویسی جاوا را در ۱۹۹۱ june آغاز کرد. این زبان در ابتدا Oak، سپس Green و در آخر هم جاوا نامیده شد. gosling قصد داشت یک ماشین مجازی و یک ماشینی به کار برد که شبیه C و ++C باشد. این شرکت نسخه اول جاوا را تحت عنوان Java1.0 در سال ۱۹۹۵ منتشر ساخت. جستجوگرهای اصلی وب، به هم پیوستند تا به طور مطمئن java applet را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخه جدید توانست ترکیب‌های جدیدی را برای نوع‌های مختلف پلت فرم‌ها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخه J2ME برای موبایل منتشر شد. در سال ۲۰۰۶ با هدف بازاریابی، این شرکت نسخه جدید J2 را با نام‌های JavaEE ،JavaME و JavaSE منتشر کرد. در سال ۱۹۹۷ شرکت سان میکروسیستمز،ISO/IEC JTC1 standards body و Ecma
International را به فرمول جاوا تغییر داد. شرکت sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینه‌ای فراهم آورد. شرکت sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. اولین تمایزی که بین SDK و JRE داد شامل فقدان کامپایلر برای JRE و سرفایل ها بود. در ۱۳ نوامبر ۲۰۰۶ شرکت sun نرم‌افزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.
اهداف اولیه ساخت و طراحی جاوا:
این زبان باید ساده، شی‌گرا و مشهور باشد.
مطمئن و بدون خطا باشد.
وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد.
باید با کارایی بالا اجرا شود.
باید به صورت پویا و نخ‌کشی‌شده باشد.
زبان برنامه نویسی c#:
در سال ۱۹۹۹، شرکت سان اجازه استفاده از زبان برنامه نویسی جاوا را در اختیار ماکروسافت قرار داد تا در سیستم عامل خود از آن استفاده کند.جاوا در اصل به هیچ پلت فرم یا سیستم عاملی وابسته نبود، ولی ماکروسافت برخی از مفاد قرار داد را زیر پا گذاشت و قابلیت مستقل از سیستم عامل بودن جاوا را از آن برداشت.شرکت سان پرونده‌ای علیه ماکروسافت درست کرد و ماکروسافت مجبور شد تا زبان شی گرای جدیدی با کامپایل جدید که به ++C شبیه بود را درست کند. در طول ساخت دات نت، کلاس‌های کتابخانه‌ای با زبان و کامپایلر SMC نوشته شدند.در سال ۱۹۹۹ آندرس هلزبرگ گروهی را برای طراحی زبانی جدید تشکیل داد که در آن زمان نامش Cool بود و همانند C بود با خواص شی گرایی. ماکروسافت در نظر داشت اسم این زبان را تا آخر Cool قرار دهد، ولی به دلیل مناسب نبودن برای اهداف تجاری این کار را نکرد. در ارائه و معرفی رسمی .NET در PDC در سال ۲۰۰۰ این زبان به C سی شارپ تغییر نام یافت و کتابخانه کلاس‌ها و runtime در ASP.NET به#C منتقل شدند. مدیر و سرپرست طراحان در ماکروسافت آندرس هلزبرگ بود که تجربه قبلی او در طراحی Framework و زبان‌های برنامه سازی++Borland , Delphi, Turbo Pascal, Visual C به آسانی در دستورالعمل‌های سی شارپ قابل رویت است و به همان خوبی در هسته CLR.
سی شارپ دارای یک سیستم نوع یکپارچه‌است که به آن CTS می‌گویند.این بدان معناست که تمام انواع،شامل موارد اصلی مانند Integerها، مشتق شده از System.Object هستند.به عنوان مثال، هر نوع یک متد به نام ToString() را به ارث می‌برد.بخاطر کارائی،انواع اولیه (و انواع مقداری) به طور داخلی فضایی برای آنها بر روی پشته در نظر گرفته می‌شود.
زبان برنامه نویسی Visual Basic:
زبان ویژوال بیسیک در واقع حاصل توسعه و ارتقای زبان بیسیک است. بیسیک اولیه حدود سال ۱۹۶۴ کالج دارت موث (Darth Mouth )به وسیله آقایان توماس کورتز ( Thomas Kurtz) و جان کمنی (John Kemeny) با هدف گسترش برنامه نویسی بیش دانش آموزان و دانش آموزان و دانشجویان
طراحی و ساخته شد.از آن زمان نسخه های متعدد و متفاوتی از آن مانند (GWBASIC QUICK
BASIC وTURBOBASIC) ارایه گردید و هموراه سعی در افزایش توانمندیهای آن به عنوان یک زبان سطح بالای ساخت یافته شده است . با ظهور سیستم عامل ویندوز ۹۵ و ۹۸ فقدان یک زبان برنامه نویسی آسان و قدرتمند برای استفاده در سیستم عامل های مذکور کاملاً مشهود بود . از این رو مایکروسافت در سال ۱۹۹۱ نسخه اول ویژوال بیسیک را با امکانات یک زبان برنامه نویسی قدرتمند و حرفه ای برای برنامه نویسی در ویندوز ارایه کرد. آخرین نسخه تکامل یافته آن برای استفاده در سیستم عامل جدید مایکروسافت نیز با نام VISUAL BASIC.NET طراحی و ارایه شده است.
یکی از مهم ترین ویژگی های زبان برنامه نویسی ویژوال بیسیک رابط گرافیکی آن است. رابط گرافیکی (GUI) در ویژوال بیسیک یکی از کارآمدترین رابط های گرافیکی در زمینه برنامه نویسی است که به وسیله آن می توان به آسانی برنامه های تحت سیستم عامل ویندوز را ایجاد کرده و حتی قبل از اجرا , شکل ظاهری آن را مشاهده کرد با این که برنامه را به صورت یک مفسر یعنی به صورت خط به خط اجرا نموده و عکس العمل برنامه را بررسی کرد. البته این موارد گوشه ای از ویژگی های متعدد رابط گرافیکی ویژوال بیسیک است.
طراحی سریع برنامه (RAD) یکی دیگر از ویژگی های این زبان است. منظور از طراجی سریع برنامه یا RAD در ویژوال بیسیک این است که طراحی و تولید برنامه ها در ویژوال بیسیک به دلیل وجود ابزارهای مناسب به سرعت انجام می شود . بنابراین هزینه های تولید نرم افزار به طور قابل توجهی کاهش می یابد.
ویژگی دیگر زبان برنامه نویسی ویژوال بیسیک ویژگی مدیریت رویداد ها و اتفاقات می باشد ویژوال بیسیک یکی از زبن های برنامه نویسی رویدادگر است . مزیتی که این گونه زبان ها دارند در این است که برنامه نویس می تواند از قبل فرامین لازم را برای وقایع و اتفاقاتی که ممکن است در هنگام اجرای برنامه توسط کاربر رخ دهد سازمان دهی کند.
وجود محیط IDE نیز یکی از ویژگی های مهم این زبان است . محیط IDE به برنامه نویس اجازه می دهد تا برنامه های خود را به سهولت و سرعت , طراحی ,تولید ,خطایابی و اجرا کند . این امکانات به وسیله ابزارهای متعددی که به صورت مجتمع در رابط گرافیکی ویژوال بیسیک قرار داده شده است. قابل دسترسی است.
علاوه بر مواردی که گفته شد دسترسی به برنامه های کاربردی ویندوز به وسیله توابع (API) یکی دیگر از ویژگی این زبان است. توابع API , توابع داخلی ویندوز هستندکه ویژوال بیسیک را قادر می سازد تا با استفاده از فرامین خاصی بتواند به امکانات داخلی موجود در ویندوز دستیابی پیدا کند و برنامه نویس را نیز قادر می سازد تا در صورت نیاز با استفاده از این توابع , برنامه هایی را با توانایی های مورد نظر ایجاد کند.
یکی دیگر از جنبه هایی که تفاوت شگرفی بین ویژوال بیسیک و سایر نسخه های قبلی بیسیک ایجاد می کند امکان استفاده از برنامه نویسی به روش شی گراست . این ویژگی سبب می شود تا ویژوال بیسیک بتواند توقعات برنامه نویس در رابطه با تعریف و به کارگیری اشیا و کلاس های جدید را که سبب راحت تر شدن برنامه نویسی می گردد,برطرف کند. در برنامه نویسی ساخت یافته ,برنامه ها با استفاده از رویه ها به بخش های مختلف تقسیم می شوند که به صورت مجزا از هم قرار می گیرند . دربرنامه نویسی شی گرا با استفاده از اشیا می توان مجموعه ای از دستورالعمل ها و داده ها را در عنصر واحدی به نام شی قرار داد و در زمان مورد نظر از هر یک از بخش های شی مربوطه استفاده کرد.
ویژگی دیگر که در نحوه کار با یک زبان برنامه نویسی مد نظر قرار می کیرد نحوه کشف , تصحیح و برخورد با اشتباهات و خطاهایی است که در هنگام طراحی یا اجرای برنامه رخ می دهدویژوال بیسیک علاوه بر اینکه امکانات بسیار مناسبی در زمینه کشف خطاهای نوشتاری و منطقی برنامه در اختیار برنامه نویس می گذارد .به وی امکان می دهد با استفاده از فرامین مناسب ,خطاهای غیر قابل پیش بینی را نیز در هنگام اجرا تشخیص داده و نحوه ارایه راه حل مناسب را برای راهنمایی کاربران در اختیار آنان قرار دهد.
از آغاز ارایه اولین نگارش ویژوال بیسیک , نسخه های متفاوتی از این زبان ارایه شده است.
نگارش آموزشی ویژوال بیسیک که برای مصارف آموزشی ارایه شده است. امکان ایجاد برنامه های اجرایی از نوع exe و dll را به همراه استفاده از کنترل های متعدد فراهم می آورد.
نگارش حرفه ای این زبان علاوه بر ویژگی های نگارش آموزشی ,امکان استفاده از کنترل های مربوط به بانک های اطلاعاتی ,طراحی کنترل های ActiveX و هم چنین به کارگیری ویزاردهای مناسب برای تسهیل امر برنامه نویسی را نیز در اختیار برنامه نویسان قرار می دهد و به عنوان کامل ترین نگارش , نگارش نهایی ارایه شده است که در آن امکان برنامه نویسی در شبکه های محلی و اینترنت همراه با ویژگی های سایر نسخه ها فراهم شده است و دارای توانایی استفاده از زبان SQl و تولید و طراحی برنامه های کاربردی با حجم زیاد نیز می باشد.
زبان برنامه‌نویسی پایتون:
پایتون یک زبان برنامه‌نویسی سطح بالا، شیءگرا و تفسیری است که توسط گیدو ون روسوم (Guido van Rossum) در سال ۱۹۹۰ طراحی شد.این زبان از زبان های برنامه نویسی تفسیری بوده و به صورت کامل یک زبان شی‌گرا است که در ویژگی‌ها با زبانهای تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند.
پایتون پروژه‌ای بازمتن توسعه یافته است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد.
پایتون در یک محیط آموزشی ایجاد و توسعه یافته است . یعنی در کریسمس سال ۱۹۹۸ در موسسه ملی تحقیقات ریاضی و رایانه (CWI) در شهر آمستردام. در آن زمان گیدو یک پژوهشگر در CWI بود و در زمان بیکاری خود بر روی پروژه شخصی خود یعنی پایتون کار می کرد . اولین نسخه عمومی از پایتون در ماه فوریه سال ۱۹۹۱ منتشر شد . برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (CNRI) واقع در رستون ایالات متحده‌ امریکا توسعه می‌یافت . تا اینکه در سال ۲۰۰۰ تیم توسعه دهنده پایتون به آزمایشگاه های پایتون منتقل شدند . نام پایتون از برنامه مورد علاقه سازنده آن یعنی مونتی پایتون که یک برنامه کمدی انگلیس بود گرفته شده است.
تقسیم بندی زبان های برنامه نویسی :
زبان های برنامه نویسی را می توان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد:
الف)روش های برنامه نویسی ۱-زیر روالی ۲-ساخت یافته ۳-مدولار ۴-شئ گرا
ب)نزدیکی به زبان ماشین ۱-سطح پایین ۲-سطح میانی ۳-سطح بالا
ج)نوع ترجمه ۱-مفسری ۲-کامپایلری د)رابط برنامه نویسی ۱-مبتنی بر متن ۲-مبتنی بر گرافیک (ویژوال)
کاربرد برنامه نویسی:
زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف داده ها، و عملیات یا تبدیل هایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم می کند.
یک برنامه نویس از انتزاعات آماده در زبان استفاده می کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده ترین عناصر موجود بیان می شوند(مفاهیم ابتدایی نامیده می شوند).
زبان های برنامه نویسی با غالب زبان های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان های طبیعی برای ارتباط با دیگر انسان ها، نویسندگان و گویندگان می توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد.
اگرچه، مجازا، رایانه ها دقیقا آنچه که به آنها گفته شده را انجام می دهند.
و نمی توانند بفهمند که نویسنده دقیقا چه کدی مد نظر نویسنده بوده است البته امروزه برنامه هایی برای انجام این کار تولید شده اند و تلاش های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است
ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می کند.
برنامه های یک رایانه ممکن است در یک فرآیند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت “دستور”ها همان برنامه ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.
به زبانی که برای دستور دادن به برنامه ای استفاده می شود، زبان اسکریپت می گویند. بسیاری از زبان ها کنار گذاشته شده اند، برای رفع نیازهای جدید جایگزین شده اند، با برنامه های دیگر ترکیب شده اند و در نهایت استعمال آنها متوقف شده است.
با وجود اینکه تلاش هایی برای طراحی یک زبان رایانه” کامل” شده است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند.
نیاز به زبان های رایانه ای گسترده از گستردگی زمینه هایی که زبان ها استفاده می شوند، ناشی می شود:
محدوده برنامه ها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستم های بسیار بزرگ نوشته شده توسط صدها برنامه نویس است
توانایی برنامه نویس ها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفه ای هایی که با پیچیدگی قابل توجهی کنار می آیند.
برنامه ها باید سرعت، اندازه و سادگی را بسته به سیستم ها از ریزپردازندها تا ابر رایانه ها متناسب نگه دارند. برنامه ها ممکن است یک بار نوشته شوند و تا نسل ها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند.
در نهایت، برنامه نویس ها ممکن است در علایق متفاوت باشند: آنها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.
یک سیر رایج در گسترش زبان های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان های برنامه نویسی اولیه به سخت افزار رایانه گره خورده بودند.
همانطور که زبان های برنامه نویسی جدید گسترش پیدا کرده اند، ویژگی هایی به برنامه ها افزوده شده که به برنامه نویس اجازه دهد که ایده هایی که از ترجمه ساده به دستورات سخت افزار دورتر هستند نیز استفاده کند.
چون برنامه نویس ها کمتر به پیچیدگی رایانه محدود شده اند، برنامه های آنها می تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند.
این به آنها این امکان را می دهد که کارایی بیشتردر واحد زمان داشته باشند.
“پردازنده های زبان طبیعی” به عنوان راهی برای ازبین بردن نیاز به زبان های اختصاصی برنامه نویسی پیشنهاد شده اند.
هرچند، این هدف دور است و فواید آن قابل بحث است.
“ادسگر دیجسترا” موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان “احمقانه” رد کرد، “آلن پرلیس” نیز مشابها این ایده را رد کرد.
 

مطالب مرتبط
Loading...