به طور خلاصه ضمیمه ای نسبتا جدید برای خانواده زبان C است که قرار است جایگزین مناسبی برای ++C باشد. این زبان برنامه نویسی الگوهای طراحی و فناوری هایی از دیگر زبان های برنامه نویسی همچون جاوا و #C وام گرفته است. از ویژگی های D می توان به Garbag Collected اشاره کرد که به همراه شیوه اجرای این برنامه آن را بسیار سریعتر از رقیبان خود در ماشین مقصد اجرا می کند. توسعه دهندگان D تاکنون کامپایلری را برای کامپیوتر X86 ایجاد کرده اند که در محیط های ویندوز و لینوکس قابل اجراست. همچنین تلاش هایی برای یک پارچه کردن D با Gnome C Compiler در حال انجام است. این زبان توسط والتر برایت مولف کامپایلرهای ++C/C شرکت Digital mars و برنامه نویس اسبق کامپایلر برای Zorland و Symantec مولف اولیه این زبان بوده است و از پروژه پیاده سازی آن حمایت میکند.
تفاوت D با سایر زبان ها:
++C
D به منظور پوشش ضعف ها وکمبود های ++C طراحی شده است اما با وجود قدرتمند بودن آن پیچیدگی های ناخواسته باعث زمین گیر شدن آن شده است. شاید بزرگترین تغییر D نسبت به ++C خودکار کردن Garbag Collected باشد هرچند دستورات مستقیم همانند سابق برای خالی کردن زباله کار می کنند.
Java
اگرچه جاوا پدر اصلی D نیست اما بسیاری از تکنیک های جاوا در آن جای داده شده است. تا جایی که برخی ادعا می کنند Syntax های از پیش تعیین شده در D از بسیاری جهات به جاوا شبیه است. در صورتی که در حقیقت باید شبیه به یکی از زبان های شی گرای مدرن باشد. شباهت های میان این دو بسیار زیاد است هر دو بین عملوندهای (.), (<- و ( :: ) تفاوتی قائل نمی شوند. هر دو NULL را به عنوان کلمه کلیدی می شناسند. و از ویژگی Try-Catch-Finally پشتیبانی می کنند. اما تفاوت اساسی میان جاوا و D این است که کدهای زبان D به زبان ماشین ترجمه می شود و مستقیما در ماشین مقصد اجرا می شود.
#C
این دو زبان در حقیقت پاسخ به دو سوال اساسی هستند:
چگونه می توانیم ++C را بهتر کنیم؟ هردو از از ++C مشتق شده اند و عناصری از جاوا را در خود دارند. مهمترین تفاوت میان D و #C این است که D بر خلاف #C داخل ماشین مجازی اجرا نمی شود.
بنابراین می تواند در به کار گیری کدهای سیستمی سطح پایین مورد استفاده قرار گیرد. این امر باعث می شود D قابلیت مدیریت دستی و ریز به ریز حافظه را در اختیار برنامه نویس قرار دهد هرچند که #C به گونه ای کاملا متفاوت این کار را انجام می دهد. هنوز #C نتوانسته است توانایی Template را همچون ++C پیاده کند و این موضوع از برتری های D محسوب می شود.
D چیست؟
تا الان دریافتیم D چه چیزهایی نیست اما بهتر است نقاط قوت و رقابتی آن را بررسی کنیم.
این زبان می تواند کتاب خانه ها و کدهایی که با C نوشته شده اند را استفاده کند و به آنها متصل شود. به این ترتیب دیگر نیازی نیست نگران پشتیبانی از کدهای قدیمی خود باشید اما D هنوز به طور کامل با ++C همخوانی ندارد. اما نگران نباشید به زودی بسه ای برای پشتیبانی از آن در راه است.
برنامه نویسی سیستمی:
گفتیم که شیوه اجرای D به چه صورت است به این ترتیب D می تواند از
IN-LINE-ASSEMBLY برای کد نویسی استفاده کند. سرعت سیستمی را تصور کنید کهبا کدهای ماشین داخل کدهای شی گرا نوشته باشید.
وضوح واژه ای و گرامری
یکی از اهداف D رفعبسیاری از پیچیدگی هاینا کار آمد ++c است که در بحث استاندارد سازی کدها باعث بروز مشکل برای کامپایلر شده است. گرامر ساده کار را هم برای کامپایر هم برای برنامه نویس آسان می کند وباگ های رایج را کاهش می دهد. به عنوان مثال D گرامر پرانتزی ضمخت تعریف قالبها را کنار می گذارد و تحلیل و خواندن را آسان تر می کند.
حذف ویژگی های کهنه
شاید بزرگترین هدف زبان D حذف ویژگی های منسوخ شده ویا ویژگی های پیچیده بی مصرف باشد. برای مثال D کاملا به دور از پیش پردازنده عمل می کند در عوض به توانایی های روش درون ساخته تکیه می کند.
همچنین D ارث بری چند گانه و اغلب پیچیده از ++C را با ارث بری ساده و یگانه جاوا و واسطه های آن جایگزین می کند. قابل ذکر است که این ها تمام ویژگی ها ویا نقاط ضعف این زبان برنامه نویسی نبود وسعی شد نگاهی اجمالی به این زبان برنامه نویسی انداخته شود.
برای کسب اطلاعات بیشتر به وبسایت زیر مراجعه کنید:
کد:
Http://www.digitalmars.com
منبع: هفته نامه کلیک
اگه یه روز به یک در بزرگ رسیدی که یه قفل بزرگ داشت نترس و ناامید نشو چون اگه قرار بود قفل باز نشه جای در دیوار بود.