ایرانی توانمند
Business is booming.

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

3

DELPHI -1

دِلفی (Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامه نویسی است و بستری برای توسعهٔ نرم افزار که شرکت بورلند آن را تولید کرده است. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرم افزار بر مبنای متدولوژی RAD((Rapid Application Developmentپشتیبانی می کردند؛ یعنی تولید و توسعهٔ سریع برنامه های کاربردی این نرم افزار بر مبنای پاسکال شی گرا بوده و از این زبان مشتق شده است. البته بورلند نسخه ای از دلفی و سی پلاس پلاس بیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرم افزارهای لینوکس قرار نگرفت. نرم افزارهای دلفی در ابتدا به صورت مستقیم از کتابخانه های ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده می کرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از دات نت هم به آن اضافه شد. در حال حاضر می توان دلفی را یکی از رایج ترین زبان های ممکن در ایران دانست.زبانِ دلفی که پیشتر بنام پاسکال شیءگرا (Object-Pascal) خوانده می شد و برای طراحی نرم افزاهای تحت ویندوز به کار می رفت، امروزه چنان توسعه یافته است که برای تولید نرم افزارهای تحت سیستم عاملِ لینوکس و دات نت نیز به کار می آید. بیشترین کاربرد دلفی در طراحی برنامه های رومیزی و پایگاه دا ده ها است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژه های نرم افزاری نیز مورد استفاده قرار می گیرد.
دلفی ۲۰۰۶
شرکت بورلند در سال ۲۰۰۶ نرم افزار جدید خود را با ویژگیهای جدید به بازار ارائه کرد. این برنامه جدید امکان برنامه نویسی با دلفی و سی پلاس پلاس و همچنین سی شارپ را بطور هم زمان ارائه می دهد. بدین ترتیب برنامه نویسانی که با ابزارهای مختلفی کار می کنند براحتی می توانند در این محیط جدید برنامه نویسی کنند. ویژگی مهم این نگارش نسبت به نگارش ۲۰۰۵ بحث مدیریت حافظه است. در نگارش ۲۰۰۵ ضعفهائی در این زمینه وجود داشت که در این نسخه حل شده است. شرکت بورلند افتخار دارد که به عنوان اولین شرکت تولید کننده IDE زبانهای برنامه نویسی مانند دلفی و سی شارپ بیلدر و جی بیلدر(مخصوص زبان جاوا) و …. از تکنولوژی دات نت در محصولات خود استفاده کرده است.
دلفی ۲۰۰۷
در اواخر سال ۲۰۰۶ شرکت بورلند یک شرکت تابع با نام CodeGear را تاسیس کرد تا این شرکت بتواند تمام انرژی خود را صرف محیط های برنامه نویسی مشهور خود یعنی دلفی و ++C بیلدر و… کند. بن اسمیت نام اولین مدیر CodeGear بود. شرکت بورلند نیز فعالیتهای خود را در زمینه Application Lifecycle Management ادامه می دهد. اولین محصول این شرکت، CodeGear Delphi 2007 هست که بسیاری از نقائص موجود در دلفی ۲۰۰۶ از جمله سرعت پائین آن در این محصول برطرف شده است و بعد از دلفی ۷ می توان از آن به عنوان محصولی مطمئن و قابل استفاده نام برد، هر چند که دلفی ۲۰۰۶ هم محصولی کارامد هست. از دیگر محصولات 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 انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش ۲.۰ از زبان ++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) و خدمات وب دانست.بر اساس ادّعای شرکت مایکروسافت، این زبان در سال ۲۰۰۰ توسط تیمی به سرکردگی آندرس هلزبرگ و نیز سکات ویلتاموث ساخته شد. سی شارپ که فقط برای دات نت است در مجموعه NET Platform SDK. ارائه گردید که در محیط های برنامه نویسی استودیوی بصری دات نت (Visual Studio .NET)، در نسخه های ۲۰۰۳ و ۲۰۰۵ آن موجود است. دستورات زبان سی شارپ مانند جاوا سطح بالا تر از C و ++C است و از VB ساده تر. این زبان همانند پیدایش زبان C انقلابی را در امر برنامه نویسی موجب شد، چراکه به طور همزمان میتواند امکانات سطح پاین و سطح بالا را به بهترین شکل پشتیبانی کند. در طراحی این زبان برای جلوگیری از پیدایش Bug در زمان اجرا بسیار تلاش شده و اجازه هر کاری (مانند ساخت اشاره گر) را نمیدهد(مگر اینکه اصرار بر انجام این کارها داشته باشید)
سکّوی دات نت
در ماه ژوئن سال ۲۰۰۰ میلادی بود که شرکت مایکروسافت ابداع و ایجاد سکّوی (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) پیداست، برای انجام محاسبات ریاضی در کارهای علمی خلق شده است. در گذشته این زبان دارای محدودیتهایی بوده که در نسخه های جدید این مشکلات حل شده است و این زبان به یک زبان بسیار قوی تبدیل شده است. اغلب کتابخانه های لازم برای انجام انواع محاسبات در این زبان وجود دارد. این زبان در استاندارد فرترن ۹۰ از قابلیت نوشتن برنامه های محاسبات موازی برای کامپیوتر های چند پردازنده ای پشتیبانی می کند که آینده روشنی را برای محاسبات سنگین CFD نشان می دهد. این زبان جزء اولین زبانهای خلق شده برای کامپیوتر می باشد که در IBM نوشته شده است. قابلیت محاسبات سریع با سادگی در برنامه نویسی باعث محبوبیت آن بین مهندسان و دانشمندان شده است. زبان فرترن در حال حاضر دارای قابلیت برنامه نویسی شیء گرا شده است.معمولاً از فرترن ۷۷ و ۹۰ استفاده می گردد که نسخه ۹۰ آن محبوبیت عمومی تری دارد. در این متن از استاندارد های برنامه نویسی فرترن ۹۰ استفاده می کنیم و در موارد لازم در مورد فرترن ۷۷ هم بحث خواهیم کرد.
چرا فرترن؟
زبان اصلی برنامه نویسی در کاربردهای علمی فرترن است. اغلب کدهای قدیمی با این زبان نوشته شده است. بنابراین لازم است که یک دانشجوی مهندسی با این زبان آشنایی داشته باشد. سالها پیش به نظر می رسید که با پیشرفت و محبوبیت عمومی زبانهایی مانند C زبان فرترن منسوخ گردد، اما با گذشت سالها این زبان همچنان استفاده فراوان دارد. این ماندگاری مدیون کتابخانه ها و کدهای ۴۰ ساله این زبان است. در هر حال استانداردهای جدید این زبان قدرت زیادی به این زبان داده است. این زبان همچنان بعنوان مهمترین زبان برای مهندسان و دانشمندان بشمار می آید. فرترن برای انجام محاسبات ریاضی با سرعت و قابلیت بالا طراحی شده است. البته زبان فرترن هنوز در ایجاد محیط گرافیکی کمبود دارد و اگر بخواهید برای فرترن یک رابط گرافیکی کاربر(Graphical User Interface) بنویسید، باید خود را درگیر فراخوانی توابع ویندوز(API ها!) کنید. انتخاب راحت تر استفاده از یک زبان ساده مانند Visual Basic یا Delphi برای ایجاد رابط گرافیکی کاربر است. در این روش GUI را در این زبانها می سازیم و موتور اصلی برنامه برای کار با معادلات و انجام محاسبات را در FORTRAN می نویسیم و بعد آنرا با فرمت DLL (Dynamic Link Library) در اختیار برنامه قرار می دهیم. برنامه Ansys که بین مهندسان مکانیک محبوبیت دارد با زبان فرترن نوشته شده است.
فرترن ۹۰
فرترن ۹۰ فراتر از یک ویرایش جدید از استاندارد فرترن می باشد و برنامه نویسی را بسیار آسانتر کرده است. این ویرایش کدهای فرترن ۷۷ را نیز پشتیبانی می کند. فرترن ۹۰ یک زبان برنامه نویسی انعطاف پذیر و قوی است, این زبان امکانات برنامه نویسی شیء گرا را داراست. امکانات دسترسی به امکانات سیستمی مانند تخصیص حافظه, استفاده از اشاره گرها و بسیاری امکانات دیگر به آن اضافه شده است؛ بعبارت دیگر فرترن ۹۰ بیشتر شبیه به C++ است تا فرترن ۷۷! ارتقاء قابلیتهای عددی, استفاده از دستورات حالت موازی (چند پردازنده ای) که یک پیشرفت شایان ذکر در برنامه نویسی علمی و نوشتن کدهای موازی می باشد. این روند در فرترن ۹۵ دنبال شده است و انتظار می رود در ویرایش های جدیدتر این زبان امکانات گسترده تری برای برنامه نویسی علمی به این زبان اضافه گردد
استانداردهای کد نویسی
برای سازگاری و خوانایی بیشتر در برنامه نویسی بهتر است که قوانین زیر را رعایت کنید.
1- همه کلمات کلیدی این زبان را با حروف بزرگ و همه چیز دیگر را با حروف کوچک بنویسید (این زبان بین حروف کوچک و بزرگ فرقی نمی داند!). البته این ساختار آنچنان مناسب نمی باشد و می تواند خوانایی برنامه را کاهش دهد و دلیل استفاده از آن قدمت این روش است. در هر حال استفاده از این روش در برنامه نویسی مدرن کار درستی نیست.
2- از دندانه دار کردن در متن اصلی برنامه و همچنین بلوکهای دیگر استفاده کنید.
3- اسم برنامه ها، زیر برنامه ها و توابع را در انتهای آنها ذکر کنید.
ساختار برنامه فرترن
ساختار برنامه در فرترن ۹۰ به ساختار زبانهای برنامه نویسی دیگر شباهت زیادی دارد و به شکل زیر است.
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
در فرترن ۷۷، کل صفحه به ستونهایی تقسیم می گردد و هر بخش از برنامه محل مشخصی دارد. برنامه فرترن ۷۷ باید از قوانین زیر پیروی کند:
1. تمام دستورات فرترن باید بین ستون ۷ تا ۷۲ از فایل قرار داشته باشند.
2. فاصله خالی برای مترجم برنامه معنایی ندارد ولی برای خوانایی برنامه باید از آنها استفاده کرد!
3. دستوراتی که در ستون ۱ تا ۵ آنها خالی است اما در ستون ۶ کاراکتری غیر از صفر قرار دارد به عنوان ادامه دستورات خط قبل به حساب می آیند (حداکثر تا ۱۹ خط مجاز است!).
4. شماره خط دستورات باید بین ستون ۱ تا ۵ نوشته شوند و حداکثر می تواند یک عدد ۵ رقمی باشد (فرترن به شماره خط نیازی ندارد و فقط برای ارجاع از دستوراتی مانند GOTO استفاده می گردد.
5. خوب است که حداکثر با دو دندانه در برنامه بخشهای مختلف را مشخص کنید.
6. توضیحات برنامه در ستون اول خود C دارند.
با توجه به توضیحات بالا ساختار برنامه فرترن ۷۷ به شکل زیر است.
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 در ابتدای برنامه استفاده کنید. این دستور به مترجم برنامه خواهد گفت که اگر در برنامه به متغیر تعریف نشده ای برخورد، اعلام خطا کند. البته فرترن به تعیین نوع نیازی ندارد! اما این کار خطاهای برنامه نویسی شما را کاهش خواند داد. زبانهای برنامه نویسی زیادی در اولین استفاده از متغیر برای آن متغیر نوعی در نظر می گیرند و نیازی نیست که برنامه نویس نوع متغیرها را مشخص کند زبان فرترن نیز چنین است. تعریف متغیر توسط برنامه نویس یا مترجم برنامه در برنامه نویسی حرفه ای برای مدت زیادی مورد بحث بود تا اینکه ناسا یکی از سنسورهای سفینه فضایی ونوس را بعلت یک تعریف متغیر اشتباه توسط مترجم برنامه (مترجم نوع دیگری را برای متغیر در نظر گرفته بود) از دست داد. بنابراین تعریف متغیر توسط برنامه نویس بعنوان یک روش مناسب انتخاب شد. خوشبختانه در بسیاری از زبانهای برنامه نویسی مدرن تعریف متغیر توسط برنامه نویس اجباری است. فرترن برای داشتن سازگاری از تعریف داخلی متغیر توسط مترجم پشتیبانی می کند
قوانین نامگذاری متغیرها :
1. حداکثر طول نام متغیرها ۳۴ کاراکتر است.
2. فقط امکان استفاده از حروف کوچک و بزرگ انگلیسی (a…z A…Z,)، اعداد(۰,۱,..,۹) و کاراکتر زیر-خط ( _ ) وجود دارد.
3. توجه داشته باشید که بزرگی یا کوچکی حروف برای فرترن فرقی ندارد.
4. اولین کاراکتر یک اسم باید حرف باشد.
5. از کلمات کلیدی در نامگذاری استفاده نکنید.
انواع داده ها
شما در برنامه متغیرها را برای انواع مختلفی از داده ها بکار می برید. انواعی از داده ها که در فرترن ۷۷ پیشتیبانی می گردند به شرح زیر است:
1. نوع INTEGER برای اعداد صحیح
2. نوع REAL برای اعداد اعشاری (تقریباً ۸ رقم)
3. نوع DOUBLE برای اعداد اعشاری با دقت بیشتر (تقریباً ۱۶ رقم معنی دار) [این اعداد را مضاعف می نامیم]
4. نوع CHARACTER برای یک کاراکتر یا رشته ای از کاراکترها
5. نوع LOGICAL برای مقادیر منطقی
6. نوع COMPLEX برای اعداد مختلط به عنوان یک جفت با دقت REAL، اغلب توابع فرترن ۷۷ بر روی اعداد مختلط قابل استفاده هستند
ثابت های هم به همین شکل بکار می روند مثلاً ۱۲۳۴ یک عدد ثابت صحیح است، ۱۲۳۴.۰ یا ۱.234E3 یک ثابت اعشار و ۱.234D3 عدد اعشار با دقت مضاعف است. اعداد مختلط به شکل (۳.۱۴,-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 ازاواسط دهه ۱۹۶۰ توسط پرفسور”جان-کمنی” و پرفسور”توماس-کورتس” از دانشکده “دارت موس”ساخته شد و به عنوان یک زبان برنامه نویسی برای پیاده سازی برنامه های ساده توسعه یافت ضمن انکه هدف نهایی از ایجاد وتوسعه زبان basic (آموزش برنامه نویسی) بود.استفده متداول از basic و به کار گیری ان در هر مکان وبا هر نوع کامپیوتر ٬انگیزه و علتی برای توسعه و پیشرفت این زبان بود. در اواخر دهه ۱۹۸۰« رابط گرافیکی کاربر» یا به اختصار GUI-در محیطwindows ٬ توسعه یافت. نتیجه سازگاری basic با GUI در محیط windows بود که در سال ۱۹۹۱ میلادی توسط شرکت ماکروسافت ایجاد و به بازار عرضه شد. تا قبل از ظهور visual basic ٬برنامه نویسی کار پر زحمت وطاقت فرسایی بود. visual basic٬برنامه نویسی در محیط windows رابسیار ساده کرد. از سال ۱۹۹۱ تاکنون٬شش نسخه از این محصول به بازار عرضه شده است که اخرین نسخه ان۶ visual basic در سپتامبر ۱۹۹۸ انتشار یافت.
برنامه نویسی ساخت یافته
دهه ۱۹۶۰ بود که برخی از نرم افزارهای بزرگ با مشکلات سرویس دهی وخدمات مواجه شدند . به عنوان مثال پیاده سازی نرم افزارها بیش از زمانبندی پیش بینی شده زمان می برد وهزینه تولید نرم افزارها بسیار افزون بر بودجه ای می گردید که در ابتدای عمل بر اورد نشده بود. همچنین محصولات تکمیل شده قابل اعتماد نبودند . این موضوع باعث تقویت این فکر شد که تولید و توسعه نرم افزار بسیار پیچیده تراز چیزی میباشد که تصور شده است. فعالیت تحقیقاتی که در سال ۱۹۶۰ انجام شد نشان داد که برنامه نویسی ساخت یافته میتواند گره گشای مشکلات باشد .برنامه نویسی ساخت یافته یعنی بلوک بندی وایجاد نظم در نوشتن برنامه ها که باعث واضح تر شدن خطا یابی وهمچنین ساده تر شدن تغییر واصلاح برنامه ها میشود.
یکی از نتایج تحقیقات فوق ایجاد و توسعه زبان برنامه نویسی pascal توسط (نیک لاوس- ورت) در سال ۱۹۷۱ میلادی بود زبان پاسکال برگرفته شده ازنام (بلیاس- پاسکال) ریاضیدان وفیلسوف بزرگ قرن هفتهم بود که پس از ان در اکثر دانشگاه ها به عنوان زبان برنامه نویسی اصلی رحجان داده شد.

امتیاز post

نظرات بسته شده است، اما بازتاب و پینگ باز است.