واضح آرشیو وب فارسی:سایت رسیک: --------------------------------------------------------------------------------
D چیست؟
به طور خلاصه، ضمیمه ای نسبتآ جدید برای خانواده زبان برنامهنویسی C است که قرار است جایگزین مناسبی برای C++ باشد. این زبان برنامهنویسی، الگوهای طراحی و فناوریهایی را از دیگر زبانهای برنامهنویسی همچون جاوا و C# وام گرفته است. از ویژگیهای D می توان به Garbage Collected (زباله های جمع شده) اشاره کرد که به همراه شیوه اجرای این برنامه، آن را بسیار سریعتر از رقیبان خود در ماشین مقصد اجرا می کند. توسعه دهندگان D، تا کنون کامپایلری برای کامپیوتر x86 ایجاد کرده اند که در محیطهای ویندوز و لینوکس قابل اجرا است. همچنین، تلاش هایی برای یک پارچه کردن D با GCC در حال انجام است.
این زبان توسط والتر برایت، مولف کامپایلرهای C/C++ شرکت دیجیتالمارس و برنامه نویس اسبق کامپایلر برای Zorland و Symantec، مولف اولیه این زبان بوده است و از پروژه پیاده سازی آن حمایت می کند. اگرچه بسیاری از تصمیمات، در مورد پیشبرد این زبان برنامه نویسی، در گروه های خبری و گفتگو اتخاذ می شود.
تفاوت D با دیگر زبان ها
C++
D به منظور پوشش ضعف ها و کمبودهای C++ طراحی شده است، اما با وجود قدرتمند بودن آن، پیچیدگی های ناخواسته باعث زمین گیر شدن آن شده است. شاید بزرگترین تغییر D نسبت به C++، خودکار کردن Garbage Collection باشد، هرچند که دستورات مستقیم همانند سابق برای خالی کردن زباله کار می کنند.
Java
اگر چه جاوا پدر اصلی D نیست، اما بسیاری از تکنیک های جاوا در آن جای داده شده است. تا جایی که برخی ادعا می کنند، Syntaxهای از پیش تعیین شده در D از بسیاری جهات، به جاوا شبیه است. در صورتی که در حقیقت باید شبیه به یکی از زبان های شی گرای مدرن باشد.
شباهت میان این دو بسیار است. هر دو بین عملوندهای (.) ، ->) و (::) تفاوتی قائل نمی شوند. هر دو NULL را به عنوان کلمه کلیدی می شناسند و از ویژگی Try-catch-finally پشتیبانی می کنند. اما، تفاوت اساسی میان D و جاوا، این است که کدهای دستور زبان D به زبان ماشین ترجمه می شود و مستقیمآ در ماشین مقصد اجرا می شود.
C#
این دو، یعنی C# و D در حقیقت دو پاسخ به یک سوال اساسی هستند: چگونه می توانیم C++ را بهتر کنیم؟ هر دو از C++ مشتق شده اند و عناصری از جاوا را در خود دارند. مهم ترین تفاوت میان D و C#، این است که D بر خلاف C# داخل ماشین مجازی اجرا نمی شود. بنابراین می تواند در بهکارگیری کدهای سیستمی (سطح پایین) مورد استفاده قرار گیرد. این امر باعث می شود D قابلیت مدیریت دستی و ریز به ریز حافظه را در اختیار برنامه نویس قرار دهد، هرچند که C# به گونه ای کاملآ متفاوت این کار را انجام می دهد.
هنوز C# نتوانسته است، توانایی قالبی را همچون C++ پیاده کند و این موضوع، از برتریهای D محسوب می شود.
بار دوم، D چیست؟
تا به حال دریافتیم که D چه چیزهایی نیست. اما بهتر است نقاط قوت و رقابتی این سیستم عامل را بررسی کنیم.
این زبان می تواند کتاب خانه ها و کدهایی که با زبان C نوشته شده اند را استفاده کند و به آن ها متصل شود. بدین ترتیب، دیگر نیازی نیست نگران پشتیبانی از کدهای قدیمی خود باشید. اما، D هنوز به طور کامل با C++ همخوانی ندارد. اما نگران نباشید، به زودی بسته ای برای پشتیبانی از C++ در راه است.
برنامه نویسی سیستمی
گفتیم که شیوه اجرای D به چه صورت است، بدین ترتیب D می تواند از اسمبلیداخلمتن برای کدنویسی استفاده کند. سرعت سیستمی را تصور کنید که با کدهای ماشین داخل کدهای شیءگرا نوشته باشید.
وضوح واژهای و گرامری
یکی از اهداف D رفع بسیاری از پیچیدگی های ناکارآمد C++ است که در بحث استانداردسازی کدها، باعث بروز مشکل برای کامپایلر شده است. گرامر ساده، کار را هم برای کامپایلر و هم برای برنامه نویس آسان می کند و باگ های رایج را کاهش می دهد. به عنوان مثال، D گرامر پرانتزی ضمخت تعریف قالبها را کنار می گذارد و تحلیل و خواندن را آسان تر می کند.
حذف ویژگی های کهنه
شاید بزرگترین هدف زبان D، حذف ویژگی های منسوخ شده و یا ویژگی های پیچیده بی مصرف باشد. برای مثال، D کاملآ به دور از پیشپردازنده C عمل می کند، در عوض به توانایی های روش درونساخته تکیه می کند. همچنین، D ارثبری چندگانه و اغلب پیچیده C++ را، با ارثبری ساده و یگانه جاوا و واسطه های آن جایگزین می کند.
قابل ذکر است که این ها، تمام ویژگی ها یا نقاط ضعف این زبان برنامه نویسی نبود و سعی شد نگاهی اجمالی به این زبان برنامه نویسی انداخته شود.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت رسیک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 241]