فهرست
C++ -2
C# -3
BASIC -4
FORTRAN -5
VISUAL BASIC -6
دِلفی (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
منبع اطلاعات در سی شارپ
سی شارپ میتواند به خوبی با 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 پيشتيبانی می گردند به شرح زير است:
1. نوع INTEGER برای اعداد صحيح
2. نوع REAL برای اعداد اعشاری (تقريباً 8 رقم)
3. نوع DOUBLE برای اعداد اعشاری با دقت بيشتر (تقريباً 16 رقم معنی دار) [اين اعداد را مضاعف می ناميم]
4. نوع CHARACTER برای يک کاراکتر يا رشته ای از کاراکترها
5. نوع LOGICAL برای مقادير منطقی
6. نوع 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 میلادی بود زبان پاسکال برگرفته شده ازنام (بلیاس- پاسکال) ریاضیدان وفیلسوف بزرگ قرن هفتهم بود که پس از ان در اکثر دانشگاه ها به عنوان زبان برنامه نویسی اصلی رحجان داده شد.
پایان