DELPHI -1
C++ -2
C# -3
BASIC -4
FORTRAN -5
VISUAL BASIC -6
DELPHI -1
دِلفی (Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامهنویسی است و بستری برای توسعهٔ نرمافزار که شرکت بورلند آن را تولید کرده است. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرمافزار بر مبنای متدولوژی RAD((Rapid Application Developmentپشتیبانی میکردند؛ یعنی تولید و توسعهٔ سریع برنامههای کاربردی این نرم افزار بر مبنای پاسکال شیگرا بوده و از این زبان مشتق شده است. البته بورلند نسخهای از دلفی و سیپلاسپلاسبیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرمافزارهای لینوکس قرار نگرفت. نرمافزارهای دلفی در ابتدا به صورت مستقیم از کتابخانههای ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده میکرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از داتنت هم به آن اضافه شد. در حال حاضر میتوان دلفی را یکی از رایجترین زبانهای ممکن در ایران دانست.زبانِ دلفی که پیشتر بنام پاسکال شیءگرا (Object-Pascal) خوانده میشد و برای طراحی نرمافزاهای تحت ویندوز به کار میرفت، امروزه چنان توسعه یافته است که برای تولید نرمافزارهای تحت سیستمعاملِ لینوکس و داتنت نیز به کار میآید. بیشترین کاربرد دلفی در طراحی برنامههای رومیزی و پایگاه دادهها است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژههای نرمافزاری نیز مورد استفاده قرار میگیرد.
دلفی 2006
شرکت بورلند در سال ۲۰۰۶ نرمافزار جدید خود را با ویژگیهای جدید به بازار ارائه کرد. این برنامه جدید امکان برنامه نویسی با دلفی و سی پلاس پلاس و همچنین سیشارپ را بطور همزمان ارائه میدهد. بدین ترتیب برنامه نویسانی که با ابزارهای مختلفی کار میکنند براحتی میتوانند در این محیط جدید برنامه نویسی کنند. ویژگی مهم این نگارش نسبت به نگارش ۲۰۰۵ بحث مدیریت حافظه است. در نگارش ۲۰۰۵ ضعفهائی در این زمینه وجود داشت که در این نسخه حل شده است. شرکت بورلند افتخار دارد که به عنوان اولین شرکت تولید کننده IDE زبانهای برنامه نویسی مانند دلفی و سی شارپ بیلدر و جی بیلدر(مخصوص زبان جاوا) و .... از تکنولوژی دات نت در محصولات خود استفاده کرده است.
دلفی 2007
در اواخر سال 2006 شرکت بورلند یک شرکت تابع با نام CodeGear را تاسیس کرد تا این شرکت بتواند تمام انرژی خود را صرف محیط های برنامهنویسی مشهور خود یعنی دلفی و ++C بیلدر و... کند. بن اسمیت نام اولین مدیر CodeGear بود. شرکت بورلند نیز فعالیتهای خود را در زمینه Application Lifecycle Management ادامه میدهد. اولین محصول این شرکت، CodeGear Delphi 2007 هست که بسیاری از نقائص موجود در دلفی 2006 از جمله سرعت پائین آن در این محصول برطرف شده است و بعد از دلفی 7 میتوان از آن به عنوان محصولی مطمئن و قابل استفاده نام برد، هر چند که دلفی 2006 هم محصولی کارامد هست. از دیگر محصولات CodeGear میتوان به Delphi 2007 For PHP اشاره کرد که تحول شگرفی در رابطه با استفاده از تکنولوژی Ajax در دلفی است.
C++ -2
زبان برنامهنویسی ++C (تلفظ می شود: سی پلاس پلاس) یک زبان برنامهنویسی کامپیوتری عمومی با قابلیتهای سطح بالا و سطح پایین میباشد. این زبان دارای قابلیتهای کنترل نوع ایستا، نوشتار آزاد، چندمدلی، معمولا زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیگرا، برنامه نویسی جنریک است.
زبان ++c یک زبان سطح میانی در نظر گرفته میشود. این زبان دارای قابلیت زبانهای سطح بالا و پایین بصورت همزمان است.
زبان ++C توسط بییارنه استراستروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان C ساخته شد و آن را "C با کلاس" نامگزاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاسها و ویژگیهای دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامهنویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده میشود) در دست تهیه است.
تاریخچه زبان
استراستروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراستروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگیهای مناسب برای ساخت برنامههای بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامههای بزرگ بسیار سطح پایین است. زمانی که استراستروپ کار خود را در آزمایشگاه های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگیهای سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبانهای دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگیهای کلاس، کلاسهای مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیشفرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگیهای دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامهنویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد. ویژگیهای جدیدی مانند ارثبری چندگانه، کلاسهای انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگیهای اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهمترین ویژگی اضافه شده Standard Template Library بوده است.
استاندارد زبان
بعد از سالها کار کمیته مشترک ANSI–ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولا بصورت اختصار TR1 خوانده میشود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخشهایی را به آن اضافه نموده که انتظار میرود در نسخههای بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.در حالی که ++C به هیچ موسسهای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.
نام ++C
این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته میشود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازه یک واحد بکار میرود) و یک عرف معمول برای نشان دادن افزایش قابلیتها توسط + ناشی گشته است. با توجه به نقل قولی از استراستروپ: «این نام ویژگیها تکاملی زبان در C را نشان میدهد.» +C نام زبانی غیرمرتبط به این زبان است.استراستروپ مبدا این نام را در فصل اول کتاب خود «زبان برنامهنویسی ++C» اشاره مینماید که معنی دیگر ++C را میتوان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفهای بکار میرود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار میرفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار میرفته است و تصور نمیکردند که این نام بصورت نام رسمی این زبان درآید.
توسعه آینده
++C همچنان در حال تکامل است تا نیازهای آینده را پاسخگو باشد. نسخه جدید استاندارد ++C در حال بررسی است و تحت عنوان C++0x است که انتظار میرود در سال ۲۰۱۰ منتشر گردد. تغییرات کنونی نشان میدهد که که همچنان به صورت چندمدلی ++C تاکید میگردد. توسعههای مهم پشتیبانی از چندرشتهای و مفاهیمی برای راحت نمودن کار با قالبهاست. اضافه نمودن ویژگی جمعآوری زباله به آن به شدت مورد بحث است. Boost.org گروهی برای بیشترین استفاده از ویژگیهای فعلی ++C میباشد. آنها ویژگیهای تابعی و فرابرنامهنویسی آن را گسترش میدهند و در مورد ++C به کمیته استاندارد نصیحتهایی نموده است که کدام ویژگیها خوب عمل نمیکنند و کدامها نساز به توسعه دارند.
فلسفه
در کتاب «طراحی و تکامل ++C» بییارنه استراستروپ قوانین مورد استفاده در طراحی ++C را بیان مینماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک میکند. جزئیات بیشتر در کتاب قابل دسترسی است:++C طراحی شده است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.++C طراحی شده است تا مستقیما و بصورت جامع از چندین شیوه برنامهنویسی (برنامهنویسی ساختیافته، برنامهنویسی شیگرا، انتزاع داده، و برنامهنویسی جنریک)
++C طراحی شده است تا به برنامهنویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
++C طراحی شده است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
++C از بکاربردن ویژگیهای خاص که مانع از عمومی شدن است خودداری مینماید.
++C از ویژگیهایی که بکار برده نمیشوند استفاده نمیکند.
++C طراحی شده است تا بدون یک محیط پیچیده عمل نماید.
کتابخانه استاندارد
در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخشهای STL و کتابخانه استاندارد C است. بیشتر کتابخانههای ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانهها را میتوان در زبانهایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگیهای کامپایلر مشخص خواهد شد که کدام زبان را میتوان استفاده نمود.
کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگهدارندهها (مانند vector و list)، تکرارکنندهها (اشارهگرهای عمومی شده) برای شبیهسازی دسترسی مانند آرایه الگوریتمهایی برای جستجو و مرتبسازی در آنها وجود دارند. نقشهها (نقشههای چندگانه) (آرایه شرکتپذیر) و مجموعهها (مجموعههای چندگانه) واسطهای عمومی فراهم میسازند. در نتیجه با استفاده از قالب تابع، الگوریتمهای جنریک با هر نگهدارنده و دارای تکرارکننده عمل نماید. همانند C ویژگیهای کتابخانه را میتوان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شدهاند.استفاده از کتابخانه استاندارد - مانند std::vector یا std::string به جای آرایههای C- موجب ایجاد برنامههای مطمئنتر شده است.STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بوده است. استاندارد عبارت STL را بکار نمیبرد بلکه آن را بخشی از کتابخانه میداند اما مردم هنوز هم آن را برای جداسازی بخشهای مختلف کتابخانه با این نام بکار میبرند.(جریانهای ورودی/خروجی، جهانیسازی، تشخیص، زیرمجموعه کتابخانه C)
بیشتر کامپایلرها کتابخانه استاندارد و STL را پیادهسازی مینماید. پیادهسازیهای مستقلی نیز همانند STLport نیر وجود دارند. پروژههای دیگر نیز پیادهسازیهای خود را از STL با توجه به اهداف خود بوجود میآورند.
ویژگیهای معرفی شده در ++C
در مقایسه با C زبان ++C ویژگیهای جدیدی را معرفی نموده است مانند تعریف متغیر به عنوان عبارت، تغییر نوعهای همانند تابع، new/delete، نوع داده bool، توابع درونخطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاسها (شامل تمام ویژگیهای مربوط به کلاسها همانند وراثت، اعضای تابع، توابع مجازی، کلاسهای انتزاعی، و سازندهها)، قالبها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).
برخلاف باور عموم ++C نوع داده ثابت را معرفی ننموده است. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام میدهد. (برای اطلاعات بیشتر بخش «ناهماهنگی با C» را در پایین ببینید)توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجددا در زبان ++C به کار گرفته شد.
بعضی ویژگیهای ++C بعدا توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C99 با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C99 ویژگیهایی معرفی شده است که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفااده بهتر از آرایهها به عنوان آرگومان. بعضی کامپایلرها این ویژگیها را پیاده نمودهاند اما در بقیه این ویژگیها موجب ناهماهنگی میگردد.
پیش پردازنده
++C بطور عمومی در سه فاز ترجمه میگردد: پیشپردازنده، ترجمه به کد object، پیوند (که دو مرحله آخر به عنوان عمل کامپایل شناخته میشود.) در اولین مرحله در پیشپردازنده، شبهدستورات پیشپردازنده تغییرات لغوی بر روی کد منبع ایجاد مینمایند و آن را به به مراحل دیگر تحویل میدهند.
شبه دستورات پیشپردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشتههایی را در کد منبع با فایل یا رشتههای دیگر با توجه به قوانین تعریف گشته توسط برنامهنویس جایگزین مینماید. این دستورات معمولا اعمال زیر را انجام میدهند: جایگزینی ماکروها، شمول فایلهای دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجولها/پکیجها/یونیتها/کامپوننتها)، کامپایل شرطی و/یا شمول شرطی. به عنوان مثال: #include <iostream >
که این دستور تمام سمبلها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد میسازد.
کاربرد معمول دیگر به عنوان ماکرو خوانده میشود: #define MY_ASSERT(x) assert(x)
که کد (MY_ASSERT(x را با (assert(x در فایل منبع جایگزین مینماید. که این جایگزینی امکان کنترل استفاده از این تابع را در اختیار برنامهنویس قرار میدهد.استفاده از ماکروها در عمل چندان توصیه نمیگردد چرا که امکان کنترل نوع آرگومانها را از بین برده در نتیجه ممکن است اشتباهاتی را وارد کد منبع نماید. طریقه دیگر برای انجام این کار استفاده از توابع درونخطی است.علاوه بر شبهدستورات معمول تعدادی شبه دستور برای کنترل جریان کامپایل وجود دارد که امکان شمول یا عدمشمول قطعهای کد یا سایر ویژگیهای کامپایل را در اختیار ما قرار میدهد.دستورات پیشپردازنده برای کاربردهای عددی نیز به کار میرود که هماکنون استفاده از const به جای #define ترجیح داده میشود. این کار علاوه بر ایجاد کنترل نوع قوی مانع از گمراهی در فضاهای نام میگردد.هدف کمیته استانداردسازی از بین بردن پیشپردازنده است اما با توجه به خصوصیت مدولار ++C بعید به نظر میآید که این حذف امکانپذیر باشد.
قالبها
قالبها متفاوت با ماکروها هستند. در حالی که هر دوی این ویژگیهای زمان کام پایل برای ایجاد کامپایل شرطی استفاده میشوند قالبها محدود هب تغییرات لغوی و متنی نیستند. قالبها با آگاهی از معنا و سیستم نوع در زبان استفاده شده و سایر ویژگیهای زمان کامپایل میتوانند از عملیات سطح بالا برای کنترل ترتیب اجرا براساس نوع پارامترها استفاده نمایند. ماکروها کنترل خود را بر کامپایل از طریق ویژگیهای از پیش تعیین شهد انجام میدهند ولی قادر به ایجاد انواع جدید و کنترل نوع نیستند و فقط محدود به تغییرات متنی پیش از کامپایل هستند. به زبان دیگر ماکروها کنترل خود را با استفاده از نشانههای از پیش تعیین شده انجام میدهند اما همانند قالبها نمیتوانند نشانهها را خود ایجاد نمایند. قالبها ابزاری برای چندریختی ایستا و برنامهنویسی جنریک است. علاوه بر این قالبها یک ویژگی تورینگ-کامل هستند که به این معناست که هر برنامه قابل محاسبه توسط کامپیوتر را میتوان با استفاده از فرابرنامهنویسی قالبها نوشت.بطور خلاصه استفاده از قالبها به معنای نوشتن هر تابع یا کلاس باشتفاده از تمامی انواع ممکن است که در قالب آن را پیش از کامپایل معین نمیکنیم.
اشیا
سی++ چندین ویژگی شیگرا را زبان سی معرفی نمود معرفی کلاس چهار ویژگی که در زبانهای شیگرا و بعضا غیر شیگرا حضور دارد یعنی انتزاع، بستهبندی، وراثت، و چندریختی را فراهم کرد. اشیا نمونههای ساخته شده از کلاس در زمان اجرا هستند. میتوان کلاس را نمونهای از قالبها دانست که چندین مورد از آنها بوجود میآید.
بستهبندی
بستهبندی به معنای جمعآوری عملیات و داده در یک محل میباشد. سی++ بستهبندی را با ایجاد امکان تعریف هر کلاس به صورت public، private، protected پیادهسازی نموده است. اعضای private فقط توسط اعضای کلاس و یا کلاسها دقیقا بیان شده (friend) قابل دسترسی هستند. اعضای protected توسط کلاسهای ارث برده شده و اعضای کلاس و کلاسهای friend قابل دسترسی هستند.در تعاریف شیگرا باید تنها توابعی بستهبندی گردند که باید از نحوه پیاده سازی این نوع بخصوص اطلاع داشته باشد. سی++ این ویژگی را با استفاده از توابع عضو و توابع دوست فراهم نموده اما قطعی نکرده است. در سی++ این امکان وجود دارد که تمام نوع را عمومی تعریف نمایند اما در صورتی که نیاز باشد فقط بخشی از آن عمومی گردد در نتیجه این زبان نه تنها شیگرا است از مدلهای ضعیفتر همانند برنامهنویسی مدولار پشتیبانی مینماید.عموما توصیه بر این است که تمام اعضا به صورت خصوصی یا حفاظت شده تبدیل گردند و فقط توابعی که باید توسط دیگر کلاسها به عنوان واسط استفاده شوند عمومی باقی بمانند.
وراثت
وراثت این امکان را ایجاد میکند که یک نوع ویژگی دیگر انواع را داشته باشد. وراثت از یک کلاس پایه میتواند عمومی، خصوصی یا حفاظت شده باشد. این تعیین سطح دستزسی مشخص میسازد آیا کلاسهای نامربوط و یا مشتق شده میتوانند به اعضای عمومی یا حفاظت شده کلاس پایه دسترسی داشته باشند. تنها وراثت عمومی به معنای وراثت به کار رفته بصورت عموم است. دو نوع دیگر وراثت به ندرت مورد استفاده قرار میگیرند. اگر تعیینکننده سطح دسترسی حذف شود سطح دسترسی برای کلاس خصوصی و برای ساختمان به صورت عمومی تعریف میگردد. کلاسهای پایه ممکن است یثورت مجازی تعریف شوند که به آن وراثت مجازی گویند. وراثت مجازی تضمین میکند که فقط یک نمونه از کلاس پایه وجود داشته باشد و مشکلاتی همانند مشکلات وراثت چندگانه بوجد نیاید.وراثت چندگانه یکی از ویژگیهای مورد بحث در سی++ است. وراثت چندگانه امکان اشتقاق از چند کلاس پایه را فراهم مینماید که موجب بوجود آمدن گراف رابطه وراثت بسیار پیچیده است. به عنوان مثال «گربه پرنده» میتواند از کلاس «گربه» و کلاس «پستانداران پرنده» ارث برد. در زبانهای دیگر مانند سیشارپ و جاوا به صورت دیگری ویژگی مشابه را پیادهسازی مینماید هر کلاس میتواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد(واسطها برخلاف کلاس پایه فقط تعریف هستند و هیچگونه پیادهسازی را شامل نمیگردند).
چندریختی
امکان استفاده از یک واسط برای چندین پیادهسازی فراهم مینماید و اشیا در شرایط مختلف رفتار مختلفی از خود نشان میدهند.سی++ دو نوع چندریختی در اختیار برنامهنویس قرار میدهد: چندریختی زمان کامپایل و چندریختی زمان اجرا. چندریختی زمان کامپایل امکان تصمیمگیریهای زمان اجرا را فراهم نمیسازد و چندریختی زمان اجرا اغلب موجب پایین آمدن بازدهی میگردد.
چندریختی ایستا
چندریختی ایستا شامل گرانبارسازی تابع، گرانبارسازی عملگر، آرگومان پیشفرض، و قالب کلاسها و تابع است.
گرانبارسازی تابع
گرانبارسازی تابع امکان تعریف چندین تابع با نام یکسان اما با تعداد آرگومانهای متفاوت را فراهم میسازد. این توابع از طریق تعداد پارامترها یا نوع رسمی آنها شناسایی میگردند. در نتیجه یک تابع ممکن است با توجه به موقعیت استفاده معنای مختلفی داشته باشد. نوع داده برگشتی برای تشخیص توابع از یکدیگر مورد استفاده قرار نمیگیرد.
گرانبارسازی عملگر
بطور مشابه گرانبارسازی عملگر امکان استفاده از یک عملگر مشخص میشود که عملکرد متفاوتی با توجه به عملوندهای خود دارد. این عملگرهای گرانبار شده موجب فراخوانی تابع مشخصی متناسب با آن موقعیت میگردند. گرانبارسازی عملگر ترتیب اجرا یا تعداد عملوندهای یک عملگر را تغییر نمیدهد. عملگرهای . :: .* ? نمیتوانند گرانبار شوند.
ساختار برنامه ها
ساختار برنامه ها در این زبان بدین صورت است که همانند زبان سی، هر برنامه بایستی یک تابع اصلی (main) به عنوان بدنه برنامه داشته باشد. هر برنامه معمولا از تعداد زیادی فایل تشکیل می شود که به هم الحاق می گردند (با دستور include) و به این فایل های الحاقی سرآیند (Header) میگوییم. فایل های الحاقی حاوی کد ها یا نسخه های اجرایی کلاس ها (مجموعه متغیر ها و توابع) می باشند که در بدنه اصلی برنامه از آنها استفاده می شود. معمولاً هر کلاس (که تعریف یک نوع داده ای با متد های مربوط به آن است) را در یک سرآیند مینویسند. هر سرآیند که معمولا تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل های پیاده سازی به زبان ++C یا پیاده سازی های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا ... ) می تواند به کار برده شود. به مجموعه های یکپارچه ای از کلاس های پیاده سازی شده (به صورت فایل های سرآیند با پیاده سازی های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می روند، یک کتابخانه ++C گفته می شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه های آماده می باشد. کتابخانه های بزرگ ++C مانند STL، MFC، QT و ... مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده اند.
محیطهای برنامه نویسی
یک برنامه به زبان ++C می تواند در محیط های ++Turbo C++ , Borland C و ++Dev C نوشته شود. این محیطهای برنامهنویسی، همراه با یک کمپایلر عرضه میشوند که کار تبدیل برنامه به فایل اجرایی را راحت میکند.
C# -3
سیشارپ همچون زبان برنامهنویسی جاوا زبانیست شئگرا و سطح بالا (high level). محصول شرکت Microsoft و بر پایه .NET از آنجایی که شئگرائی و سطح بالا بودن از ابزارهای مدیریّت مؤثّر و کارآمد پیچیدگی در فضای پیچیدۀ اینترنت مدرن می باشند، در واقع میشود جاوا و سیشارپ را از جمله زبان های اصلی برای ایجاد و انجام برنامههای کاربردی تحت وب (web applications) و خدمات وب دانست.بر اساس ادّعای شرکت مایکروسافت، این زبان در سال 2000 توسط تیمی به سرکردگی آندرس هلزبرگ و نیز سکات ویلتاموث ساخته شد. سیشارپ که فقط برای دات نت است در مجموعه NET Platform SDK. ارائه گردید که در محیط های برنامه نویسی استودیوی بصری دات نت (Visual Studio .NET)، در نسخههای 2003 و 2005 آن موجود است. دستورات زبان سیشارپ مانند جاوا سطح بالا تر از C و ++C است و از VB ساده تر. این زبان همانند پیدایش زبان C انقلابی را در امر برنامه نویسی موجب شد، چراکه به طور همزمان میتواند امکانات سطح پاین و سطح بالا را به بهترین شکل پشتیبانی کند. در طراحی این زبان برای جلوگیری از پیدایش Bug در زمان اجرا بسیار تلاش شده و اجازه هر کاری (مانند ساخت اشاره گر) را نمیدهد(مگر اینکه اصرار بر انجام این کارها داشته باشید)
سکّوی دات نت
در ماه ژوئن سال 2000 میلادی بود که شرکت مایکروسافت ابداع و ایجاد سکّوی (platform) جدید برنامه نویسی خود را موسوم به دات نت (Microsoft .NET) اعلام نمود. در جهت بهبود سکّوهای پیشین مایکروسافت،دات نت مدل تازهای را برای ایجاد نرم افزار های کاربردی ارائه میدهد که در آنجا زبان های گوناگون می توانند در کنار هم قرار گیرند و با یکدیگر به همکاری بپردازند. این درست مدل کوچکتری ست از تمامی فضای اینترنت بدانگونه که عوامل گوناگون میتوانند در سطوحی گسترده به همکاری اقدام کنند.
انعطاف پذیری سی شارپ
سی شارپ زبانی است کاملا شی گرا و بر پایه .NET Framework این زبان مانند بسیاری از زبانهای شی گرای دیگر از فایل های کتابخانه ای Net. استفاده میکند و همچنین فقط بر روی سیستم عامل Microsoft Windows XP SP2(یا بعد از آن) که .NET Framework بر روی آن نصب باشد اجرا میشود سی شارپ به کلی برای دات نت طراحی شده و علاوه بر تولید پروژه های Console Programs در تولید Windows Application هم بسیار قوی است سی شارپ بر پایه نظریه اولیه سی طراحی شده و همچنین بسیاری از صفات خود را از C++ و Java و Delphi به ارث برده است ولی به گفته مایکروسافت بر پایه C برای رقابت با Java و به سادگی VB طراحی شده است. در کل سی شارپ یک زبان مدرنیزه شی گرا میباشد که در محیط Visual Studio بسیار قدرت یافته است .
مثالی از سی شارپ
تمام کدهای سی شارپ بر پایه کلاس ها تعریف میشوند یک برنامه ساده سی شارپ این چنین است :
public class MyClass { public MyClass() { // implementation } }
برنامه ساده ای که متنی را در خرجی چاپ میکند چنین در سی شارپ نوشته میشود
hello.cs: public class Program { public void Main() { System.Console.WirteLine("Hello , World"); } }
منبع اطلاعات در سی شارپ
سی شارپ میتواند به خوبی با Database ها ارتباط برقرار کرده و آنها را ویرایش و یا از آنها اطلاعات بگیرد این ویژگی که در Visual Studio .NET به خوبی پشتیبانی شده کار را برای کاربر بسیار راحت کرده تا جایی که فقط با چند دستور ساده میتوان با منبع اطلاعات ارتباط برقرار کرد. در این زبان از بانک اطلاعات به صورت Connectionless استفاده میشود. به این شکل که کل بانک به داخل یک Dataset بر روی حافظه اصلی کپی میشود و سپس استفاه میشود.این روش به منظور کاهش ترافیک شبکه طراحی شده است.
فایلهای تولیدی در سی شارپ
فایلهایی که بیشتر با کاربر سر و کار دارند عبارتند از : فایلهای با پسوند .Sln : این فایل سطح بالای Solution است که برای هر برنامه یک فایل از این نوع موجود است . هر فایل Solution یک یا چند فایل پروژه را در خود دارد. فایلهای با پسوند .Csproj: این یک فایل پروژه C# است .هر فایل پروژه یک یا چند فایل سورس دارد . فایل های سورس در یک پروژه باید به یک زبان برنامه نویسی نوشته شود . فایلهای با پسوند Cs: این یک فایل سورس است و کد برنامه در این فایل نوشته می شود و این فایل شامل کدی است که ویژوال استودیو به صورت خود کار ایجاد می کند . فایل Assemblyinfo.cs: این یک فایل سورس دیگر است با این تفاوت که می توان از این فایل برای اضافه کردن مواردی مثل اسم نویسنده و تاریخ نوشتن برنامه و امثال آن به برنامه استفاده می شود. فایل .Ico: این آیکون برنامه است .آیکونی که در زمان اجرای برنامه در نوار وظیفه قرار می گیرد.
ابزارهای دیگر در سی شارپ
سی شارپ نه فقط مخصوص ساخت یک برنامه DOS یا Windows Form است بلکه میتوان با آن نرم افزارهای کاربردی تری مانند Movie Collection ها را به صورت سفارشی کمپایل کرد حتی قدرت بسیار بالای این زبان در ساخت Screen Saver ها هم بسیار زبان زد است که این خود نوعی مزیت نسبت به C++ یا دیگر نرم افزارهای برنامه نویسی به شمار میرود ولی این زبان برای این کارهای ساده طراحی نشده است. از جمله کارهایی که این زبان میتواند انجام دهد طراحی نرم افزار برای SmartPhone,Pocket PC ,Windows CE, Linux است. در ضمن این زبان برای طراحی وب سایت به زبان ASP.Net نیز به کار برده میشود. همچینین برای کار با Registry و فایلها مناسبترین زبان است. در زمینه کار با بانکهای اطلاعاتی و APIها نیز بسیار قوی است
BASIC -4
Basic فرزند دردانه بیل گیتس
به جرات مى توان ادعا کرد که در دنیاى امروز کمتر کسى را مى توان یافت که نام و آوازه «بیل گیتس» رئیس و بنیانگذار مایکروسافت و ثروتمندترین مرد جهان را نشنیده باشد. اما دانستن این موضوع جالب است که پیش از مایکروسافت نام بیل گیتس با «بیسیک» (Basic) عجین بوده است و این ماجرا به زمان دانشجویى گیتس و دوستش «پل آلن» در ۱۹۶۴ بازمى گردد و در واقع همکارى مشترک آنها در توسعه بیسیک بود که چند سال بعد منجر به تاسیس مایکروسافت شد. این دو با تولد اولین بیسیک در سال ۱۹۶۴ در کالج دارتموث به تلاش در توسعه آن همت گماشتند و در این راه با زیرکى و دوراندیشى مثال زدنى با طراحى انواع مفسرها و مترجم هاى بیسیک توانستند آن را به عنوان یکى از فراگیرترین و کاربردى ترین زبان هاى کامپیوترى تا امروز مطرح سازند. بیسیک اکنون ۴۰ ساله است و هنوز هم گیتس در مایکروسافت آن را تر و خشک مى کند و مانند فرزندى دردانه به رشد و ترقى آن اهمیت مى دهد.ظهور میکروکامپیوترها در سال ۱۹۷۵ از یک سو و ارائه بیسیک پیشرفته توسط مایکروسافت از سوى دیگر خیلى سریع سبب شهرت بیسیک به مثابه یک زبان کاربردى که به صورت رایگان بر روى همه کامپیوترها قابل نصب بود، گردید. در واقع بیسیک به علت ساختار مطلوبش پیش نیاز یادگیرى همه زبان هاى کامپیوترى شد. مقاله اى که پیش رو دارید، بیل گیتس در جشن تولد ۲۵ سالگى فرزندش بیسیک (یعنى ۱۵ سال پیش) در مجله بایت منتشر کرد و طى آن براى اولین بار به شرح ماجراى شکل گیرى و رشد زبان بیسیک به همراه پل آلن پرداخته است، که مقایسه داده هاى آن با امروز که بیسیک به سن چهل سالگى رسیده و کامپیوترهاى شخصى به اوج پیشرفت و همگانى شدن نایل آمده اند، براى خواننده علاقه مند خالى از لطف نیست.از زمان اجراى اولین برنامه بر روى یک کامپیوتر انگلیسى زبان در سال ۱۹۴۸ تاکنون محاسبات وارد مرحله جدیدى شده است. فقط در طول ۱۵ سال شاهد رشد و ترقى کامپیوترهاى ۸ بیتى با ۴ کیلوبایت رم به کامپیوترهاى ۳۲ بیتى با ۴ مگابایت رم چه در زمینه صنعت و چه در زمینه علوم بوده ایم.با توجه به رشد بسیار گسترده در زمینه سخت افزار، زبان بیسیک نیز بیست و پنجمین سال تولد خود را پشت سر مى گذارد و مفسر آن ۱۵ سال است که میکروکامپیوترهاى میلیون ها نفر را قابل دسترسى کرده است.متاسفانه در ابتدا بیسیک خوب شناخته نشد، در همین حال بیشتر از هر زبان دیگرى قابل دسترسى بوده و هست چرا که مجاناً بر روى هر کامپیوترى نصب مى شود. قدرت و توانایى، سادگى استفاده از یک مفسر، مدیریت قوى، گستردگى و همه منظوره بودن، نوع انگلیسى لغات کلیدى و ترکیبات و آزادى بیسیک، همگى باعث تجربه بیشتر برنامه نویسان مى شود و مى تواند به عنوان یک زبان ایده آل به مبتدیان در شناخت بهتر کامپیوترشان کمک کند. با توجه به سرگذشت بیسیک طى سال هاى طولانى و با وجود تکنولوژى قوى سیستم عاملى مانند OS/۲ و ویژگى برنامه نویسى موضوعى مى توانید به خوبى شاهد چگونگى حضور و رشد بیسیک تا به امروز باشید.بیسیک بدون هیچ نیازى، مستقلاً به عنوان وسیله اى براى تبادل اطلاعات بین مردم و کامپیوتر ایجاد شد و در سال ۱۹۶۲ یکى از ریاضیدانان کالج دارتموث به نام پروفسور «توماس کورتس» طرحى را تسلیم «جان کمنى» رئیس کالج کرد. در این طرح تمامى دانشجویان این کالج موظف به آموختن کامپیوتر در دوره ۴ ساله تحصیلشان بودند.کامپیوترهاى دسته گراى آن زمان چنین انتظارى را غیرممکن مى کردند چرا که اگر برنامه ساده اى به طور صحیح ترجمه مى شد کامپیوتر براى درک آن گاهى اوقات به روزها وقت نیاز داشت در نتیجه چنین برنامه اى تنها مى توانست نتیجه یک محاسبه را به عنوان جواب برگرداند و شخص برنامه نویس هرگز نمى توانست اجراى برنامه را ببیند. کمنى و کورتس براى گسترش تحقیقات خود به آزمایشگاه هاى «هیت» و «بل» رفته و در آنجا سیستم عامل چند کاربره اى را براى کامپیوتر جدیدى که قرار بود به زودى تحویل کالج شود ساختند. در همین زمان آنها به دانشجویان پیشنهاد کردند که زمان استفاده از کامپیوتر را بین خودشان تقسیم کنند اما به دلیل عدم وجود یک زبان ساده براى صحبت با ماشین دانشجویان به ندرت از کامپیوتر کالج استفاده مى کردند. متاسفانه «فورترن» و «آلگول» نمى توانستند امکانات مناسب و آسانى را براى دانشجویان فراهم کنند لذا کد و دستورالعمل نمادى همه منظوره مخصوص افراد مبتدى (بیسیک) به عنوان یک ترکیب ساده و بهتر از فورترن و آلگول توسط دانشجویان کالج دارتموث ساخته شد.در اول ماه مى سال ۱۹۶۴ دانشجویان کالج دارتموث با اعلان معروف READY> در ترمینال هاى راه دورشان آشنا شدند. بدین ترتیب آنها مى توانستند برنامه هاى ساده اى نوشته و آنها را براى ترجمه و اجرا انتقال دهند. کمنى و کورتس به تولد بیسیک در کتابشان به نام «برگشت به بیسیک» اشاره کرده اند. (انتشارات «ادیسون وزلى»، ۱۹۸۵)
• ظهور میکروکامپیوترها
اولین میکروکامپیوتر با حافظه اى بسیار کوچک که بیشتر جنبه نمایشى داشت در سال ۱۹۷۵ به صحنه آمد. این کامپیوتر فقط زبان ماشین را مى فهمید. در این هنگام من به اتفاق یکى از دوستانم به نام «پل آلن» فرصت را غنیمت شمرده و برگردانى از بیسیک را به منظور اجرا در آن فضاى بسیار کوچک حافظه نوشتیم. دانشجویان با استفاده از اولین بیسیک، که براى دستگاه هاى MITS ساخته شده بود مى توانستند برنامه هایشان را بر روى این گونه کامپیوترها با حافظه ۴ کیلوبایت اجرا کنند. در آن زمان براى ما حافظه بسیار ارزشمند بود به طورى که مجبور شدیم براى اشغال فضاى کمترى از حافظه، اعلان READY> - که چهار کارکتر فضا مى گرفت - را به OK> - که دو کارکتر فضا مى گیرد _ تبدیل کنیم. فشار محدودیت حافظه تا اندازه اى بود که ما را بر آن داشت که بیسیک را به عنوان یک مفسر پیاده سازى کنیم. (مفسر بیسیک، برنامه اى است که فایل هاى بیسیک را به زبان ماشین ترجمه مى کند.) البته عامل دیگرى که ما را به سمت مفسرها هدایت مى کرد، متعادل بودن و آ سانى استفاده از مفسرها بود که به برنامه نویسى با بیسیک هنر و زیبایى خاصى مى بخشید. یک برنامه نویس با استفاده از مفسر مى تواند به کامپیوتر وظیفه اى را محول کند، کامپیوتر نیز متقابلاً و بلافاصله به او جواب خواهد داد که این جواب مى تواند شامل گزارشى از خطاهاى احتمالى نیز باشد. این تعامل مفسر به این خاطر است که وجود آن به عنوان بخشى از زبان در نظر گرفته شده است نه به عنوان برنامه اى کاملاً مجزا مانند یک مترجم.با استفاده از تجربیاتى که از نوشتن یک مفسر بیسیک براى کامپیوتر PdP-8 در دوران دبیرستان به دست آورده بودم به اتفاق پل آلن بیسیک کامپیوتر اصلى خودمان را یک مفسر تک _ نمایش ساختیم. به این ترتیب براى ذخیره بیشتر کد مبدا به فرم یک متن مجبور شدیم آن را به طور فشرده ترى ترجمه کنیم چرا که با فشار و محدودیت حافظه روبه رو بودیم. به این ترتیب ما به مقصود خود رسیدیم و ترتیبى دادیم که برنامه نویس بتواند بلافاصله برنامه اش را دیده و هنگام اجراى برنامه با سرعتى قابل قبول مراحل مختلف آن را تشخیص دهد. در مفسرى که ما ساختیم از تصاویرى پایین تر از یک بایت تا تصاویرى بیشتر از آنچه که کدهاى اسکى (ASCII) نیاز دارد براى نشانگذارى کلمات کلیدى بیسیک استفاده شده بود. همچنین براى اولین بار فرمان هاى کوتاه TRON _TROFF را به منظور فعال و غیرفعال کردن ابزار اشکال زدایى توکار بیسیک مانند توانایى ردیابى را درون آن مفسر قرار دادیم.قرار دادن کلمات رزرو شده بیسیک، پیغام هاى خطا و کتابخانه اعداد با ممیز شناور به منظور اجراى برنامه در یک ماشین ۴ کیلوبایتى از کارهاى بسیار سختى بود که به کمى تیزهوشى و زیرکى نیاز داشت. کدهاى استفاده شده در آن زمان که از ظرافت و انعطاف خاصى برخوردار بود هنوز براى من به یاد ماندنى و جالب است.
FORTRAN -5
معرفی و تاریخچه فرترن
همانطور که در اغلب کتابهای مکانیک دیده اید، در اغلب برنامه های مهندسی از این زبان استفاده می گردد. زبان برنامه نویسی فرترن با وجود سادگی از قدرت و سرعت بالایی برخوردار است، بطوریکه می توان از آن برای نوشتن برنامه های CFD استفاده کرد. فرترن اغلب با قابلیت فوق العاده در مورد اعداد معرفی می گردد و همانطور که از اسمش (FORmula TRANslation) پیداست، برای انجام محاسبات ریاضی در کارهای علمی خلق شده است. در گذشته این زبان دارای محدودیتهایی بوده که در نسخه های جدید این مشکلات حل شده است و این زبان به یک زبان بسیار قوی تبدیل شده است. اغلب کتابخانه های لازم برای انجام انواع محاسبات در این زبان وجود دارد. این زبان در استاندارد فرترن 90 از قابلیت نوشتن برنامه های محاسبات موازی برای کامپیوتر های چند پردازنده ای پشتیبانی می کند که آینده روشنی را برای محاسبات سنگین CFD نشان می دهد. این زبان جزء اولین زبانهای خلق شده برای کامپیوتر می باشد که در IBM نوشته شده است. قابلیت محاسبات سریع با سادگی در برنامه نویسی باعث محبوبیت آن بین مهندسان و دانشمندان شده است. زبان فرترن در حال حاضر دارای قابلیت برنامه نویسی شیء گرا شده است.معمولاً از فرترن 77 و 90 استفاده می گردد که نسخه 90 آن محبوبیت عمومی تری دارد. در این متن از استاندارد های برنامه نویسی فرترن 90 استفاده می کنیم و در موارد لازم در مورد فرترن 77 هم بحث خواهیم کرد.
چرا فرترن؟
زبان اصلی برنامه نویسی در کاربردهای علمی فرترن است. اغلب کدهای قدیمی با این زبان نوشته شده است. بنابراین لازم است که یک دانشجوی مهندسی با این زبان آشنایی داشته باشد. سالها پیش به نظر می رسید که با پیشرفت و محبوبیت عمومی زبانهایی مانند C زبان فرترن منسوخ گردد، اما با گذشت سالها این زبان همچنان استفاده فراوان دارد. این ماندگاری مدیون کتابخانه ها و کدهای 40 ساله این زبان است. در هر حال استانداردهای جدید این زبان قدرت زیادی به این زبان داده است. این زبان همچنان بعنوان مهمترین زبان برای مهندسان و دانشمندان بشمار می آید. فرترن برای انجام محاسبات ریاضی با سرعت و قابلیت بالا طراحی شده است. البته زبان فرترن هنوز در ایجاد محیط گرافیکی کمبود دارد و اگر بخواهید برای فرترن یک رابط گرافیکی کاربر(Graphical User Interface) بنویسید، باید خود را درگیر فراخوانی توابع ویندوز(API ها!) کنید. انتخاب راحت تر استفاده از یک زبان ساده مانند Visual Basic یا Delphi برای ایجاد رابط گرافیکی کاربر است. در این روش GUI را در این زبانها می سازیم و موتور اصلی برنامه برای کار با معادلات و انجام محاسبات را در FORTRAN می نویسیم و بعد آنرا با فرمت DLL (Dynamic Link Library) در اختیار برنامه قرار می دهیم. برنامه Ansys که بین مهندسان مکانیک محبوبیت دارد با زبان فرترن نوشته شده است.
فرترن 90
فرترن 90 فراتر از یک ویرایش جدید از استاندارد فرترن می باشد و برنامه نویسی را بسیار آسانتر کرده است. این ویرایش کدهای فرترن 77 را نیز پشتیبانی می کند. فرترن 90 یک زبان برنامه نویسی انعطاف پذیر و قوی است, این زبان امکانات برنامه نویسی شیء گرا را داراست. امکانات دسترسی به امکانات سیستمی مانند تخصیص حافظه, استفاده از اشاره گرها و بسیاری امکانات دیگر به آن اضافه شده است؛ بعبارت دیگر فرترن 90 بیشتر شبیه به C++ است تا فرترن 77! ارتقاء قابلیتهای عددی, استفاده از دستورات حالت موازی (چند پردازنده ای) که یک پیشرفت شایان ذکر در برنامه نویسی علمی و نوشتن کدهای موازی می باشد. این روند در فرترن 95 دنبال شده است و انتظار می رود در ویرایش های جدیدتر این زبان امکانات گسترده تری برای برنامه نویسی علمی به این زبان اضافه گردد
استانداردهای کد نویسی
برای سازگاری و خوانایی بیشتر در برنامه نویسی بهتر است که قوانین زیر را رعایت کنید.
1- همة کلمات کلیدی این زبان را با حروف بزرگ و همه چیز دیگر را با حروف کوچک بنویسید (این زبان بین حروف کوچک و بزرگ فرقی نمی داند!). البته این ساختار آنچنان مناسب نمی باشد و می تواند خوانایی برنامه را کاهش دهد و دلیل استفاده از آن قدمت این روش است. در هر حال استفاده از این روش در برنامه نویسی مدرن کار درستی نیست.
2- از دندانه دار کردن در متن اصلی برنامه و همچنین بلوکهای دیگر استفاده کنید.
3- اسم برنامه ها، زیر برنامه ها و توابع را در انتهای آنها ذکر کنید.
ساختار برنامه فرترن
ساختار برنامه در فرترن 90 به ساختار زبانهای برنامه نویسی دیگر شباهت زیادی دارد و به شکل زیر است.
PROGRAM program_name
! Comment and program information
Declaration of variables and/or external functions
Program body
END PROGRAM program_name
Declaration and body of user-made functions
در فرترن 77، کل صفحه به ستونهایی تقسیم می گردد و هر بخش از برنامه محل مشخصی دارد. برنامه فرترن 77 باید از قوانین زیر پیروی کند:
- تمام دستورات فرترن باید بین ستون 7 تا 72 از فایل قرار داشته باشند.
- فاصله خالی برای مترجم برنامه معنایی ندارد ولی برای خوانایی برنامه باید از آنها استفاده کرد!
- دستوراتی که در ستون 1 تا 5 آنها خالی است اما در ستون 6 کاراکتری غیر از صفر قرار دارد به عنوان ادامه دستورات خط قبل به حساب می آیند (حداکثر تا 19 خط مجاز است!).
- شماره خط دستورات باید بین ستون 1 تا 5 نوشته شوند و حداکثر می تواند یک عدد 5 رقمی باشد (فرترن به شماره خط نیازی ندارد و فقط برای ارجاع از دستوراتی مانند GOTO استفاده می گردد.
- خوب است که حداکثر با دو دندانه در برنامه بخشهای مختلف را مشخص کنید.
- توضیحات برنامه در ستون اول خود C دارند.
با توجه به توضیحات بالا ساختار برنامه فرترن 77 به شکل زیر است.
PROGRAM program_name
C Comment and program information
Declare of variables and/or external functions
Body of program
END PROGRAM program_name
Declaration an body of user-made functions
متغیرها
پیشنهاد می گردد که همة متغیرهای برنامه در ابتدای برنامه تعریف (تعیین نوع) گردند. برای اینکه هیچ متغیری از قلم نیفتد، از دستور IMPLICIT NONE در ابتدای برنامه استفاده کنید. این دستور به مترجم برنامه خواهد گفت که اگر در برنامه به متغیر تعریف نشده ای برخورد، اعلام خطا کند. البته فرترن به تعیین نوع نیازی ندارد! اما این کار خطاهای برنامه نویسی شما را کاهش خواند داد. زبانهای برنامه نویسی زیادی در اولین استفاده از متغیر برای آن متغیر نوعی در نظر می گیرند و نیازی نیست که برنامه نویس نوع متغیرها را مشخص کند زبان فرترن نیز چنین است. تعریف متغیر توسط برنامه نویس یا مترجم برنامه در برنامه نویسی حرفه ای برای مدت زیادی مورد بحث بود تا اینکه ناسا یکی از سنسورهای سفینه فضایی ونوس را بعلت یک تعریف متغیر اشتباه توسط مترجم برنامه (مترجم نوع دیگری را برای متغیر در نظر گرفته بود) از دست داد. بنابراین تعریف متغیر توسط برنامه نویس بعنوان یک روش مناسب انتخاب شد. خوشبختانه در بسیاری از زبانهای برنامه نویسی مدرن تعریف متغیر توسط برنامه نویس اجباری است. فرترن برای داشتن سازگاری از تعریف داخلی متغیر توسط مترجم پشتیبانی می کند
قوانین نامگذاری متغیرها :
- حداکثر طول نام متغیرها 34 کاراکتر است.
- فقط امکان استفاده از حروف کوچک و بزرگ انگلیسی (a...z A...Z,)، اعداد(0,1,..,9) و کاراکتر زیر-خط ( _ ) وجود دارد.
- توجه داشته باشید که بزرگی یا کوچکی حروف برای فرترن فرقی ندارد.
- اولین کاراکتر یک اسم باید حرف باشد.
- از کلمات کلیدی در نامگذاری استفاده نکنید.
انواع داده ها
شما در برنامه متغیرها را برای انواع مختلفی از داده ها بکار می برید. انواعی از داده ها که در فرترن 77 پیشتیبانی می گردند به شرح زیر است:
- نوع INTEGER برای اعداد صحیح
- نوع REAL برای اعداد اعشاری (تقریباً 8 رقم)
- نوع DOUBLE برای اعداد اعشاری با دقت بیشتر (تقریباً 16 رقم معنی دار) [این اعداد را مضاعف می نامیم]
- نوع CHARACTER برای یک کاراکتر یا رشته ای از کاراکترها
- نوع LOGICAL برای مقادیر منطقی
- نوع COMPLEX برای اعداد مختلط به عنوان یک جفت با دقت REAL، اغلب توابع فرترن 77 بر روی اعداد مختلط قابل استفاده هستند
ثابت های هم به همین شکل بکار می روند مثلاً 1234 یک عدد ثابت صحیح است، 1234.0 یا 1.234E3 یک ثابت اعشار و 1.234D3 عدد اعشار با دقت مضاعف است. اعداد مختلط به شکل (3.14,-1E5) نمایش داده می شوند و کاراکترها بین دو کوتیشن قرار می گیرند ‘AbBa’یا ‘S’. ثابتهای منطقی فقط می توانند دو مقدار .TRUE. و .FALSE. را داشته باشند (به نقاط ابتدایی و انتهایی هر یک توجه کنید).
اگر اعداد بسیار کوچک یا بسیار بزرگ باشند، ممکن است سیستم آنها را صفر در نظر گرفته و مشکل تقسیم بر صفر در محاسبات پیش آید یا اینکه سیستم دچار سر ریز گردد. این خطاها بسیار رایج هستند و اشکال گزارش شده به سیستم بستگی خواهد داشت
تعریف متغیرها
برای تخصیص حافظه لازم به متغیرها، مترجم برنامه (Compiler) باید نام، نوع و اندازه هر متغیر را بداند. اگر از دستور IMPILICIT NONE استفاده گردد، لازم است که تمام متغیرها تعریف گردند. در غیر اینصورت نوع متغیر با حرف اول آن مشخص می گردد.
a..h وo..z برای متغیرهای اعشار
i,j,k,l,m,n برای متغیرهای صحیح
عبارات و عملیات محاسباتی
عملگرهایی مانند + ، - ، / (همان ÷ است) و * (همان × است) را می شناسید. عملگر توان در فرترن به شکل ** است. اولویت محاسبه در عبارات
پرانتز – اگر در عبارات، پرانتز وجود داشته باشد. اول داخلی ترین پرانتز محاسبه خواهد شد و به همین ترتیب عبارات داخل پرانتز اولویت اول را دارند.
توان
ضرب و تقسیم
جمع و منها
توابع رشته ای
در توابع داخلی فرترن، توابع رشته ای نیز وجود دارد. برای مثال تابع LEN اندازه رشته می دهد، توابع CHAR و ICHAR بترتیب برای تبدیل عدد صحیح به کاراکتر و تبدیل کاراکتر به عدد صحیح به کار می روند. INDEX برای یافتن یک رشته در رشته دیگر کاربرد دارد. توابع مقایسه رشته ها مانند LGE، LGT، LLE و LLT و بسیارس از توابع دیگر وجود دارند که در صورت نیاز امکان مطالعه آنها را خواهید داشت
ورودی و خروجی
در اغلب برنامه ها نیاز داریم که اطلاعات ورودی را از صفحه کلید یا فایل بخوانیم و اطلاعات خروجی را در صفحه نمایش نشان دهیم یا آنها را در فایل خروجی ذخیره کنیم.
ورودی و خروجی فایل
کار کردن با فایلها در فرترن بسیار ساده است. ورودی وخروجی فایل هم مانند ورودی از صفحه کلید یا خروجی به نمایشگر با دستور READ و WRITE صورت می گیرد. در این حالت بخش UNIT در این دستورات مشخص کننده نوع ورودی و خروجی است. برای ورودی از صفحه کلید و خروجی به صفحه نمایش، بخش UNIT در این دستورات برابر * قرار می گیرد. برای ورودی و خروجی از فایل، ابتدا فایل را باز می کنیم، این کار یک عدد (UNIT) به فایل اختصاص می دهد
VISUAL BASIC -6
visual basic چیست؟
visual basic یک زبان برنامه نویسی تحت windows است.برنامه های به زبان visual basic در محیط برنامه نویسیIDA پیاده سازی میشوند.محیط IDA تسهیلات لازم جهت پیاده سازی وخطا یابی برنامه های visual basic رادر اختیار برنامه نویس قرار میدهد. محیط IDE منحصر به visual basic نیست و امکان توسعه برنامه در کلیه محیطهای visual را میدهد. محیط IDE امکان پیاده سازی برنامه ها را در حد اقل زمان فراهم کرده است ٬ ضمن انکه چنان تسهیلاتی ایجاد کرده است که برنامه های تحت windows بدون نیاز به برنامه نویس متخصص قابل پیاده سازی باشد. Visual basic زبانی است به وضوح متفاوت ازسایر زبانها که درعین سادگی امکان استفاده ازترکیبات قدرتمند مانندGUI WIN 32 API٬ OOP٬ ACTIVEX ٬ برنامه نویسی ساخت یافته٬ کنترل رویدادها٬ کنترل خطاها و بسیاری از ترکیبات قدرتمند دیگررا برای برنامه نویس فراهم کرده است.Visual basicیک زبان تفسیری است . در ویرایشهای حرفه ای و تخصصی این امکان که بتوان کدهای Visual basic را به کد های زبان ماشین تبدیل کرد وجود دارد.
تاریخچه visual basic
Visual basic از زبان basic برگرفته شده است.basic ازاواسط دهه 1960 توسط پرفسور"جان-کمنی" و پرفسور"توماس-کورتس" از دانشکده "دارت موس"ساخته شد و به عنوان یک زبان برنامه نویسی برای پیاده سازی برنامه های ساده توسعه یافت ضمن انکه هدف نهایی از ایجاد وتوسعه زبان basic (آموزش برنامه نویسی) بود.استفده متداول از basic و به کار گیری ان در هر مکان وبا هر نوع کامپیوتر ٬انگیزه و علتی برای توسعه و پیشرفت این زبان بود. در اواخر دهه 1980« رابط گرافیکی کاربر» یا به اختصار GUI-در محیطwindows ٬ توسعه یافت. نتیجه سازگاری basic با GUI در محیط windows بود که در سال 1991 میلادی توسط شرکت ماکروسافت ایجاد و به بازار عرضه شد. تا قبل از ظهور visual basic ٬برنامه نویسی کار پر زحمت وطاقت فرسایی بود. visual basic٬برنامه نویسی در محیط windows رابسیار ساده کرد. از سال 1991 تاکنون٬شش نسخه از این محصول به بازار عرضه شده است که اخرین نسخه ان6 visual basic در سپتامبر 1998 انتشار یافت.
برنامه نویسی ساخت یافته
دهه 1960 بود که برخی از نرم افزارهای بزرگ با مشکلات سرویس دهی وخدمات مواجه شدند . به عنوان مثال پیاده سازی نرم افزارها بیش از زمانبندی پیش بینی شده زمان می برد وهزینه تولید نرم افزارها بسیار افزون بر بودجه ای می گردید که در ابتدای عمل بر اورد نشده بود. همچنین محصولات تکمیل شده قابل اعتماد نبودند . این موضوع باعث تقویت این فکر شد که تولید و توسعه نرم افزار بسیار پیچیده تراز چیزی میباشد که تصور شده است. فعالیت تحقیقاتی که در سال 1960 انجام شد نشان داد که برنامه نویسی ساخت یافته میتواند گره گشای مشکلات باشد .برنامه نویسی ساخت یافته یعنی بلوک بندی وایجاد نظم در نوشتن برنامه ها که باعث واضح تر شدن خطا یابی وهمچنین ساده تر شدن تغییر واصلاح برنامه ها میشود.
یکی از نتایج تحقیقات فوق ایجاد و توسعه زبان برنامه نویسی pascal توسط (نیک لاوس- ورت) در سال 1971 میلادی بود زبان پاسکال برگرفته شده ازنام (بلیاس- پاسکال) ریاضیدان وفیلسوف بزرگ قرن هفتهم بود که پس از ان در اکثر دانشگاه ها به عنوان زبان برنامه نویسی اصلی رحجان داده شد.
امیدواریم به درد تمام برنامه نویسان و متاق آن خورده باشد با تشکر مهدی امینی