زبان برنامه نویسی D بخش چهارم

کنترل های زمان کامپایل

۱. کنترل نوع قوی تر
۲. مقدار دهی اولیه به صورت واضح مورد نیاز است

  1. ۳. مجاز نبودن متغییرهای محلی به کار نرفته
    ۴. عدم ' ; ' تکی در بدنه حلقه ها
    ۵. عمل انتساب ،مقادیر بولی بر نمی گرداند.
    ۶. از رده خارج کردن API های متروک


کنترل زمان اجرا

  1. ۱. عبارات اثبات صحت ( )assert
    ۲. کنترل مرزهای آرایه
    ۳. case تعریف نشده در استثنای switch
    ۴. استثنای تجاوز از اندازه حافظه
    ۵. ورودی ، خروجی و طراحی یکسان کلاس به وسیله کنتراکت


سازگاری

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


دسترسی مستقیم به API های C
نه تنها D نوع داده های مطابق با C دارد همچنین دسترسی مستقیم به توابع C را فراهم می سازد . هیچ نیازی به نوشتن توابع بسته بندی شده یا کدی برای کپی کردن اجزای متراکم یک توده به صورت یک به یک نیست.




پشتیبانی از تمام نوع داده های C
ارتباط با هر API زبان C و یا کد کتابخانه ای C ممکن است . این پشتیبانی تمام انواع C 99 را در بر می گیرد . D شامل توانایی صف بندی اعضای ساختمان برای مطمئن شدن از سازگاری با فرمتهای داده خارجی می باشد.
پردازش استثنای سیستم عامل
مکانیسم پردازش استثناهای D متصل به روشی است که سیستم عامل در سطح زیرین استثناها را در یک برنامه کاربردی پردازش می کند .


[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]
[/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]کنترل پروژه [/FONT]

[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]نسخه سازی [/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]D . D تکنیک if# و
[/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]نبود هشدار[/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]کامپایلرهای D هشدارهایی برای کدهای نامطمئن تولید نمی کنند . کد یا توسط کامپایلر قابل قبول است یا نیست . این خصوصیت هر گونه بحثی در این زمینه که آیا هشدار خطایی صحیح است یا نه و نیز هر بحثی در این باره که با آن هشدار چه کنیم را از بین می برد . نیاز برای هشدار کامپایلر نشانه‌ی طراحی ضعیف زبان است . [/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]استهلاک[/FONT][FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]Deprecation [/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]به مرور زمان ،بعضی کدهای کهنه کتابخانه با نو تر و نسخه بهتر جایگزین می شود [/FONT][FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=]. نسخه قدیمی باید برای پشتیبانی کدهای به جا مانده از قبل موجود باشد اما می تواند لقب مستهلک بگیرد . کدهایی که نسخه های مستهلک را به کار می گیرند ، می توانند به انتخاب برنامه نویس توسط یک سویچ کامپایلر برچسب غیر قانونی بخورند که باعث آسان شدن کار برنامه نویسان برای نشان دادن هر وابستگی به خصوصیات مستهلک می شود .[/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=] نمونه برنامه D غربال اراتستن (تست اعداد اول): [/FONT]
[FONT=FreeIZE=3>ابزارهای موجود را به کار می گیرد </SPAN><I>: </I> <P DIR=][I]import c.stdio ;
bit [8191] flags ;
int main (){
int i , count , prime , k , iter ;
print f(“ 10 iterations \n” );
for ( iter = 1 ; iter<=10 ; iter ++ ) {
count = 0 ;
flags [ ] = 1 ;
for ( i = 0 ; i < flags . length ; i ++ ){
if ( flags ) {
prime = i + i +3;
k = i + prime;
while ( k < flags . Length ) {
flags , [ k] = 0 ;
k + = prime ;
}
count + = 1;
}
}
}
print f ( “ % d primes” , count ) ;
return 0 ;
}
[/