ডি (প্রোগ্রামিং ভাষা)

প্রোগ্রামিং ভাষা

ডি যা ডিল্যাং (ইংরেজি) নামেও পরিচিত, হচ্ছে ওয়াল্টার ব্রাইট ও ডিজিটাল মার্স কর্তৃক তৈরীকৃত এবং ২০০১ সালে মুক্তিপ্রাপ্ত মাল্টি-প্যারাডাইম সিস্টেম প্রোগ্রামিং ভাষা। আন্দ্রে আলেক্সান্দ্রেস্কু ২০০৭ সালে এর উন্নয়ন কাজে যোগ দেন। যদিও এটি সি++ কে পূনঃপ্রকৌশল করে তৈরী করা হয়েছে, তারপরও এটি একটি স্বতন্ত্র ভাষা। এটিতে সি++ এর কিছু মূল বৈশিষ্ট্যিকে পূনঃউন্নয়ন করা হয়েছে। পাশাপাশি এটিতে রুবি, পাইথন, সি#, জাভা ও আইফেলের মতো উল্লেখযোগ্য কিছু ভাষার বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে।

ডি প্রোগ্রামিং ভাষা
D Programming Language logo.svg
প্যারাডাইমমাল্টি-প্যারাডাইম: functional, imperative, object-oriented
নকশাকারWalter Bright, Andrei Alexandrescu (since 2007)
বিকাশকারীডি ল্যাঙ্গুয়েজ ফাউন্ডেশন
প্রথম প্রদর্শিত৮ ডিসেম্বর ২০০১; ১৮ বছর আগে (2001-12-08)[১]
স্থিতিশীল সংস্করণ
2.088.0[২] / ১ সেপ্টেম্বর ২০১৯; ১৩ মাস আগে (2019-09-01)[২]
ধরণের শৃঙ্খলাInferred, static, strong
ওএসফ্রিবিএসডি, লিনাক্স, ম্যাকওএস, মাইক্রোসফট উইন্ডোজ
লাইসেন্সবুস্ট সফটওয়্যার লাইসেন্স[৩][৪][৫]
ফাইলনেম এক্সটেনশান.d
ওয়েবসাইটdlang.org
মুখ্য বাস্তবায়নসমূহ
ডিএমডি (reference implementation), জিসিসি, এলডিসি, এসডিসি
যার দ্বারা প্রভাবিত
C, সি++, C#, Eiffel,[৬] জাভা (প্রোগ্রামিং ভাষা), পাইথন (প্রোগ্রামিং ভাষা)
যাকে প্রভাবিত করেছে
গিনি (প্রোগ্রামিং ভাষা), MiniD, Qore, Swift,[৭] Vala

কিছু উদাহরণসম্পাদনা

উদাহরণ ১সম্পাদনা

এই উদাহরণ প্রোগ্রামটি তার কমান্ড লাইনের যুক্তিগুলি মুদ্রণ করে। main ফাংশন একটি ডি প্রোগ্রামের এন্ট্রি পয়েন্ট, এবং args কমান্ড লাইন আর্গুমেন্ট প্রতিনিধিত্বমূলক স্ট্রিং একটি অ্যারে। ডি-তে একটি string হচ্ছে ক্যারেক্টারের একটি অ্যারে, যেটি ডি১ -এ char[] অথবা ডি২ তে immutable(char)[] এর প্রতিনিধিত্ব করে।

1 import std.stdio: writefln;
2 
3 void main(string[] args)
4 {
5     foreach (i, arg; args)
6         writefln("args[%d] = '%s'", i, arg);
7 }

উদাহরণ ২সম্পাদনা

নীচে একটি সংক্ষিপ্ত প্রোগ্রামে বেশ কয়েকটি ডি ক্ষমতা এবং ডি নকশা ট্রেড-অফ গুলো দেখাচ্ছে। এটি words.txt নামের একটি পাঠ্য ফাইলের লাইনের উপরে পুনরাবৃত্তি করে, যার প্রতিটি লাইনে আলাদা শব্দ রয়েছে এবং সমস্ত শব্দ মুদ্রণ করে যা অন্য শব্দের অ্যানাগ্রাম।

 1 import std.stdio, std.algorithm, std.range, std.string;
 2 
 3 void main() {
 4     dstring[] [dstring] signs2words;
 5 
 6     foreach (dchar[] w; lines(File("words.txt"))) {
 7         w = w.chomp().toLower();
 8         immutable key = w.dup.sort().release().idup;
 9         signs2words[key] ~= w.idup;
10     }
11 
12     foreach (words; signs2words) {
13         if (words.length > 1) {
14             writefln(words.join(" "));
15         }
16     }
17 }

তথ্যসূত্রসম্পাদনা

  1. উদ্ধৃতি ত্রুটি: অবৈধ <ref> ট্যাগ; D1 changelog1 নামের সূত্রের জন্য কোন লেখা প্রদান করা হয়নি
  2. উদ্ধৃতি ত্রুটি: অবৈধ <ref> ট্যাগ; D2 changelog নামের সূত্রের জন্য কোন লেখা প্রদান করা হয়নি
  3. উদ্ধৃতি ত্রুটি: অবৈধ <ref> ট্যাগ; D-frontend-license নামের সূত্রের জন্য কোন লেখা প্রদান করা হয়নি
  4. "dmd Backend converted to Boost License"। ৭ এপ্রিল ২০১৭। সংগ্রহের তারিখ ৯ এপ্রিল ২০১৭ 
  5. "D 2.0 FAQ"। সংগ্রহের তারিখ ১১ আগস্ট ২০১৫ 
  6. আলেক্সান্দ্রেস্কু, আন্দ্রে (২০১০)। The D programming language (First সংস্করণ)। Upper Saddle River, New Jersey: Addison-Wesley। পৃষ্ঠা 314আইএসবিএন 0321635361 
  7. "Building assert() in Swift, Part 2: __FILE__ and __LINE__"। সংগ্রহের তারিখ ২৫ সেপ্টেম্বর ২০১৪