دانلود مقاله زبانهای سیستم کامپیوتر

Word 567 KB 18112 29
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۱۶,۰۰۰ تومان
قیمت: ۱۲,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • اجرا و عملی ساختن الگوریتم‌های انتزاعی وابسته به هم به‌وسیله برای تولید یک برنامه رایانه‌ای مشخص با ابزار زبان برنامه‌نویسی ممکن است.

    گرچه نزدیک‌ترین راه برای بازسازی این قوانین در رایانه کار روی مدارهای الکترونیکی سخت‌افزار آن است.

    اما این کاری طاقت‌فرسا و زمان‌بر و درنتیجه کمابیش ناممکن است.

    واسط‌هایی ساخته شدند تا میان سخت‌افزار و انسان قرار گیرد.

    طبیعی است یک واسط به ساده کردن و انتزاعی کردن رویدادهای ممکن درون سخت افزار می‌‌پردازد.

    این انتزاعی کردن، سازنده سطوح گوناگون یا لایه‌بندی در معماری زیرساخت برنامه‌ها است.

    به همین ترتیب زبان‌های برنامه‌نویسی گوناگون هم هرکدام برای ساخت برنامه‌های یک یا شماری اندک از این لایه‌ها قابل استفاده هستند.
    با متفاوت بودن آنچه برنامه‌نویس برای آسانی استفاده خود آفریده با ورودی واقعی‌سخت افزار برای اجرای فرامین (که به زبان ماشین معروف است) برنامه واسط باید شیوهٔ خط برنامه نویس را به زبان ماشین برگرداند
    زبان‌های برنامه نویسی
    تعدادی از زبان‌های برنامه‌نویسی به شمار زیر هستند :
    • اسمبلی (Assembly)
    • لیسپ (LISP)
    • بی سی پی ال (BCPL)
    • سی (C)
    • سی‌پلاس‌پلاس (++C)
    • سی پلاس پلاس/سی ال آی(C++/CLI)
    • پاسکال (Pascal)
    • جاوا (Java)
    • سی‌شارپ (#C)
    • جی شارپ (#j)
    • بیسیک (Basic)
    • پایتون (Python)
    • پرل (Perl)
    • پی‌اچ‌پی (PHP)
    • Matlab
    • وی بی دات نت (VB .Net)
    • دلفی (Delphi)
    • ویژوال بیسیک (visual basic)
    • لینگو (Lingo)
    اسمبلی
    Assembly
    اَسِمبلی یک زبان‌ برنامه‌نویسی سطح پایین است و از بالاترین سرعت نسبت به سایر زبانها برخوردار است.

    زیرا سایر زبانها ابتدا به اسمبلی و سپس به زبان ماشین(0و1) کامپایل میشوند ولی اسمبلی مستقیما به زبان ماشین کامپایل میشود.

    برای هر خانواده CPU یک زبان اسمبلی وجود دارد.

    مثلا اسمبلی Intel با AMD فرق دارد.

    این زبان به طور مستقیم با سخت افزار، حافظه اصلی، CPU و غیره در ارتباط است.
    زبانهای برنامه‌نویسی سطح بالا علی رغم توانایی‌های زیادی که دارند همیشه برای کار با سخت افزار مناسب نیستند(به جز C که برای کار باسخا افزار از همه حتی اسمبلی بهتر است) در حالی که اسمبلی قدرت زیادی برای کار با سخت افزار دارد.
    میزان استفاده از حافظه
    برنامه‌های نوشته‌شده به زبان اسمبلی نسبت به برنامه‌های معادل در زبانهای سطح بالا، حافظه کمتری را اشغال می‌کنند.

    البته این امر بستگی به انخاب اندازه سگمنت حافظه در زمان نوشتن برنامه دارد.
    برنامه‌هایی که نیاز به زمان بلادرنگ دارند در اس۰۲:۵۲، ۷ نوامبر ۲۰۰۷ (UTC)۰۲:۵۲، ۷ نوامبر ۲۰۰۷ (UTC)~~مبلی به خوبی نوشته می‌شوند و همچنین برنامه‌های مقیم در حافظه.در ضمن برنامه نویس با اسمبلی کارهایی می‌تواند انجام دهد که با زبانهای سطح بالا نمی‌شود آن کارها را انجام داد.

    از جمله دستکاری مستقیم VGA و یا RAM.
    لیسپ
    لیسپ یک زبان برنامه‌نویسی رایانه است که در سال ۱۹۵۸ به وسیلهٔ جان مک‌کارتی ابداع شده است.

    این زبان، مانند زبان برنامه‌نویسی پرولوگ، بیشتر برای برنامه‌نویسی هوش مصنوعی مورد استفاده قرار می‌گیرد.

    با توجه به اینکه زبان لیسپ از نحو ساده‌ای برخوردار است، تجزیه و پیاده‌سازی آن نسبتاً با سهولت انجام می‌شود.
    متن برنامه‌های لیسپ عموماً از نمادها و لیست‌هایی از نمادها تشکیل می‌شود و بدین خاطر است که این زبان لیسپ (مخفف پردازش لیست) نامیده شده است.

    یکی از ویژگی‌های جالب زبان لیسپ این است که خود برنامه‌های لیسپ نیز لیست هستند و بنا بر این، می‌توان با برنامه‌ها به عنوان داده‌ها رفتار کرد و یا داده‌ها را به عنوان برنامه ارزیابی نمود.
    لیسپ دارای گویش‌های مختلفی است که بعضی از آنها دارای قابلیت‌های شیءگرا نیز هستند.

    از این میان می‌توان به کامن لیسپ اشاره کرد.
    سی++
    زبان برنامه‌نویسی ++C (تلفظ می شود: سی پلاس پلاس) یک زبان برنامه‌نویسی کامپیوتری عمومی با قابلیت‌های سطح بالا و سطح پایین می‌باشد.

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


    زبان ++c یک زبان سطح میانی در نظر گرفته می‌شود.

    این زبان دارای قابلیت زبان‌های سطح بالا و پایین بصورت همزمان است.
    زبان ++C توسط بی‌یارنه استراس‌تروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان سی ساخته شد و آن را C با کلاس نام‌گزاری نمودند.

    در سال ۱۹۸۳ به ++c تغییر نام داد.

    توسعه با اضافه نمودن کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد.

    این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد.

    نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است.

    نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده می‌شود) در دست تهیه است.
    زبان ++C توسط بی‌یارنه استراس‌تروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان سی ساخته شد و آن را "C با کلاس" نام‌گزاری نمودند.

    نسخه جدیدی از استاندارد (که به صورت غیررسمی 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 وجود ندارند مانند ماکروهای قابل تغییر و استفااده بهتر از آرایه‌ها به عنوان آرگومان.

    بعضی کامپایلرها این ویژگی‌ها را پیاده نموده‌اند اما در بقیه این ویژگی‌ها موجب ناهماهنگی می‌گردد.

    برنامه Hello World برنامه زیر با استفاده از کتابخانه استاندارد و جریان‌های خروجی یک متن را به خروجی استاندارد ارسال می‌نماید.

    #include // provides std::cout int main() { std::cout return 0; }ویژگی‌های زبان عملگرها به بخش عملگرهای سی و سی++ مراجعه نمایید پیش پردازنده ++C بطور عمومی در سه فاز ترجمه می‌گردد: پیش‌پردازنده، ترجمه به کد object، پیوند (که دو مرحله آخر به عنوان عمل کامپایل شناخته می‌شود.) در اولین مرحله در پیش‌پردازنده، شبه‌دستورات پیش‌پردازنده تغییرات لغوی بر روی کد منبع ایجاد می‌نمایند و آن را به به مراحل دیگر تحویل می‌دهند.

    شبه دستورات پیش‌پردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشته‌هایی را در کد منبع با فایل یا رشته‌های دیگر با توجه به قوانین تعریف گشته توسط برنامه‌نویس جایگزین می‌نماید.

    این دستورات معمولا اعمال زیر را انجام می‌دهند: جایگزینی ماکروها، شمول فایل‌های دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجول‌ها/پکیج‌ها/یونیت‌ها/کامپوننت‌ها)، کامپایل شرطی و/یا شمول شرطی.

    به عنوان مثال: #include که این دستور تمام سمبل‌ها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد می‌سازد.

    کاربرد معمول دیگر به عنوان ماکرو خوانده می‌شود: #define MY_ASSERT(x) assert(x) که کد (MY_ASSERT(x را با (assert(x در فایل منبع جایگزین می‌نماید.

    که این جایگزینی امکان کنترل استفاده از این تابع را در اختیار برنامه‌نویس قرار می‌دهد.

    استفاده از ماکروها در عمل چندان توصیه نمی‌گردد چرا که امکان کنترل نوع آرگومان‌ها را از بین برده در نتیجه ممکن است اشتباهاتی را وارد کد منبع نماید.

    طریقه دیگر برای انجام این کار استفاده از توابع درون‌خطی است.

    علاوه بر شبه‌دستورات معمول تعدادی شبه دستور برای کنترل جریان کامپایل وجود دارد که امکان شمول یا عدم‌شمول قطعه‌ای کد یا سایر ویژگی‌های کامپایل را در اختیار ما قرار می‌دهد.

    دستورات پیش‌پردازنده برای کاربردهای عددی نیز به کار می‌رود که هم‌اکنون استفاده از const به جای #define ترجیح داده می‌شود.

    این کار علاوه بر ایجاد کنترل نوع قوی مانع از گمراهی در فضاهای نام می‌گردد.

    هدف کمیته استانداردسازی از بین بردن پیش‌پردازنده است اما با توجه به خصوصیت مدولار ++C بعید به نظر می‌آید که این حذف امکان‌پذیر باشد.

    قالب‌ها قالب‌ها متفاوت با ماکروها هستند.

    در حالی که هر دوی این ویژگی‌های زمان کام پایل برای ایجاد کامپایل شرطی استفاده می‌شوند قالب‌ها محدود هب تغییرات لغوی و متنی نیستند.

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

    ماکروها کنترل خود را بر کامپایل از طریق ویژگی‌های از پیش تعیین شهد انجام می‌دهند ولی قادر به ایجاد انواع جدید و کنترل نوع نیستند و فقط محدود به تغییرات متنی پیش از کامپایل هستند.

    به زبان دیگر ماکروها کنترل خود را با استفاده از نشانه‌های از پیش تعیین شده انجام می‌دهند اما همانند قالب‌ها نمی‌توانند نشانه‌ها را خود ایجاد نمایند.

    قالب‌ها ابزاری برای چندریختی ایستا و برنامه‌نویسی جنریک است.

    مثلا جایگزین معادل با استفاده از قالب‌ها برای عبارت خطرناک #define max(x,y) ((x)>(y)?(x):(y)) در پایین نشان داده شده است.

    template const T& max(const T& x, const T& y) { return x > y ?

    x : y; } این قالب در سرآیند algorithm تحت عنوان std::max() قابل دسترسی است.

    معمولا می‌توان از کلمه کلیدی class بجای typename استفاده کرد.

    علاوه بر این قالب‌ها یک ویژگی تورینگ-کامل هستند که به این معناست که هر برنامه قابل محاسبه توسط کامپیوتر را می‌توان با استفاده از فرابرنامه‌نویسی قالب‌ها نوشت.

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

    اشیا سی++ چندین ویژگی شی‌گرا را زبان سی معرفی نمود معرفی کلاس چهار ویژگی که در زبان‌های شی‌گرا و بعضا غیر شی‌گرا حضور دارد یعنی انتزاع، بسته‌بندی، وراثت، و چندریختی را فراهم کرد.

    اشیا نمونه‌های ساخته شده از کلاس در زمان اجرا هستند.

    می‌توان کلاس را نمونه‌ای از قالب‌ها دانست که چندین مورد از آنها بوجود می‌آید.

    بسته‌بندی بسته‌بندی به معنای جمع‌آوری عملیات و داده در یک محل می‌باشد.

    سی++ بسته‌بندی را با ایجاد امکان تعریف هر کلاس به صورت public، private، protected پیاده‌سازی نموده است.

    اعضای private فقط توسط اعضای کلاس و یا کلاس‌ها دقیقا بیان شده (friend) قابل دسترسی هستند.

    اعضای protected توسط کلاس‌های ارث برده شده و اعضای کلاس و کلاس‌های friend قابل دسترسی هستند.

    در تعاریف شی‌گرا باید تنها توابعی بسته‌بندی گردند که باید از نحوه پیاده سازی این نوع بخصوص اطلاع داشته باشد.

    سی++ این ویژگی را با استفاده از توابع عضو و توابع دوست فراهم نموده اما قطعی نکرده است.

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

    عموما توصیه بر این است که تمام اعضا به صورت خصوصی یا حفاظت شده تبدیل گردند و فقط توابعی که باید توسط دیگر کلاس‌ها به عنوان واسط استفاده شوند عمومی باقی بمانند.

    وراثت وراثت این امکان را ایجاد می‌کند که یک نوع ویژگی دیگر انواع را داشته باشد.

    وراثت از یک کلاس پایه می‌تواند عمومی، خصوصی یا حفاظت شده باشد.

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

    تنها وراثت عمومی به معنای وراثت به کار رفته بصورت عموم است.

    دو نوع دیگر وراثت به ندرت مورد استفاده قرار می‌گیرند.

    اگر تعیین‌کننده سطح دسترسی حذف شود سطح دسترسی برای کلاس خصوصی و برای ساختمان به صورت عمومی تعریف می‌گردد.

    کلاس‌های پایه ممکن است یثورت مجازی تعریف شوند که به آن وراثت مجازی گویند.

    وراثت مجازی تضمین می‌کند که فقط یک نمونه از کلاس پایه وجود داشته باشد و مشکلاتی همانند مشکلات وراثت چندگانه بوجد نیاید.

    وراثت چندگانه یکی از ویژگی‌های مورد بحث در سی++ است.

    وراثت چندگانه امکان اشتقاق از چند کلاس پایه را فراهم می‌نماید که موجب بوجود آمدن گراف رابطه وراثت بسیار پیچیده است.

    به عنوان مثال «گربه پرنده» می‌تواند از کلاس «گربه» و کلاس «پستانداران پرنده» ارث برد.

    در زبان‌های دیگر مانند سی‌شارپ و جاوا به صورت دیگری ویژگی مشابه را پیاده‌سازی می‌نماید هر کلاس می‌تواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد(واسط‌ها برخلاف کلاس پایه فقط تعریف هستند و هیچ‌گونه پیاده‌سازی را شامل نمی‌گردند).

    چندریختی امکان استفاده از یک واسط برای چندین پیاده‌سازی فراهم می‌نماید و اشیا در شرایط مختلف رفتار مختلفی از خود نشان می‌دهند.

    سی++ دو نوع چندریختی در اختیار برنامه‌نویس قرار می‌دهد: چندریختی زمان کامپایل و چندریختی زمان اجرا.

    چندریختی زمان کامپایل امکان تصمیم‌گیری‌های زمان اجرا را فراهم نمی‌سازد و چندریختی زمان اجرا اغلب موجب پایین آمدن بازدهی می‌گردد.

    چندریختی ایستا چندریختی ایستا شامل گرانبارسازی تابع، گرانبارسازی عملگر، آرگومان پیش‌فرض، و قالب کلاس‌ها و تابع است.

    گرانبارسازی تابع گرانبارسازی تابع امکان تعریف چندین تابع با نام یکسان اما با تعداد آرگومان‌های متفاوت را فراهم می‌سازد.

    این توابع از طریق تعداد پارامترها یا نوع رسمی آنها شناسایی می‌گردند.

    در نتیجه یک تابع ممکن است با توجه به موقعیت استفاده معنای مختلفی داشته باشد.

    نوع داده برگشتی برای تشخیص توابع از یکدیگر مورد استفاده قرار نمی‌گیرد.

    گرانبارسازی عملگر بطور مشابه گرانبارسازی عملگر امکان استفاده از یک عملگر مشخص می‌شود که عملکرد متفاوتی با توجه به عملوندهای خود دارد.

    این عملگرهای گرانبار شده موجب فراخوانی تابع مشخصی متناسب با آن موقعیت می‌گردند.

    گرانبارسازی عملگر ترتیب اجرا یا تعداد عملوندهای یک عملگر را تغییر نمی‌دهد.

    عملگرهای .

    :: .* ?

    نمی‌توانند گرانبار شوند.

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

    هنگام استفاده از این مشخصه باید دقت شود که تابع‌های گرانبار شده و تابع‌های دارای آرگومان پیش‌فرض با یکدیگر تداخل نداشته باشند به عنوان مثال: // function with default argument but also an overloaded function int strcpy(char *str1, char *str2, short unsigned n=65535); // second overloaded function int strcpy(char *str1, char *str2); کد بالا در صورت استفاده از یک آرگومان n برای strcpy درست کامپایل می‌گردد اما اگر آرگومانی تعیین نگردد درست عمل نخواهد کرد.

    چرا که کامپایلر نخواهد دانست که باید از مقدار پیش‌فرض استفاده نماید یا از تابع بدون آرگومان.

    چندریختی پویا چندریختی پویا شامل وراثت و توابع مجازی عضو است.

    ساختار برنامه ها ساختار برنامه ها در این زبان بدین صورت است که همانند زبان سی، هر برنامه بایستی یک تابع اصلی (main) به عنوان بدنه برنامه داشته باشد.

    هر برنامه معمولا از تعداد زیادی فایل تشکیل می شود که به هم الحاق می گردند (با دستور include) و به این فایل های الحاقی سرآیند (Header) می‌گوییم.

    فایل های الحاقی حاوی کد ها یا نسخه های اجرایی کلاس ها (مجموعه متغیر ها و توابع) می باشند که در بدنه اصلی برنامه از آنها استفاده می شود.

    معمولاً هر کلاس (که تعریف یک نوع داده ای با متد های مربوط به آن است) را در یک سرآیند می‌نویسند.

    هر سرآیند که معمولا تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل های پیاده سازی به زبان ++C یا پیاده سازی های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا ...

    ) می تواند به کار برده شود.

    به مجموعه های یکپارچه ای از کلاس های پیاده سازی شده (به صورت فایل های سرآیند با پیاده سازی های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می روند، یک کتابخانه ++C گفته می شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه های آماده می باشد.

    کتابخانه های بزرگ ++C مانند STL، MFC، QT و ...

    مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده اند.

    محیط‌های برنامه نویسی یک برنامه به زبان ++C می تواند در محیط های ++Turbo C++ , Borland C و ++Dev C نوشته شود.

    این محیط‌های برنامه‌نویسی، همراه با یک کمپایلر عرضه می‌شوند که کار تبدیل برنامه به فایل اجرایی را راحت می‌کند.

    زبان برنامه‌نویسی پاسکال زبان برنامه‌نویسی رایانهای‌ی پاسکال یکی از زبان‌های مشهور برنامه‌نویسی‌ی سطح بالای متداول است.

    این زبان توسط دانشمند رایانه‌ی سوئیسی به نام نیکلاوس ورث (Niklaus Wirth) در اوایل سال‌های ۱۹۷۰ توسعه یافته و نام آن از نام بلز پاسکال، ریاضی‌دان فرانسوی، الهام گرفته شده است.

    استاندارد این زبان برنامه‌نویسی در سال ۱۹۸۳ نوشته شده است و دو سازمان IEEE و ANSI آن را تائید کرده‌اند.

    هم اکنون این زبان بیش‌تر به‌عنوان زبان برنامه‌نویسی‌ی آموزشی برای مبتدیان در دانشگاه‌ها تدریس می‌شود.

    سادگی و تجرید خوب این زبان امکان برنامه‌نویسی راحت بدون نیاز به آگاهی از ساختارهای پیچیده‌ی زیرین سیستم عامل را می‌دهد.

    از خصوصیات این زبان می توان به سادگی‌ی فراگیری‌ی آن اشاره کرد.

    پاسکال نیز مانند بسیاری از زبان‌های برنامه‌نویسی دیگر دارای کامپایلرهای زیادی است که از معروف‌ترین آنها می‌توان به کامپایلر توربو پاسکال (Turbo Pascal) که متعلق به شرکت بورلند (Borland) است اشاره کرد.

    شرکت بورلند از پاسکال شی‌گرا به‌عنوان زبان برنامه‌نویسی محیط توسعه نرم‌افزار خود به نام دلفی استفاده کرده است.

    بیسیک زبان برنامه نویسی بیسیک (بر گرفته از کلمات beginner's all-purpose symbolic instruction) یک زبان برنامه‌نویسی ساده از نظر آموزش و بکارگیری و داراى فهرست کوچکى از دستورات و قالبهاى ساده، مقدماتى، پایه‌اى، قلیایی، ابتدایی، اولیه، پایه‌اى، اساسى، اصلی، تهی، بنیانی که در اواسط دهه ۶۰ میلادی توسط جان کمنی و توماس کرتز در کالج دارتموت ابداع شد و به عقیده بسیاری آسان‌ترین زبان برای یادگیری است.

    یک برنامه به زبان بیسیک(qbasic) یک عدد را از ورودی میگیرد و مقلوب آن را مینویسد پایتون (زبان) از ویکی‌پدیا، دانشنامهٔ آزاد.

    (تغییر مسیر از پایتون) پرش به: ناوبری, جستجو پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم(Guido van Rossum) در سال ۱۹۹۰ ساخته شد این زبان از زبان های برنامه نویسی تفسیری بوده و به صورت کامل یک زبان شی‌گرا است که در ویژگی‌ها با زبانهای تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند.

    پایتون پروژه‌ای بازمتن توسعه یافته است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد.

    نسخهٔ ۲.۴.۲ این زبان در تاریخ ۲۸ سپتامبر ۲۰۰۵ منتشر شد تاریخچه پایتون در یک محیط آموزشی ایجاد و توسعه یافته است .

    یعنی در کریسمس سال ۱۹۹۸ در موسسه ملی تحقیقات ریاضی و رایانه (CWI) در شهر آمستردام.

    در آن زمان گیدو یک پژوهشگر در CWI بود و در زمان بیکاری خود بر روی پروژه شخصی خود یعنی پایتون کار می کرد .

    اولین نسخه عمومی از پایتون در ماه فوریه سال ۱۹۹۱ منتشر شد .

    برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (CNRI) واقع در رستون ایالات متحده‌ امریکا توسعه می‌یافت .

    تا اینکه در سال ۲۰۰۰ تیم توسعه دهنده پایتون به آزمایشگاه های پایتون منتقل شدند .

    نام پایتون از برنامه مورد علاقه سازنده آن یعنی مونتی پایتون که یک برنامه کمدی انگلیس بود گرفته شده است .

    ویژگی ها شی گرایی پایتون یک زبان برنامه‌نویسی شی‌گرا است و از ویژگی های پیشرفته‌ایی چون وراثت، چند شکلی، سربار گزاری عملگر و ...

    پشتیبانی می کند.

    یک از ویژگی‌های پایتون که لقب چسب را برای پایتون به ارمغان آورده امکان استفاده از کد ها و کلاس‌های نوشته شده در زبانهای دیگری چون سی‌پلاس‌پلاس و رایگان پایتون یک زبان برنامه‌نویسی رایگان و متن‌باز (open source)هست.

    قابلیت حمل چون پایتون با زبان قابل حمل ‏سی ‬نوشته قدرتمند پایتون زبانی چند رگه است که از زبان‌های برنامه‌نویسی تفسیری درونی سازی و گسترش این ویژگی یکی از پرکاربرد ترین و قوی ترین ویژگی های پایتون می باشد .

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

    این زبان نیازی به کامپایل ندارد و شما مستقیما می توانید پس از نوشتن کد و با یک دستور آن را اجرا کنید .

    دستورات این زبان بسیار نزدیک به زبان انسان می باشد .

    برای مثال برنامه Hello World ‬را Hello World در سی #include int main() { printf(" Hello world "); return 0; } Hello World در پایتون print "Hello World !!" برنامه‌های نوشته شده با پایتون بیتتورنت (BitTorrent) : نرم افزاری برای جستجوی فایل‌های به اشتراک گذاشته شده(p۲p) و ...

    بلندر (‌Blender) : یک نرم افزار ۳ بعدی و اپن سورس بسیار معروف چندلر (Chandler) : مدیر اطلاعات شخصی شامل تقویم ، میل ، کار‌های روزلنه ، یادداشت‌ها و ...

    Civilization IV : یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده می‌کند میلمن (Mailman) : یکی از معروفترین نرم افزار‌های مرتبط با ایمیل کمبیلوKombilo : مدیر پایگاه داده و مرورگرگیم‌های go موین‌موین (MoinMoin) : یکی از قدرتمندترین و معروفتریم ویکی‌های موجود پلون (Plone) : یک ابزار مدیریتی محتوایی اپن سورس ، قدرتمند و کاربر پسند پورتاژ (Portage) : قلب توزیع جنتو .

    یک مدیر بستهای سیستم لینوکس زوپ (zope) : یک پلاتفورم شی گرای مبتنی بر وب .

    زوپ شامل یک سرور نرم افزار به همراه پایگاه داده شی گرا و یک رابط مدیریتی درونی مبتنی بر وب می‌باشد اس پی ای (SPE) : یک IDE رایگان ، اپن سورس برای سیستم عامل‌های ویندوز ، لینوکس ، مک که از wxGlade(طراحی رابط کاربر),PyChecker (دکتر کد) Blender(۳D) پشتیبانی می‌کند .

    زبان برنامه نویسی پرل در سال ۱۹۸۷ توسط لری وال ساخته شد.

    پرل قابلیت‌هایی از زبان برنامه‌نویسی سی،دست‌نوشته شل،أک،لیسپ و دیگر زبان‌های دیگر وام گرفته است.

    تاریخچه پرل در سال 1987 توسط لری وال منتشر شد.

    زبان پرل بطور وسیعی ساختار خود را از زبان C , و بسیاری از خصوصیات خود را مدیون زبانهای : AWK , LISP , SED , SH می باشد .

    در حال حاضر پرل را در بیش از 40 سیستم عامل میتوان بکار گرفت و کتابخانه CPAN بیش از 11000 مازول را با کد منبع در اختیار تان می گذارد قابلیت‌ها کاربرد پرل پرل را امروزه در زمینه های هوش مصنوعی–ژنتیک –نظامی –تحقیقاتی – صنعتی و بطور گسترده ای در اینترنت میتوان یافت .

    نوشتن یک: بانک اطلاعاتی – صفحه گسترده – سیستم عامل – و یا یک وب سرور شاید عاقلانه به نظر نرسد ولی در پرل امکانپذیر است .

    پرل به عنوان یک زبان چسبنده (Glue Language) پرل به عنوان یک زبان چسبنده می تواند در زبان های دیگر مورد استفاده قرار گیرد .

    به طور مثال می توانید در برنامه های .NET از پرل برای پردازش متن ویا هر چیز دیگری استفاده کنید این قابلیت تنها به .NET محدود نمیشود و پرل را می توان در دیگر زبان های برنامه نویسی بدون در نظر گرفتن پلتفرم ان استفاده کنید .

    پرل به عنوان یک زبان (Cross Platform) جالب است بدانید نرم افزاری که شما تحت سیستم عامل LINUX و یا MAC نوشته اید به طور قطع روی سیستم عامل WINDOWS و UNIX هم اجرا میشود.

    قابلیت (Cross Platform) به شما امکان توسعه نرم افزار تان را بر روی هر سیستم عاملی فراهم می نماید ..

    پرل و برنامه های 3 بعدی گستره استفاده پرل به عنوان زبانی برای ایجاد برنامه های 3 بعدی تا حدی است که تا چندی پیش متخصصین Graphcomp در تستی زبان C و PERL را برای اجرای برنامه 3 بعدی بر روی 3 سیستم عامل متفاوت : VISTA , UBUNTU , FEDORA با سخت افزار یکسان به کار گرفتند.

    در این میان پرل توانست با استفاده بهینه از منابع سیستم برتری خود را در این زمینه اثبات کند .

    نتایج تست Graphcomp : http://graphcomp.com/pogl.cgi?v=0111s3m3

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

خلاصه اي درباره LISP و PROLOG به وسيله برآورده کردن نيازهاي گفته شده، LISP و PROLOG هر دو داراي زبانهاي برنامه نويسي غني و کاملي هستند وقتي که اين زبانها را فرا مي گيريم، دانشجو در ذهن و فکر درباره روشهايي که آنها به وسيله ويژگيهاي خاص هر زبان پش

رشته مهندسي کامپيوتر که به طراحي و ساخت اجزاي مختلف کامپيوتر مي پردازد، لذا اهميت بسيار زيادي در دنياي امروز برخوردار است. هدف از طي اين دوره تربيت کارشناساني است که در زمينه تحليل، طراحي، ساخت و راه اندازي دستگاهها و مجموعه هاي سخت افزاري جديد، برر

سخت افزار براي کامپيوتر سه واحد ورودي Input ، پردازش مرکزي Central Processing Unit و خروجي Output در نظر گرفته شده است . اين واحدها که معمولاُ از پلاستيک ، سيم ، مواد مغناطيس شونده و عناصر الکتريکي مقاومت و خازن و ترانزيستور و… ساخته شده اند و در مج

معرفي محل کار آموزي محل کارآموزي اينجانب شرکت کامپيوتري خراسان ميباشد درحدفاصل ميدان ده دي و چهارراه لشگردر پاساژطاهري واقع شده است.مديريت اين شرکت آفاي بهرامي ميباشد که مهندس کامپيوتر در گرايش سخت افزار است . خدماتي که در شرکت کامپيوتر خراسان ارائ

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

نسخه اصلي Basic (که شامل symbolic instruction code begginers all purpose به معني «کد حاوي دستورات نمادين همه منظوره مخصوص نوآموزان» در کالج دارتموت در سال 1964 به عنوان زباني آموزشي ابداع گشت.يادگيري و طريقه استفاده از ساير زبانهايي که تا آن زمان وج

ساختار برنامه : اين برنامه برنامه با آخرين کمپايلرMirosoft يعني Visual Studio .NET Visual Sudio 7)) و به زبان جديد اين Platform که زبان C# ميباشد طراحي و ساخته شده است و از امکانات قدرت¬مند اين Platform استفاده مينمايد . از مزاياي عمده استف

مفاهيم کلي به طور کلي نرم افزارهاي کامپيوتر به دو گروه تقسيم مي‌شوند: يکي برنامه‌هاي سيستمي که عمليات کامپيوتر را مديريت مي‌کنند و ديگري برنامه‌هاي کاربردي .سيستم عامل (operating system=os) اصلي ترين برنامه سيستمي است که به عنوان رابط بين کاربر و س

گنتو لينوکس برخلاف ساير توزيعهاي رايج لينوکس از سيستم مديريت پيشرفته بسته هاي نرم افزاري خاصي به نام Portage پورتاژ بهره ميبرد . پورتاژ از روي سيستم true ports مرسوم در BSD اقتباس شده ليکن نگارش آن بر مبناي زبان برنامه نويسي python بوده و دا

ثبت سفارش
تعداد
عنوان محصول