ulia হল প্রযুক্তিগত কম্পিউটিং-এর জন্য একটি গতিশীল, উচ্চ-স্তরের, উচ্চ-কর্মক্ষমতার ভাষা।
প্রোগ্রামিং ভাষাটির নতুন সংস্করণ জুলিয়া ১.৯-এর মুক্তির ঘোষণা কিছুদিন আগে করা হয়েছে। এতে উচ্চ কর্মক্ষমতা, ডাইনামিক টাইপিংয়ের সুবিধা এবং প্যারালাল প্রোগ্রামিংয়ের জন্য সমন্বিত টুলের মতো বৈশিষ্ট্যগুলো রয়েছে। জুলিয়ার সিনট্যাক্স ম্যাটল্যাবের মতো, তবে এতে রুবি এবং লিস্প থেকে কিছু উপাদান নেওয়া হয়েছে।
জুলিয়া সাধারণ, প্রযুক্তিগত এবং বৈজ্ঞানিক কম্পিউটিংয়ের জন্য একটি উচ্চ-স্তরের, উচ্চ-কর্মক্ষমতাসম্পন্ন, মাল্টি-প্ল্যাটফর্ম, মাল্টি-প্যারাডাইম, ডায়নামিকভাবে টাইপ করা প্রোগ্রামিং ভাষা হিসেবে স্বতন্ত্র , যার সিনট্যাক্স অন্যান্য অনুরূপ কম্পিউটিং পরিবেশের মতোই।
জুলিয়ার প্রধান খবর 1.9
জুলিয়া ১.৯-এর এই নতুন সংস্করণে বেশ কিছু রানটাইম/কম্পাইলার উন্নতি করা হয়েছে, যার মধ্যে প্রথমবার এক্সিকিউশনের সময় উল্লেখযোগ্যভাবে হ্রাস পেয়েছে। প্যাকেজ প্রি-কম্পাইলেশন এখন নেটিভ কোডকে একটি "pkgimage"-এ সংরক্ষণ করে, যার অর্থ হলো প্রি-কম্পাইলেশনের সময় তৈরি হওয়া কোড প্যাকেজ লোড করার পর আর পুনরায় কম্পাইল করার প্রয়োজন হবে না। "--pkgimages=no" অপশনটি ব্যবহার করে pkgimages মোডের ব্যবহার নিষ্ক্রিয় করা যায়।
আরেকটি উল্লেখযোগ্য পরিবর্তন হলো, এখন ইনজেকশন বা স্ট্যাটিক রেজোলিউশনের জন্য ইউনিয়ন স্প্লিটিং ব্যবহার করে নন-টাইপ-স্পেসিফিক আর্গুমেন্টসহ কলগুলোকে অপ্টিমাইজ করা যাবে , এমনকি যদি বিভিন্ন ধরনের সাবমিশন ক্যান্ডিডেটও থাকে। এটি এমন কিছু পরিস্থিতিতে পারফরম্যান্স উন্নত করতে পারে যেখানে অবজেক্ট টাইপগুলো স্ট্যাটিক্যালি সম্পূর্ণরূপে রিজলভ হয় না। এটি " @nospecialize-d" কলগুলোর সাইটগুলোকে স্ট্যাটিক্যালি রিজলভ করে এবং রিকম্পাইলেশন এড়িয়ে চলে।
একক অক্ষর লিটারাল এখন স্ট্রিং লিটারালের মতো একই সিনট্যাক্স সমর্থন করে; সেই সিনট্যাক্সগুলি অবৈধ UTF-8 সিকোয়েন্সগুলিকে উপস্থাপন করতে পারে, যেমনটি চর টাইপ দ্বারা অনুমোদিত৷
এছাড়াও, লিনাক্স এবং উইন্ডোজে, " --threads=auto " অপশনটি এখন সিপিইউ অ্যাফিনিটির উপর ভিত্তি করে উপলব্ধ প্রসেসরের সংখ্যা নির্ধারণ করার চেষ্টা করে , যা সাধারণত এইচপিসি এবং ক্লাউড পরিবেশে সেট করা একটি মাস্ক।
" --math-mode=fast " অপশনটি নিষ্ক্রিয় করা হয়েছে এবং এর পরিবর্তে " @fastmath " ম্যাক্রোটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে , যার একটি সুনির্দিষ্ট অর্থ রয়েছে। এছাড়াও, " --threads " প্যারামিটারটির ফরম্যাট এখন "auto | N[,auto|M]" , যেখানে M দ্বারা তৈরি করা ইন্টারেক্টিভ থ্রেডের সংখ্যা নির্দিষ্ট করা হয়।
যে থ্রেশহোল্ডের পরে সক্রিয় গার্বেজ কালেকশন শুরু হবে, তা নির্ধারণ করার জন্য “ –heap-size-hint=<size> ” অপশনটি যোগ করা হয়েছে । সাইজটি বাইট, কিলোবাইট (১০০০ KB), মেগাবাইট (৩০০ MB), বা গিগাবাইট (১.৫ GB)-এ নির্দিষ্ট করা যেতে পারে।
সংস্করণ ১.৭-এ প্রবর্তিত "@invoke" ম্যাক্রোটি এখন এক্সপোর্ট করা হয়েছে এবং ব্যবহারের জন্য উপলব্ধ। এছাড়াও, যখন "x" আর্গুমেন্টের জন্য টাইপ অ্যানোটেশন বাদ দেওয়া হয়, তখন এটি " Any "- এর পরিবর্তে "Core.Typeof(x)" মেথডটি ব্যবহার করে । আর্গুমেন্ট হিসেবে পাস করা টাইপগুলো সঠিকভাবে প্রসেস করার জন্য এটি প্রয়োজনীয়।
এছাড়াও, `Threads.@spawn`-এর এখন একটি ঐচ্ছিক প্রথম আর্গুমেন্ট হিসেবে `:default` অথবা `:interactive` রয়েছে। একটি ইন্টারেক্টিভ টাস্কের জন্য স্বল্প-বিলম্বের প্রতিক্রিয়া প্রয়োজন এবং এটি সংক্ষিপ্ত বা ঘন ঘন চালানোর জন্য ডিজাইন করা হয়েছে। জুলিয়া শুরু হওয়ার সময় নির্দিষ্ট করা থাকলে ইন্টারেক্টিভ টাস্কগুলো ইন্টারেক্টিভ থ্রেডে চলবে।
অন্যান্য উল্লেখযোগ্য পরিবর্তনগুলোর মধ্যে রয়েছে:
- predicate ফাংশন "!f" নেগেটিভ করা এখন একটি বেনামী ফাংশনের পরিবর্তে একটি যৌগিক ফাংশন "(!) ∘ f" প্রদান করে।
- মাত্রা বিভক্ত ফাংশন এখন একাধিক মাত্রায় কাজ করে: «প্রতিটি স্লাইস", "ইক্রো" এবং "এচকোল" একটি বস্তু ফেরত "স্লাইস» যা শিপিংকে আরও কার্যকর পদ্ধতি প্রদান করতে দেয়।
- ম্যাক্রো "@kwdef» পাবলিক API এ যোগ করা হয়েছে।
- "fld1" এ অপারেশনের ক্রম নিয়ে একটি সমস্যা সমাধান করা হয়েছে।
- বাছাই করা এখন সময়ের সাথে সাথে সবসময় স্থিতিশীল থাকে (পুনরায় ডিজাইন করা কুইকসোর্ট)।
- BLAS থ্রেডের ডিফল্ট সংখ্যা এখন ARM আর্কিটেকচারে CPU থ্রেডের সংখ্যা এবং অন্যান্য আর্কিটেকচারে CPU থ্রেডের অর্ধেক সংখ্যার সমান।
- Printf: ভাল পঠনযোগ্যতার জন্য ত্রুটিপূর্ণ স্ট্রিংগুলির জন্য পুনরায় কাজ করা ত্রুটি বার্তা।
- প্রোফাইল: নতুন ফাংশন "Profile.take_heap_snapshot(file)" যা ক্রোম দ্বারা সমর্থিত JSON-ভিত্তিক ".heapsnapshot" ফর্ম্যাটে একটি ফাইল লেখে৷
- ইউনিকোড 15 স্পেসিফিকেশনের জন্য সমর্থন যোগ করা হয়েছে।
- tuples এবং নামযুক্ত অক্ষর tuples এর নেস্টেড সমন্বয় এখন টাইপ পরামিতি হিসাবে ব্যবহার করা যেতে পারে।
অবশেষে, আপনি যদি আরও জানতে আগ্রহী হন, তাহলে নিচের লিঙ্কে বিস্তারিত তথ্য পেয়ে যাবেন ।