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

'নিম একটি জেনারেল পারপাস, মাল্টি-প্যারাডাইম, কম্পাইলড, হাই লেভেল ভিত্তিক সিস্টেম প্রোগ্রামিং ভাষা,A new systems programming language, http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321, সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৫ যা আন্দ্রেস রাম্প এবং তার দল ডিজাইন ও ডেভলপ করেছে।

নিম ভাষাটিকে "দক্ষ, অভিব্যক্তিপূর্ণ, এবং অভিজাত" হিসেবে ডিজাইন করা হয়েছে,Nim Programming Language, http://nim-lang.org/ , সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৫ যা মেটাপ্রোগ্রামিং, ফাংশনাল, মেসেজ পাসিং, পদ্ধতিগত, এবং অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং শৈলী সমর্থন করে। এটি বেশ কিছু বৈশিষ্ট্য সরবরাহ করে, যেমন কম্পাইল টাইম কোড জেনারেশন, অ্যালজেব্রিক ডাটা টাইপ, ফরেন ফাংশন ইন্টারফেস যা সি -> সি, সি++ -> সি++, অবজেক্টিভ-সি -> অবজেক্টিভ-সি, এবং জাভাস্ক্রিপ্ট -> জাভাস্ক্রিপ্ট-এর সাথে সংযোগ স্থাপন করতে পারে, এবং এই একই ভাষাগুলোতে মধ্যবর্তী উপস্থাপনা হিসেবে কম্পাইলিংও করতে সক্ষম।

 বর্ণনা 
নিম একটি স্ট্যাটিক প্রোগ্রামিং ল্যাঙ্গুয়েজ।Aaron Keher, https://akehrer.github.io/posts/getting-started-with-nim, সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৫}} এটি কম্পাইল-টাইম মেটাপ্রোগ্রামিং বৈশিষ্ট্য যেমন সিনট্যাকটিক ম্যাক্রো এবং টার্ম রি-রাইটিং ম্যাক্রো সমর্থন করে।Nim Manual, https://nim-lang.org/docs/manual.html#term-rewriting-macros website=nim-lang.org , সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৬ টার্ম রি-রাইটিং ম্যাক্রো সাধারণ ডাটা স্ট্রাকচার, যেমন বিগনাম এবং ম্যাট্রিক্স, লাইব্রেরি হিসেবে কার্যকরভাবে বাস্তবায়নের সুযোগ দেয়, যেন সেগুলো ভাষার অন্তর্নির্মিত বৈশিষ্ট্য।Strangeloop Nim presentation, https://thestrangeloop.com/sessions/nimrod-a-new-approach-to-meta-programming  , সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৫
ইটারেটর সমর্থিত এবং প্রথম শ্রেণির সত্তা হিসেবে ব্যবহার করা যায়, যেমন ফাংশনও করা যায়, যা ফাংশনাল প্রোগ্রামিং পদ্ধতির ব্যবহার সম্ভব করে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ইনহেরিটেন্স এবং মাল্টিপল ডিসপ্যাচ দ্বারা সমর্থিত। ফাংশন জেনেরিক এবং ওভারলোড করা যেতে পারে, এবং জেনেরিক্স আরও উন্নত হয় টাইপ ক্লাস সমর্থনের মাধ্যমে। অপারেটর ওভারলোডিংও সমর্থিত।
নিম একাধিক মেমরি ব্যবস্থাপনা কৌশল অন্তর্ভুক্ত করে, যেমন ট্রেসিং গারবেজ কালেকশন, রেফারেন্স কাউন্টিং, এবং সম্পূর্ণ ম্যানুয়াল পদ্ধতি। ডিফল্ট কৌশল হলো নির্ধারিত রেফারেন্স কাউন্টিং, যেখানে অপ্টিমাইজেশন করা হয় মুভ সেম্যান্টিক্স এবং রেফারেন্স কাউন্টিং -> রেফারেন্স কাউন্টিং-এর মাধ্যমে ট্রায়াল ডিলিশন।Nim's Memory Management, https://nim-lang.org/docs/mm.html , সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৫
নিম সম্পূর্ণ মৌলিক ডিজাইন উপস্থাপনের মাধ্যমে, পাস্কাল -> পাস্কাল এবং পাইথন -> পাইথন-এর মধ্যবর্তী অবস্থানে রয়েছে এবং সি -> সি অথবা জাভাস্ক্রিপ্ট -> জাভাস্ক্রিপ্ট-এ কম্পাইল করে।The Rise And Fall of Languages in 2013, http://www.drdobbs.com/jvm/the-rise-and-fall-of-languages-in-2013/240165192 , সর্বশেষ অ্যাক্সেস: ৬ মে ২০২৫

 ব্রাঞ্চ ভার্সন রিলিস  0.x  ২০১৪-১২-২৯  ২০১৫-০৫-০৪  ২০১৫-১০-২৭  ২০১৬-০১-১৮  ২০১৬-০৬-০৯  ২০১৬-১০-২৩  ২০১৭-০১-০৮  ২০১৯-০৯-০৭  ২০১৮-০৩-২১  ২০১৯-০৫-১৩  ২০১৯-০৬-১৭ 1.0  ২০১৯-০৯-২৩  ২০১৯-১০-২৭ 1.2  ২০২০-০৪-০৩  ২০২০-০৪-০৯ 1.4  ২০২০-১০-১৬  ২০২১-০৫-২৫ 1.6  ২০২১-১০-১৯  ২০২২-০৪-১৬ 2.0  ২০২৩-০৮-০১  ২০২৪-০৪-২২ 2.2  ২০২৪-১০-২  ২০২৫-০৪-২২  প্রতিটি 0.x শাখার জন্য শুধুমাত্র সর্বশেষ পয়েন্ট রিলিজটি তালিকাভুক্ত করা হয়েছে। পরবর্তী শাখাগুলোর জন্য প্রথম এবং সর্বশেষ পয়েন্ট রিলিজটি তালিকাভুক্ত করা হয়েছে। 

 কোডিং এর উদাহারণ 
নিম প্রোগ্রামিং ভাষায় কোডিং এর উদাহারণ:

let year = 2007

if year >= 2006:
    echo "অনিকেত প্রান্তর আর্টসেলের সবচেয়ে জোস গান"
else:
    echo "ভুল জন্ম আর্টসেলের সবচেয়ে জোস গান"

আউটপুট:
nim > অনিকেত প্রান্তর আর্টসেলের সবচেয়ে জোস গান

 তথ্যসূত্র  

বিষয়শ্রেণী:ফাংশনভিত্তিক প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:চলমান-টাইপকৃত প্রোগ্রামিং ভাষা