![]() | |
প্যারাডাইম | মাল্টি-প্যারাডাইম: ফাংশনাল, ইম্পারেটভ, অবজেক্ট-ওরিয়েন্টেড |
---|---|
নকশাকার | ওয়াল্টার ব্রাইট, আন্দ্রে আলেক্সান্দ্রেস্কু (২০০৭ থেকে) |
বিকাশকারী | ডি ল্যাঙ্গুয়েজ ফাউন্ডেশন |
প্রথম প্রদর্শিত | ৮ ডিসেম্বর ২০০১ |
স্থিতিশীল সংস্করণ | ২.০৮৮.০
/ ১ সেপ্টেম্বর ২০১৯ |
টাইপিং পদ্ধতি | ইনফারড, স্ট্যাটিক, স্ট্রং |
ওএস | ফ্রিবিএসডি, লিনাক্স, ম্যাকওএস, মাইক্রোসফট উইন্ডোজ |
লাইসেন্স | বুস্ট সফটওয়্যার লাইসেন্স[১][২] |
ফাইলনেম এক্সটেনশন | .d |
ওয়েবসাইট | dlang |
মুখ্য বাস্তবায়নসমূহ | |
ডিএমডি (ইন্টারফারেন্স ইমপ্লিমেন্টেশন), জিসিসি, এলডিসি, এসডিসি | |
যার দ্বারা প্রভাবিত | |
সি, সি++, সি#, আইফেল,[৩] জাভা (প্রোগ্রামিং ভাষা), পাইথন (প্রোগ্রামিং ভাষা) | |
যাকে প্রভাবিত করেছে | |
গিনি (প্রোগ্রামিং ভাষা), MiniD, Qore, সুইফট,[৪] ভালা | |
|
ডি যা ডিল্যাং (ইংরেজি) নামেও পরিচিত, হচ্ছে ওয়াল্টার ব্রাইট ও ডিজিটাল মার্স কর্তৃক তৈরীকৃত এবং ২০০১ সালে মুক্তিপ্রাপ্ত মাল্টি-প্যারাডাইম সিস্টেম প্রোগ্রামিং ভাষা। আন্দ্রে আলেক্সান্দ্রেস্কু ২০০৭ সালে এর উন্নয়ন কাজে যোগ দেন। যদিও এটি সি++ কে পূনঃপ্রকৌশল করে তৈরী করা হয়েছে, তারপরও এটি একটি স্বতন্ত্র ভাষা। এটিতে সি++ এর কিছু মূল বৈশিষ্ট্যিকে পূনঃউন্নয়ন করা হয়েছে। পাশাপাশি এটিতে রুবি, পাইথন, সি#, জাভা ও আইফেলের মতো উল্লেখযোগ্য কিছু ভাষার বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে।
এই উদাহরণ প্রোগ্রামটি তার কমান্ড লাইনের যুক্তিগুলি মুদ্রণ করে। main
ফাংশন একটি ডি প্রোগ্রামের এন্ট্রি পয়েন্ট, এবং args
কমান্ড লাইন আর্গুমেন্ট প্রতিনিধিত্বমূলক স্ট্রিং একটি অ্যারে। ডি-তে একটি string
হচ্ছে ক্যারেক্টারের একটি অ্যারে, যেটি ডি১ -এ char[]
অথবা ডি২ তে immutable(char)[]
এর প্রতিনিধিত্ব করে।
import std.stdio: writefln;
void main(string[] args)
{
foreach (i, arg; args)
writefln("args[%d] = '%s'", i, arg);
}
নীচে একটি সংক্ষিপ্ত প্রোগ্রামে বেশ কয়েকটি ডি ক্ষমতা এবং ডি নকশা ট্রেড-অফ গুলো দেখাচ্ছে। এটি words.txt
নামের একটি পাঠ্য ফাইলের লাইনের উপরে পুনরাবৃত্তি করে, যার প্রতিটি লাইনে আলাদা শব্দ রয়েছে এবং সমস্ত শব্দ মুদ্রণ করে যা অন্য শব্দের অ্যানাগ্রাম।
import std.stdio, std.algorithm, std.range, std.string;
void main() {
dstring[] [dstring] signs2words;
foreach (dchar[] w; lines(File("words.txt"))) {
w = w.chomp().toLower();
immutable key = w.dup.sort().release().idup;
signs2words[key] ~= w.idup;
}
foreach (words; signs2words) {
if (words.length > 1) {
writefln(words.join(" "));
}
}
}