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

زبان برنامه‌نویسی D، یک زبان شی گرا، امری و چندالگویی سیستمی است که توسط Walter Bright از Digital Mars طراحی و در سال ۲۰۰۱ منتشر شد.

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

دی (زبان برنامه‌نویسی)
زبان برنامه‌نویسی دی
پارادایم برنامه‌نویسیچندالگویی: تابعی، دستوری، شیءگرا
طراحی شده توسطوالتر برایت, Andrei Alexandrescu (since 2007)
توسعه‌دهندهDigital Mars, Andrei Alexandrescu (since 2007)
ظهوریافته در۲۰۰۱؛ ۲۳ سال پیش (۲۰۰۱-خطا: زمان نامعتبر}})
انتشار پایدار
2.108.0 ویرایش در ویکی‌داده
۱ آوریل ۲۰۲۴؛ ۲۱ روز پیش (۱ آوریل ۲۰۲۴-خطا: زمان نامعتبر}})
استنباطی، ایستا، نیرومند
سیستم‌عاملشبه‌یونیکس (فری‌بی‌اس‌دی، لینوکس etc.), مایکروسافت ویندوز، اواس ده
پروانهبوست (کتابخانه‌های سی++) (DMD frontend, standard and runtime libraries),
source available (DMD backend),
Fully open-source (LDC and GDC)
.d
وبگاه
پیاده‌سازی‌های بزرگ
DMD (reference implementation), GDC, LDC
متأثر از
سی (زبان برنامه‌نویسی)، سی++، سی شارپ، ایفل (زبان برنامه‌نویسی)، جاوا (زبان برنامه‌نویسی)
تأثیر گذاشته بر
MiniD, DScript، والا (زبان برنامه‌نویسی)، Qore، سوئیفت (زبان برنامه‌نویسی)، Genie

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

ویژگی‌ها

۱. چند الگویی
۱٫۱ امری: زبان 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 عرضه می‌شود و دیگر این نسخه ادامه نخواهد یافت.

منابع

پیوند به بیرون

Tags:

زبان برنامه‌نویسی دی ویژگی‌هازبان برنامه‌نویسی دی تعامل با سایر سیستم‌هازبان برنامه‌نویسی دی نمونه‌ای از کد زبان Dزبان برنامه‌نویسی دی ابزارهای توسعهزبان برنامه‌نویسی دی تاریخچهزبان برنامه‌نویسی دی منابعزبان برنامه‌نویسی دی پیوند به بیرونزبان برنامه‌نویسی دیC++ایفل (زبان برنامه‌نویسی)برنامه‌نویسی دستوریبرنامه‌نویسی سیستمبرنامه‌نویسی شیءگراجاواروبی (زبان برنامه‌نویسی)زبان برنامه‌نویسی پویاسی شارپپایتون (زبان برنامه‌نویسی)

🔥 Trending searches on Wiki فارسی:

کامران و هومندارک وببرج میلادماشاالله ورواییمت‌آمفتامینمحمدرضا گلزارعلی بن ابی‌طالبمقعدلیسیاردشیر احمدیمحمد مصدقانگلستانسید روح‌الله خمینیمسعود رجویگوگوشبوشهراسترالیاعمر بن خطابعلی شمخانیخایه‌لیسیچینسعید روستاییپابلو اسکوبارایران خودروسلمان فارسیشاهنشاهی ایرانعلیرضا پهلوی (دوم)پرتغالحامد کمیلیهانیه توسلیجان ویکفهرست پرفروش‌ترین فیلم‌های جهانسمیرا حسن‌پورقالب بدنی زنچغازنبیلدامیناتریکسحمید فرخ‌نژادخاتون (مجموعه نمایش خانگی)اسکات ادکینزدودمان‌های ایرانچادویک بوزمندوزیست (فیلم ۱۳۹۸)نور پهلویاحمدشاهابیصفر کشکولیفهرست شبکه‌های رادیویی صدا و سیمای جمهوری اسلامی ایرانجام جهانی فوتبال ۲۰۲۶درجه‌های نیروهای مسلح جمهوری اسلامی ایرانژوزف استالینچنگیز خاناندام جنسیمریم رجویآتیلا پسیانیمنصور ستاریسلطه‌پذیر مؤنثباشگاه فوتبال بایرن مونیخبرادران لیلاسلکیانو ریوزپاکام‌دهییادداشت‌های کودکیاوکراینبانک ملی ایرانایلان ماسکعنکبوت مقدسغلفه (زنان)سید ابراهیم رئیسیترشحات واژنرضا پهلویصفحهٔ اصلیسحر قریشیسایمدانگ، خاطرات درخشانیوسف پیامبراسکیزوفرنیتجاوز جنسیحسن صباح🡆 More