دی (زبان برنامه‌نویسی)

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از زبان برنامه‌نویسی دی)
پرش به: ناوبری، جستجو
دی (زبان برنامه‌نویسی)
D Programming Language logo.svg
پارادایم زبان ترجمه‌شده, پارادایم برنامه‌نویسی: برنامه‌نویسی رویه‌ای, برنامه‌نویسی شیءگرا, برنامه‌نویسی تابعی, برنامه‌نویسی جنریک, concurrent
طراحی‌شده توسط Walter Bright، Andrei Alexandrescu (since 2007)
توسعه‌دهنده Digital Mars, Andrei Alexandrescu (since 2007)
ظهوریافته در ۲۰۰۱؛ ۱۵ سال پیش (۲۰۰۱)
2.071.0[۱] / ۵ آوریل، ۲۰۱۶؛ ۴ ماه پیش (۲۰۱۶-۰۴-05)[۲]
وابستگی زیاد و کم به نوع، static، inferred
سیستم‌عامل شبه‌یونیکس (فری‌بی‌اس‌دی، لینوکس etc.), مایکروسافت ویندوز، اواس ده
پروانه بوست (کتابخانه‌های سی++) (DMD frontend, standard and runtime libraries),
source available (DMD backend),
Fully open-source (LDC and GDC)
.d
وب‌گاه dlang.org

D Programming در ویکی‌کتاب (انگلیسی)

زبان برنامه نویسی D ، یک زبان شی گرا ، امری و چندالگویی سیستمی است که توسط Walter Bright از Digital Mars طراحی و در سال ۲۰۰۱ منتشر شد . Bright توسط Andrei Alexandrescu در سال ۲۰۰۶ به تلاش توسعه و طراحی پیوست . با اینکه D مهندسی دوباره‌ای از سی پلاس پلاس است ، کاملاً یک زبان جدا محسوب می‌شود ؛ زیرا بسیاری از ویژگی‌های هسته سی پلاس پلاس را نگه داشته و بسیاری را دور ریخته است . در طراحی زبان دی همچنین از زبان‌هایی مانند پایتون ، روبی ، سی شارپ ، ایفل و جاوا نیز الهام گرفته شده است.هدف طراحی زبان D ترکیب کارایی و امنیت زبان‌های کامپایلری ، با قدرت زبان‌های پویای مدرن است . کد یک برنامه در زبان D شبیه به زبان سی پلاس پلاس است ، اما کوتاه تر می‌باشد.

ویژگی‌ها[ویرایش]

۱. چند الگویی
۱.۱ امری : زبان D یک زبان امری مشابه C است . توابع ، داده‌ها ، دستورها ، اعلان‌ها و عبارات کاملاً مانند زبان C عمل می‌کنند . از تفاوت‌های مهم زبان D با زبان C در امری بودن ، می‌توان به حلقه foreach اشاره کرد که امکان حرکت کردن روی یک collection را به ما می‌دهد . همچنین ، زبان D دارای توابع تو در تو است که داخل یکدیگر تعریف می‌شوند .
۱.۲ شی گرایی : زبان D بر پایه سلسله مراتب وراثت تکی بنا شده است و از وراثت چندگانه پشتیبانی نمی‌کند .
۱.۳ Meta Programming
۱.۴ تابعی  : زبان D از بسیاری ویژگی‌های برنامه نویسی تابعی پشتیبانی می‌کند ؛ مانند ثابت توابع ، اشیای بازگشتی-تغییرناپذیر و همچنین توابع با اولویت بالا
۱.۵ موازی : مثلاً در یک حلقه ی for همه دفعات تکرار حلقه همزمان اجرا می‌شوند .

import std.stdio : writeln;
import std.range : iota;
import std.parallelism : parallel;

void main()
{
    foreach (i; iota(10).parallel) {
        // The body of the foreach loop is executed in parallel for each i
        writeln("processing ", i);
    }
}


