آشنایی با زبان D قسمت چهارم
کنترل های زمان کامپایل
کنترل نوع قوی تر
• انتساب مقادیر به صورت واضح مورد نیاز است
• مجاز نبودن متغییرهای محلی به کار نرفته
• عدم ؛ خالی در بدنه حلقه ها
• انتساب ؛ مقادیر بولی بر نمی گرداند
• نپسندیدن API های متروک
کنترل زمان اجرا
• عبارات اثبات صحت assert ( )
• کنترل مرزهای آرایه
• case تعریف نشده در استثنای switch
• استثنای خارج از حافظه
• ورودی ، خروجی و طراحی یکسان کلاس به وسیله کنتراکت
سازگاری
تقدم عملگر و قوانین سنجش
D عملگرهای C و قوانین تقدم آنها را حفظ می کند همچنین ترتیب قوانین سنجش و قوانین تقدم . این از اشکالات ریز که از ابتدای برنامه نمایان می شود جلوگیری می کند .
دسترسی مستقیم به API های C
نه تنها D نوع داده های مطابق با C دارد همچنین دسترسی مستقیم به توابع C را فراهم می سازد . هیچ نیازی نیست که توابع بسته بندی شده نوشته شود یا کدی برای کپی کردن اجزای متراکم یک توده به صورت یک به یک
پشتیبانی از تمام نوع داده های C
ارتباط با هر API زبان C و یا کد کتابخانه ای C ممکن است . این پشتیبانی تمام انواع C 99 را در بر می گیرد . D شامل توانایی صف بندی اعضای ساختمان است برای مطمئن شدن از سازگاری با فرمتهای داده خارجی .
پردازش استثنای سیستم عامل
مکانیسم پردازش استثناهای D متصل به روشی است که سیستم عامل در سطح زیرین استثناها را در یک کاربرد پردازش می کند .
ابزارهای موجود را به کار می گیرد .
D کد را در فرمت استاندارد فایل Object ایجاد می کند که باعث امکان استفاده از اسمبلرها ، لینکرها ،اشکال زداها ( debugger ) ، فشرده سازهای exe و دیگر تحلیل کننده های استاندارد به خوبی لینک کردن کدی که دیگر زبانها نوشته شده است می شود.
کنترل پروژه
نسخه سازی
D به صورت درونی امکان ایجاد نسخه های متعدد از یک برنامه یا همان متن را دارد . D تکنیک # if و # end if پیش پردازندهی C را جایگزین می کند .
نبود هشدار
کامپایلرهای D هشدارهایی برای کدهای نامطمئن تولید نمی کنند . کد یا توسط کامپایلر قابل قبول است یا نیست . این هر گونه بحثی در این زمینه که آیا هشدار خطایی صحیح است یا نه و نیز هر بحثی در این باره که با چه کنیم را از بین می بــــرد . نیاز برای هشدار کامپایلر نشانهی طراحی ضعیف زبان است .
استـهلاک
همان طور که در طول زمان رشد می کند بعضی کدهای کهنه کتابخانه با نو تر و نسخه بهتر جایگزین می شود . نسخه قدیمی باید برای پشتیبانی کدهای به جا مانده از قبل موجود باشد اما می توانند لقب مستهلک بگیرند . کدهایی که نسخه های مستهلک را به کار می گیرند به وسیله تعویض کمپایلر برچسب غیر قانونی م یخ ورند که برای ابقای برنامه نویس برای نشان دادن هر وابستگی به خصوصیات مستهلک باعث آسانی است .
نمونه برنامه D ( غربال اراتستن واحد اول )
import c.stdio ;
bit [8191] flags ;
int main ()
{ int i , count , prime , k , inter ;
print f(“ 10 iterations \n” );
for ( iter = 1 ; iter<=10 ; iter ++ )
{ count = 0 ;
flags [ ] = 1 ;
for ( i = 0 ; i < flags . length ; i ++ )
{ if ( flags [i] )
{ 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;
این مقاله برای اولین بار در ایران ترجمه و منتشرشده است.
از غلط های احتمالی موجود در املای نمونه برنامه ها عذر می خواهم .
ادامه دارد...
حمید نصیبی (hamidnsaba@yahoo.com)
Copyright by Shabgard.ORG