زبان برنامه نویسی D بخش چهارم
کنترل های زمان کامپایل
۱. کنترل نوع قوی تر
۲. مقدار دهی اولیه به صورت واضح مورد نیاز است
-
۳. مجاز نبودن متغییرهای محلی به کار نرفته
۴. عدم ' ; ' تکی در بدنه حلقه ها
۵. عمل انتساب ،مقادیر بولی بر نمی گرداند.
۶. از رده خارج کردن API های متروک
کنترل زمان اجرا
-
۱. عبارات اثبات صحت ( )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 ;
}[/