۱.۶ همروندی

import std.stdio, std.concurrency;

void foo()
{
    bool cont = true;

    while (cont)
    {
        receive( // delegates are used to match the message type
            (int msg) => writeln("int received: ", msg),
            (Tid sender) { cont = false; sender.send(-1); },
            (Variant v) => writeln("huh?") // Variant matches any type
        );
    }
}

void main()
{
    auto tid = spawn(&foo); // spawn a new thread running foo()

    foreach (i; 0 .. 10)
        tid.send(i);   // send some integers
    tid.send(1.0f);    // send a float
    tid.send("hello"); // send a string
    tid.send(thisTid); // send a struct (Tid)

    receive((int x) => writeln("Main thread received message: ", x));
}


۲ . مدیریت حافظه : برای این کار هم می‌توان از توابع new و delete استفاده کرد و هم از malloc و free به همان شکل زبان C به صورت مستقیم؛
۳. SafeD  : به زیر مجموعه‌ای از زبان D گفته می‌شود که از نظر مدیریت حافظه قابل اطمینان است . ( هیچ چیز در حافظه نوشته نمی‌شود مگر اینکه برای آن حافظه فضایی گرفته شده باشد و هیچ چیز نوشته نمی‌شود اگر آن حافظه بازیابی شده باشد )

تعامل با سایر سیستم‌ها[ویرایش]

برنامه رابط دودویی سی ، در تمامی انواع مشتق شده C پشتیبانی می‌شود . کتابخانه استاندارد زبان C ، خود بخشی از زبان D است . از آنجایی که C++ خود یک برنامه رابط دودویی تک ندارد ، زبان D تنها قادر به دسترسی به کد C++ نوشته شده در برنامه رابط دودویی زبان C است .
در ویندوز ، زبان D به Component Object Model دسترسی دارد .

نمونه‌ای از کد زبان D[ویرایش]

برنامه زیر توسط یک تابع بازگشتی ، فاکتوریل یک عدد را محاسبه می‌کند .


ulong factorial(ulong n)
{
    if (n<2)
        return 1;
    else
        return n * factorial(n-1);
}

ابزارهای توسعه[ویرایش]

ویرایشگرها و محیط‌های توسعه یکپارچه متعددی برای زبان D وجود دارد . شامل : Eclipse, Microsoft Visual Studio, SlickEdit,Emacs,vim,SciTE,Smultron,TextMate,MonoDevelop,Zeus,Geany
برنامه‌های زبان D می‌توانند توسط هر کامپایلر زبان C ، اشکال زدایی شوند .

تاریخچه[ویرایش]

Walter Bright در سال ۱۹۹۹ تصمیم گرفت روی زبان جدیدی کار کند. زبان D اولین بار در دسامبر ۲۰۰۱ منتشر شد و در ژانویه ۲۰۰۷ به نسخه ۱.۰ رسید . اولین نسخه زبان D که D1 نامیده شد ، مبتنی بر مبانی شی گرایی ، امری بودن و چند الگویی بود ؛ مشابه سی پلاس پلاس
در همان سال ۲۰۰۷، اولین نسخه D2 منتشر شد . در واقع D2 برای تثبیت D1 عرضه شد و بسیاری از خطاهای D1 را برطرف کرده بود .
در سال ۲۰۱۱ ، پروژه زبان D بر روی GitHub قرار گرفت تا از توسعه بر مبنای خطایابی رها شود . در همان سال ، Andrei Alexandrescu اعلام کرد که در ۳۱ دسامبر ۲۰۱۲ نسخه آخر D1 عرضه می‌شود و دیگر این نسخه ادامه نخواهد یافت .

منابع[ویرایش]

  1. "{{جا:PAGENAME}} url=http://dlang.org/changelog.html#2.071.0". D Programming Language 2.0. Digital Mars. 
  2. "Release D 2.071.0". Retrieved 16 April 2016. 

پیوند به بیرون[ویرایش]