প্রকল্প সম্পর্কে
kanso (簡素) একটি প্রোগ্রামিং ভাষা যা এই ধারণার উপর ভিত্তি করে তৈরি যে একটি সোর্স ফাইলে শুধুমাত্র সিদ্ধান্ত থাকা উচিত। স্টাইল গাইড, লিন্টার বা কোড রিভিউ সাধারণত যা প্রথাগতভাবে কার্যকর করে, তা এখানে কম্পাইলার দ্বারা কার্যকর করা হয়: নন-ক্যানোনিকাল স্পেসিং, ইনডেন্টেশন বা ব্ল্যাঙ্ক-লাইন প্লেসমেন্ট একটি সিনট্যাক্স এরর হিসেবে গণ্য হয়, নামগুলোতে snake_case ব্যবহৃত হয়, ডিক্লারেশন এবং রেকর্ড ফিল্ডগুলো বর্ণানুক্রমিকভাবে সাজানো থাকে এবং ওভারলোডগুলো পাশাপাশি থাকে যেখানে সবচেয়ে নির্দিষ্টটি প্রথমে থাকে। যেহেতু প্রতিটি প্রোগ্রামের ঠিক একটি ক্যানোনিকাল রেন্ডারিং থাকে, তাই কোনো ফরম্যাটার নেই।
README-তে গুরুত্ব দেওয়া হয়েছে পিউরিটি এবং ইফেক্টস-কে বর্ণনা হিসেবে ব্যবহারের বিষয়ে: print এবং >> সিকোয়েন্সিং অপারেটর কাজের একটি বর্ণনা তৈরি করে যা রানটাইম এক্সিকিউট করে, এবং --plan সহ check কমান্ডটি এটি চালানোর পরিবর্তে সেই বর্ণনাটি দেখায়। ব্যর্থতা এখানে এক্সেপশনের পরিবর্তে একটি ভ্যালু: err reason এবং none ততক্ষণ প্রোপাগেট করে যতক্ষণ না কোনো ওভারলোড সেগুলোকে ডিসপ্যাচ করে, তাই শূন্য দ্বারা ভাগ এবং আউট-অফ-রেঞ্জ ইনডেক্সিং ক্র্যাশ করার পরিবর্তে ভ্যালু রিটার্ন করে। ডিসপ্যাচ লিটারেল, কনক্রিট টাইপ এবং জেনেরিকসের উপর কাজ করে, যেখানে সবচেয়ে নির্দিষ্টটি আগে থাকে। এই ভাষাটি টাইপড ফিল্ডসহ সিঙ্গেল-কনস্ট্রাক্টর রেকর্ড টাইপ, পজিশনাল কনস্ট্রাকশন এবং পজিশনাল ও কি-ড সাবসেট উভয় ফর্মে ডিস্ট্রাকচারিং সমর্থন করে; কোথাও কোনো কমা ছাড়াই ফ্ল্যাট জুক্সটাপোজিশন অ্যাপ্লিকেশন; আরবিট্রারি-প্রিসিশন ইন্টিজার; স্ট্রিং ইন্টারপোলেশন; ১-বেসড ইনডেক্সিং সহ লিস্ট; একটি ডট পাইপ যার পাইপড ভ্যালু প্রথম আর্গুমেন্ট হয়ে ওঠে; এবং ল্যাম্বডাস সমর্থন করে। অতিরিক্ত কম্পাইল-টাইম চেকগুলো অব্যবহৃত বাইন্ডিং, অব্যবহৃত এক্সপ্রেশন, ব্যবহারের আগে রিবাইন্ডিং এবং ডিক্লেয়ার করা ফাংশন, টাইপ বা বিল্ট-ইনগুলোর শ্যাডোয়িং প্রত্যাখ্যান করে। xs[i] বা m[k] এর মাধ্যমে ইনডেক্সিং কঠোর (strict), যেখানে xs i প্রত্যাশিত অনুপস্থিতি প্রকাশ করে।
মডিউলগুলো হলো ডিরেক্টরি: একটি মডিউল একটি নেমস্পেস শেয়ার করা যেকোনো সংখ্যক ফাইল জুড়ে বিস্তৃত থাকে, আন্ডারস্কোর দিয়ে শুরু হওয়া নামগুলো মডিউল-প্রাইভেট এবং একটি অব্যবহৃত প্রাইভেট ডিক্লারেশন একটি এরর হিসেবে গণ্য হয়। README-তে জোর দেওয়া হয়েছে যে tests/golden-এ থাকা এরর করপাসটি সাকসেস করপাসের মতোই গুরুত্বপূর্ণ।
একটি v0 সেকশনে স্বীকৃত কিছু আনুমানিক বিষয় এবং ওপেন পয়েন্টের তালিকা দেওয়া হয়েছে: এন্ডপয়েন্ট রুল কম্পাইল টাইমের পরিবর্তে রানটাইমে চেক করা হয়; জেনেরিক প্যারামিটার কখনোই err বা none বাইন্ড করে না; ক্যানোনিকাল ডিক্লারেশন অর্ডার একটি ইন্টারপ্রিটেশন; পাইপ টার্গেট একটি অ্যাপ্লিকেশন হিসেবে পার্স হয় এবং নন-ক্যালেবল টার্গেট রানটাইমে ফেইল করে; if ফর্মটি সাময়িক; নেটিভ int হলো int64 এবং ওভারফ্লো কম্পাইল করা বাইনারিতে ডিফেক্ট হিসেবে ট্র্যাপ করে, যা ইন্টারপ্রিটারের bigint-এর থেকে আলাদা। টাইপসেট, রেকর্ড আপডেট, বিল্ড রিজিয়ন, প্রসেস, ইফেক্ট পলিমরফিজম এবং LSP এখনও বাস্তবায়িত হয়নি।
এডিটর সাপোর্ট হিসেবে একটি সিঙ্গেল TextMate বান্ডেল রয়েছে যা .kso ফাইলের জন্য JetBrains IDEs এবং VS Code-এ ব্যবহার করা যায়। ডেভেলপমেন্টের জন্য cargo test ব্যবহৃত হয়, যা ইউনিট টেস্ট এবং একটি গোল্ডেন-ফাইল করপাস কভার করে; প্রজেক্টটি MIT লাইসেন্সপ্রাপ্ত। ডকুমেন্টেশন, স্পেসিফিকেশন এবং কম্পাইলার নোটস একটি GitHub Pages সাইটে প্রকাশিত হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.