জুলিয়া কি?
জুলিয়া (Julia) হল একটি উচ্চ স্তরের প্রোগ্রামিং ভাষা যা বিশেষ করে গাণিতিক গণনা এবং ডেটা বৈজ্ঞানিক কাজের জন্য ডিজাইন করা হয়েছে। জুলিয়ার মূল উদ্দেশ্য হল গতি, সহজ ব্যবহার এবং শক্তিশালী বৈশিষ্ট্যগুলি মেলানো। এটি অন্যান্য ভাষার তুলনায় অনেক দ্রুত এবং এটি বিজ্ঞানী এবং প্রকৌশলীদের মধ্যে খুব জনপ্রিয়।
জুলিয়ার বৈশিষ্ট্যসমূহ:
গতি:
জুলিয়া খুব দ্রুত চলে যাতে এটি বড় ডেটাসেট এবং জটিল গণনার জন্য উপযুক্ত হয়।
সহজ ব্যবহার:
জুলিয়া শেখা এবং ব্যবহার করা সহজ, বিশেষ করে যারা প্রোগ্রামিংয়ে নতুন।
মাল্টি-পারাডাইম:
এটি বিভিন্ন প্রোগ্রামিং শৈলীকে সমর্থন করে, যেমন অবজেক্ট-ওরিয়েন্টেড এবং ফাংশনাল প্রোগ্রামিং।
প্যাকেজ সমর্থন:
জুলিয়াতে অনেক প্যাকেজ রয়েছে যা ব্যবহারকারীদের বিভিন্ন কাজ করতে সাহায্য করে।
জুলিয়া একটি উচ্চ-স্তরের , সাধারণ-উদ্দেশ্য গতিশীল প্রোগ্রামিং ভাষা , যা দ্রুত এবং উৎপাদনশীল হওয়ার জন্য ডিজাইন করা হয়েছে, যেমন ডেটা সায়েন্স, কৃত্রিম বুদ্ধিমত্তা, মেশিন লার্নিং, মডেলিং এবং সিমুলেশন, যা সাধারণত সংখ্যাসূচক বিশ্লেষণ এবং গণনা বিজ্ঞানের জন্য ব্যবহৃত হয় ।
জুলিয়ার নকশার স্বতন্ত্র দিকগুলির মধ্যে রয়েছে প্যারামেট্রিক পলিমরফিজম সহ একটি টাইপ সিস্টেম এবং একটি মূল প্রোগ্রামিং প্যারাডাইম হিসাবে একাধিক প্রেরণের ব্যবহার , একটি ডিফল্ট জাস্ট-ইন-টাইম (JIT) কম্পাইলার ( অগ্রিম-সময় সংকলনের জন্য সমর্থন সহ এবং একটি দক্ষ (মাল্টি-থ্রেডেড) আবর্জনা সংগ্রহ বাস্তবায়ন। [ 24 ] উল্লেখযোগ্যভাবে জুলিয়া এনক্যাপসুলেটেড পদ্ধতি সহ ক্লাস সমর্থন করে না এবং পরিবর্তে এটি জেনেরিক পদ্ধতি/ফাংশনগুলির সাথে সংযুক্ত নয় এমন স্ট্রাক্টের উপর নির্ভর করে।
ডিফল্টরূপে, জুলিয়া স্ক্রিপ্টিং ভাষার মতোই চালানো হয়, তার রানটাইম ব্যবহার করে, এবং ইন্টারঅ্যাকশনের অনুমতি দেয় , তবে জুলিয়া প্রোগ্রাম/ সোর্স কোড ঐচ্ছিকভাবে ব্যবহারকারীদের কাছে একটি প্রস্তুত-ইনস্টল/রান ফাইলে পাঠানো যেতে পারে, যা দ্রুত তৈরি করা যেতে পারে, কোনও কিছু আগে থেকে ইনস্টল করার প্রয়োজন হয় না।
জুলিয়া প্রোগ্রামগুলি অন্যান্য ভাষার লাইব্রেরিগুলিকে কল করে পুনঃব্যবহার করতে পারে, যেমন C অথবা Rust লাইব্রেরি কল করে, এবং জুলিয়া (লাইব্রেরি) অন্যান্য ভাষা থেকেও কল করা যেতে পারে, যেমন Python এবং R , এবং বেশ কয়েকটি জুলিয়া প্যাকেজ সেই ভাষাগুলি থেকে সহজেই উপলব্ধ করা হয়েছে, Python এবং R লাইব্রেরি আকারে সংশ্লিষ্ট জুলিয়া প্যাকেজগুলির জন্য। উভয় দিকেই কলিং অনেক ভাষার জন্য বাস্তবায়িত হয়েছে, কেবল সেই ভাষা এবং C++ নয় ।
জুলিয়া IDEs (নীচে দেখুন) এর মতো প্রোগ্রামার টুল এবং Pluto.jl, Jupyter এর মতো নোটবুক দ্বারা সমর্থিত এবং ২০২৫ সাল থেকে Google Colab আনুষ্ঠানিকভাবে জুলিয়াকে স্থানীয়ভাবে সমর্থন করে।
ইতিহাস
২০০৯ সালে জুলিয়ার উপর কাজ শুরু হয়, যখন জেফ বেজানসন , স্টেফান কার্পিনস্কি , ভাইরাল বি. শাহ এবং অ্যালান এডেলম্যান একটি মুক্ত ভাষা তৈরির লক্ষ্যে কাজ শুরু করেন যা উচ্চ-স্তরের এবং দ্রুত উভয়ই ছিল। ১৪ ফেব্রুয়ারী ২০১২ তারিখে, দলটি একটি ব্লগ পোস্ট সহ একটি ওয়েবসাইট চালু করে যেখানে ভাষার লক্ষ্য ব্যাখ্যা করা হয়েছিল। ২০১২ সালের এপ্রিলে ইনফোওয়ার্ল্ডের সাথে একটি সাক্ষাৎকারে , কার্পিনস্কি "জুলিয়া" নামটি সম্পর্কে বলেছিলেন: "আসলে এর কোনও ভাল কারণ নেই। এটি কেবল একটি সুন্দর নাম বলে মনে হয়েছিল।" বেজানসন বলেছিলেন যে তিনি একজন বন্ধুর সুপারিশে নামটি বেছে নিয়েছিলেন, তারপর কয়েক বছর পরে লিখেছিলেন:
হয়তো জুলিয়া মানে " জেফের অস্বাভাবিক লিস্প স্বয়ংক্রিয়"?
জুলিয়ার সিনট্যাক্স এখন স্থিতিশীল বলে বিবেচিত হয়, ২০১৮ সালের ১.০ সংস্করণ থেকে, এবং জুলিয়ার ১.x এর জন্য একটি ব্যাকওয়ার্ড সামঞ্জস্যের গ্যারান্টি রয়েছে এবং ডকুমেন্টেড (স্থিতিশীল) API এর জন্য একটি স্থিতিশীলতার প্রতিশ্রুতিও রয়েছে , যদিও ০.৭ এর আগের প্রাথমিক বিকাশে সিনট্যাক্স (এবং শব্দার্থবিদ্যা) নতুন সংস্করণে পরিবর্তিত হয়েছিল। সমস্ত (নিবন্ধিত প্যাকেজ) ইকোসিস্টেম নতুন এবং উন্নত সিনট্যাক্স ব্যবহার করে এবং বেশিরভাগ ক্ষেত্রে নিয়মিত যোগ করা নতুন API গুলির উপর নির্ভর করে, এবং কিছু ক্ষেত্রে সামান্য অতিরিক্ত সিনট্যাক্স একটি ফরোয়ার্ড সামঞ্জস্যপূর্ণ উপায়ে যোগ করা হয়েছে যেমন জুলিয়া ১.৭ এ।
২০১২ সালে প্রি-১.০ জুলিয়া চালু হওয়ার পর থেকে ১০ বছরে, সম্প্রদায়টি বৃদ্ধি পেয়েছে। জুলিয়া প্যাকেজ ইকোসিস্টেমে ১১.৮ মিলিয়নেরও বেশি কোড লাইন রয়েছে (ডক্স এবং পরীক্ষা সহ)। জুলিয়া ব্যবহারকারী এবং ডেভেলপারদের জন্য জুলিয়াকন একাডেমিক সম্মেলন ২০১৪ সাল থেকে প্রতি বছর অনুষ্ঠিত হচ্ছে যেখানে জুলিয়াকন২০২০ ২৮,৯০০ জনেরও বেশি অনন্য দর্শককে স্বাগত জানিয়েছে, এবং তারপরে জুলিয়াকন ২০২১ পূর্ববর্তী সমস্ত রেকর্ড ভেঙে দিয়েছে (ইউটিউবে ৩০০ জনেরও বেশি জুলিয়াকন২০২১ উপস্থাপনা বিনামূল্যে পাওয়া যাচ্ছে, যা আগের বছর ১৬২ থেকে বেশি) এবং সম্মেলনের সময় ৪৩,০০০ অনন্য দর্শক ছিল।
জুলিয়ার সহ-নির্মাতাদের মধ্যে তিনজন হলেন ২০১৯ সালের জেমস এইচ. উইলকিনসন পুরস্কার ফর নিউমেরিক্যাল সফটওয়্যার (প্রতি চার বছর অন্তর প্রদান করা হয়) "জুলিয়ার সৃষ্টির জন্য, যা উচ্চ-কার্যক্ষমতাসম্পন্ন সরঞ্জাম তৈরির জন্য একটি উদ্ভাবনী পরিবেশ যা গণনামূলক বিজ্ঞানের সমস্যা বিশ্লেষণ এবং সমাধান সক্ষম করে।" এছাড়াও, এমআইটি -তে প্রয়োগিত গণিতের অধ্যাপক অ্যালান এডেলম্যানকে " উচ্চ-কার্যক্ষমতাসম্পন্ন কম্পিউটিং, রৈখিক বীজগণিত এবং গণনামূলক বিজ্ঞানে অসামান্য সাফল্যের জন্য এবং জুলিয়া প্রোগ্রামিং ভাষায় অবদানের জন্য" ২০১৯ সালের IEEE কম্পিউটার সোসাইটি সিডনি ফার্নবাখ পুরস্কার পাওয়ার জন্য নির্বাচিত করা হয়েছে।
জুলিয়া ০.৭ এবং সংস্করণ ১.০ উভয়ই ৮ আগস্ট ২০১৮ তারিখে প্রকাশিত হয়েছিল। জুলিয়া ০.৭-এর কাজ ছিল একটি "বিশাল উদ্যোগ" (যেমন, "সম্পূর্ণ নতুন অপ্টিমাইজার" এর কারণে), এবং শব্দার্থবিদ্যায় কিছু পরিবর্তন করা হয়েছিল, যেমন পুনরাবৃত্তি ইন্টারফেস সরলীকৃত করা হয়েছিল। ] জুলিয়া ১.৬ ছিল ১.০-এর পর থেকে সবচেয়ে বড় রিলিজ, এবং এটি দীর্ঘতম সময়ের জন্য দীর্ঘমেয়াদী সমর্থন (LTS) সংস্করণ ছিল, অনেক ক্ষেত্রে দ্রুততর, যেমন সমান্তরাল প্রিকম্পাইলেশন এবং প্যাকেজগুলির দ্রুত লোডিং চালু করা হয়েছিল, কিছু ক্ষেত্রে "বাইনারি আর্টিফ্যাক্টের বৃহৎ গাছের জন্য লোড সময়ের ৫০ গুণ গতি বৃদ্ধি"। ১.৭ সাল থেকে জুলিয়া ডেভেলপমেন্ট সময়-ভিত্তিক রিলিজে ফিরে এসেছে । জুলিয়া ১.৭ নভেম্বর ২০২১ সালে অনেক পরিবর্তন সহ মুক্তি পায়, যেমন একটি নতুন দ্রুত র্যান্ডম-নম্বর জেনারেটর এবং জুলিয়া ১.৭.৩ সংশোধন করা হয়েছে যেমন কমপক্ষে একটি নিরাপত্তা সমস্যা। [ 38 ] জুলিয়া 1.8 2022 সালে এবং 1.8.5 2023 সালের জানুয়ারিতে প্রকাশিত হয়েছিল, সোর্স কোড ছাড়াই জুলিয়া প্রোগ্রাম বিতরণের জন্য 1.8.x উন্নতি এবং কম্পাইলারের গতি বৃদ্ধি, কিছু ক্ষেত্রে 25% বৃদ্ধি, [ 40 ] এবং আরও নিয়ন্ত্রণযোগ্য ইনলাইনিং (অর্থাৎ এখন কল সাইটে প্রয়োগ করার অনুমতিও দেওয়া হচ্ছে @inline, কেবল ফাংশনেই নয়)। জুলিয়া 1.9 7 মে 2023 তারিখে প্রকাশিত হয়েছিল। এতে অনেক উন্নতি রয়েছে, যেমন প্যাকেজগুলিকে নেটিভ মেশিন কোডে প্রিকম্পাইল করার ক্ষমতা (পুরাতন জুলিয়া সংস্করণগুলিতে প্যাকেজগুলির জন্য প্রিকম্পাইলেশনও রয়েছে, তবে কেবল আংশিক, কখনও সম্পূর্ণরূপে নেটিভ কোডে নয়, তাই পূর্ববর্তী সংস্করণগুলিতে "প্রথম ব্যবহার" জরিমানা ছিল, সম্পূর্ণরূপে কম্পাইল করার অপেক্ষায় ধীর হয়ে যায়)। ১.৯ সংস্করণ থেকে প্রি-কম্পাইল করা প্যাকেজগুলি প্রথম ব্যবহারে শত শত গুণ দ্রুত হতে পারে (যেমন CSV.jl এবং DataFrames.jl এর জন্য ), এবং প্যাকেজগুলির প্রি-কম্পাইলেশন উন্নত করার জন্য একটি নতুন প্যাকেজ PrecompileTools.jl চালু করা হয়েছে। জুলিয়া ১.১০ ২৫ ডিসেম্বর ২০২৩ তারিখে মুক্তি পায়, অনেক নতুন বৈশিষ্ট্য সহ, যেমন সমান্তরাল আবর্জনা সংগ্রহ, উন্নত প্যাকেজ লোড সময় এবং একটি নতুন পার্সার, অর্থাৎ এটি জুলিয়াতে পুনর্লিখিত, আরও ভাল ত্রুটি বার্তা এবং উন্নত স্ট্যাকট্রেস রেন্ডারিং সহ।
জুলিয়া ১.১১ ৭ অক্টোবর ২০২৪ তারিখে প্রকাশিত হয় (এবং ১৪ এপ্রিল ২০২৫ তারিখে ১.১১.৫), এবং এর সাথে ১.১০.৫ পরবর্তী দীর্ঘমেয়াদী সমর্থন (LTS) সংস্করণে পরিণত হয় (অর্থাৎ এগুলিই কেবল দুটি সমর্থিত সংস্করণ), যেহেতু ১০ মার্চ প্রকাশিত ১.১০.৮ দ্বারা প্রতিস্থাপিত হয়েছিল এবং ১.৬ আর LTS সংস্করণ নয়। জুলিয়া ১.১১ যেমন সমান্তরাল আবর্জনা সংগ্রহ এবং publicনিরাপদ পাবলিক API সংকেত দেওয়ার জন্য একটি নতুন কীওয়ার্ড যুক্ত করে (জুলিয়া ব্যবহারকারীদের জুলিয়া বা প্যাকেজের অভ্যন্তরীণ নয় এমন API ব্যবহার করার পরামর্শ দেওয়া হয়, এবং প্যাকেজ লেখকদের পরামর্শ দেওয়া হয় যে কীওয়ার্ডটি ব্যবহার করার জন্য, সাধারণত পরোক্ষভাবে, যেমন @compatম্যাক্রোর সাথে প্রিফিক্স করা হয়েছে, Compat.jl থেকে , পুরানো জুলিয়া সংস্করণগুলিকে সমর্থন করার জন্য, অন্তত LTS সংস্করণ)। জুলিয়া ১.১১.১ এর স্টার্টআপ অনেক উন্নত হয়েছে (১.১১.০ এর বেশি যার একটি রিগ্রেশন ছিল), এবং ১.১০ এর বেশি, এবং এটি কিছু বেঞ্চমার্কের জন্য গুরুত্বপূর্ণ হতে পারে।
juliacআসন্ন জুলিয়া ১.১২-তে উপলব্ধ বাইনারি এক্সিকিউটেবলের সাহায্যে অনেক ছোট এক্সিকিউটেবল সম্ভব ।
জুলিয়াকন
২০১৪ সাল থেকে, [ 42 ] জুলিয়া কমিউনিটি ডেভেলপার এবং ব্যবহারকারীদের উপর দৃষ্টি নিবদ্ধ করে একটি বার্ষিক জুলিয়া সম্মেলন আয়োজন করে আসছে। প্রথম জুলিয়াকন শিকাগোতে অনুষ্ঠিত হয়েছিল এবং সম্মেলনের বার্ষিক অনুষ্ঠান শুরু হয়েছিল। ২০১৪ সাল থেকে, সম্মেলনটি MIT [ 43 ] এবং মেরিল্যান্ড বিশ্ববিদ্যালয়, বাল্টিমোর সহ বেশ কয়েকটি স্থানে অনুষ্ঠিত হয়েছে। [ 44 ] জুলিয়াকন ২০২০-তে ইভেন্টের দর্শক সংখ্যা কয়েক ডজন থেকে বেড়ে ২৮,৯০০-এরও বেশি হয়েছে , যা ভার্চুয়ালি অনুষ্ঠিত হয়েছিল । জুলিয়াকন ২০২১ও ভার্চুয়ালি অনুষ্ঠিত হয়েছিল [ 46] যেখানে অধ্যাপক উইলিয়াম কাহান , IEEE 754 ফ্লোটিং-পয়েন্ট স্ট্যান্ডার্ডের প্রধান স্থপতি (যা জুলিয়া সহ কার্যত সমস্ত CPU এবং ভাষা ব্যবহার করে), [ 47 ] জান ভিটেক, [ 48 ] জিয়াওয়ে শেরি লি এবং পাইটর্চের সহ-নির্মাতা সৌমিথ চিন্তালা মূল বক্তব্য রাখেন । [ 49 ] জুলিয়াকন ৪৩,০০০ অনন্য অংশগ্রহণকারী এবং ৩০০ টিরও বেশি উপস্থাপনায় উন্নীত হয়েছে (এখনও বিনামূল্যে অ্যাক্সেসযোগ্য, এবং পুরানো বছরগুলির জন্য)। জুলিয়াকন ২০২২ ২৭ জুলাই থেকে ২৯ জুলাই, ২০২২ এর মধ্যে ভার্চুয়ালভাবে অনুষ্ঠিত হবে, প্রথমবারের মতো কেবল ইংরেজিতেই নয়, বেশ কয়েকটি ভাষায়।
স্পনসর
প্রকল্পের দীর্ঘমেয়াদী স্থায়িত্ব নিশ্চিত করার লক্ষ্যে ২০১৪ সালে জুলিয়া ভাষাটি একটি NumFOCUS আর্থিকভাবে স্পনসরিত প্রকল্পে পরিণত হয়। [ 50 ] MIT লিঙ্কন ল্যাবরেটরির জেরেমি কেপনার জুলিয়া প্রকল্পের প্রাথমিক দিনগুলিতে প্রতিষ্ঠাতা স্পনসর ছিলেন। এছাড়াও, গর্ডন এবং বেটি মুর ফাউন্ডেশন , আলফ্রেড পি. স্লোয়ান ফাউন্ডেশন , ইন্টেল এবং NSF , DARPA , NIH , NASA এবং FAA এর মতো সংস্থাগুলির তহবিল জুলিয়ার উন্নয়নের জন্য অপরিহার্য ছিল। [ 51 ] Firefox ওয়েব ব্রাউজারের নির্মাতা Mozilla , H1 2019 এর জন্য তার গবেষণা অনুদানের মাধ্যমে, "Bringing Julia to the Browser" প্রকল্পের জন্য "অফিসিয়াল জুলিয়া দলের সদস্য" স্পনসর করেছে, [ 52 ] Firefox এবং অন্যান্য ওয়েব ব্রাউজারগুলির অর্থ। GitHub-এ পৃথক দাতাদের দ্বারাও জুলিয়া ভাষা সমর্থিত। [ 57 ]
জুলিয়া কোম্পানি
জুলিয়াহাব, ইনকর্পোরেটেড ২০১৫ সালে জুলিয়া কম্পিউটিং, ইনকর্পোরেটেড হিসেবে ভাইরাল বি. শাহ , দীপক ভিঞ্চি, অ্যালান এডেলম্যান , জেফ বেজানসন , স্টেফান কার্পিনস্কি এবং কেনো ফিশার দ্বারা প্রতিষ্ঠিত হয়েছিল । [ 58 ] [ 59 ]
২০১৭ সালের জুন মাসে, জুলিয়া কম্পিউটিং জেনারেল ক্যাটালিস্ট এবং ফাউন্ডার কালেক্টিভ থেকে ৪.৬ মিলিয়ন মার্কিন ডলারের বীজ তহবিল সংগ্রহ করে, [ 60 ] একই মাসে " আলফ্রেড পি. স্লোয়ান ফাউন্ডেশন কর্তৃক ওপেন-সোর্স জুলিয়া উন্নয়নকে সমর্থন করার জন্য $৯১০,০০০ অনুদান দেওয়া হয়েছিল , যার মধ্যে জুলিয়া সম্প্রদায়ের বৈচিত্র্য প্রচারের জন্য $১৬০,০০০ অন্তর্ভুক্ত ছিল", [ 61 ] এবং ২০১৯ সালের ডিসেম্বরে কোম্পানিটি মার্কিন সরকারের কাছ থেকে $১.১ মিলিয়ন তহবিল পেয়েছে " ভবনগুলিতে তাপীকরণ, বায়ুচলাচল এবং এয়ার কন্ডিশনিং (HVAC) সিস্টেমের মোট শক্তি খরচ কমাতে একটি নিউরাল কম্পোনেন্ট মেশিন লার্নিং টুল তৈরি করার জন্য"। [ 62 ] ২০২১ সালের জুলাই মাসে, জুলিয়া কম্পিউটিং ঘোষণা করে যে তারা ডরিল্টন ভেঞ্চার্সের নেতৃত্বে $২৪ মিলিয়ন সিরিজ এ রাউন্ড সংগ্রহ করেছে , [ 63 ] যা ফর্মুলা ১ টিম উইলিয়ামস রেসিংয়েরও মালিক , যা জুলিয়া কম্পিউটিংয়ের সাথে অংশীদারিত্ব করেছে। উইলিয়ামসের বাণিজ্যিক পরিচালক বলেন: "ডরিলটন এবং জুলিয়ার বহুমুখী প্ল্যাটফর্মের জন্য সেরা ক্লাউড প্রযুক্তি তৈরির ক্ষেত্রে বিনিয়োগ করা একটি কৌশলগত লক্ষ্য, যেখানে সিমুলেশন এবং মডেলিংয়ে বিপ্লবী ক্ষমতা রয়েছে, আমাদের ব্যবসার জন্য অত্যন্ত প্রাসঙ্গিক। আমরা বিশ্বের সবচেয়ে প্রযুক্তিগতভাবে উন্নত খেলাধুলায় জুলিয়া কম্পিউটিংকে অন্তর্ভুক্ত করার জন্য উন্মুখ"। [ 64 ] ২০২৩ সালের জুনে, জুলিয়াহাব (আবার, এখন তার নতুন নামে) AE ইন্ডাস্ট্রিয়াল পার্টনারস হরাইজনএক্স ("AEI হরাইজনএক্স") এর নেতৃত্বে ১৩ মিলিয়ন ডলারের কৌশলগত নতুন বিনিয়োগ পেয়েছে। AEI হরাইজনএক্স হল বোয়িং কোম্পানির সাথে অংশীদারিত্বে গঠিত একটি ভেঞ্চার ক্যাপিটাল বিনিয়োগ প্ল্যাটফর্ম , যা জুলিয়া ব্যবহার করে। [ 65 ] জুলিয়া ১.৯ (প্রতিক্রিয়াশীলতা উন্নত করা) নিয়ে টিম হলির কাজ ( সেন্ট জুকারবার্গ ইনিশিয়েটিভের ওয়াশিংটন বিশ্ববিদ্যালয়ে ) চ্যান জুকারবার্গ ইনিশিয়েটিভ দ্বারা অর্থায়ন করা হয়েছিল ।
ভাষার বৈশিষ্ট্য
উইকিবুকসে এই বিষয়ে একটি বই রয়েছে: জুলিয়ার সাথে পরিচয় করিয়ে দেওয়া
জুলিয়া একটি সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা , [ 66 ] যদিও এটি মূলত সংখ্যাসূচক/প্রযুক্তিগত কম্পিউটিংয়ের জন্যও তৈরি করা হয়েছিল। এটি নিম্ন-স্তরের সিস্টেম প্রোগ্রামিং , [ 67 ] স্পেসিফিকেশন ভাষা হিসেবে , [ 68 ] উচ্চ-স্তরের সংশ্লেষণ (HLS) টুল (হার্ডওয়্যারের জন্য, যেমন FPGA ), [ 69 ] এবং ওয়েব প্রোগ্রামিং [ 70 ] উভয় সার্ভারে [ 71 ] [ 72 ] এবং ক্লায়েন্ট [ 73 ] [ 74 ] উভয় দিকেই কার্যকর।
ভাষার প্রধান বৈশিষ্ট্যগুলি হল:
একাধিক প্রেরণ: আর্গুমেন্ট প্রকারের সংমিশ্রণ জুড়ে ফাংশন আচরণ সংজ্ঞায়িত করার ক্ষমতা প্রদান করে
ডায়নামিক টাইপ সিস্টেম: ডকুমেন্টেশন, অপ্টিমাইজেশন এবং প্রেরণের জন্য প্রকার
সি-এর মতো স্ট্যাটিক্যালি-টাইপ করা ভাষার পারফরম্যান্সের কাছাকাছি
একটি অন্তর্নির্মিত প্যাকেজ ম্যানেজার
লিস্পের মতো ম্যাক্রো এবং অন্যান্য মেটাপ্রোগ্রামিং সুবিধা
সমান্তরাল এবং বিতরণকৃত কম্পিউটিংয়ের জন্য ডিজাইন করা হয়েছে
কোরোটিন : হালকা সবুজ থ্রেডিং
বিভিন্ন ধরণের আর্গুমেন্টের জন্য স্বয়ংক্রিয়ভাবে কোড তৈরি করা
সংখ্যাসূচক এবং অন্যান্য ধরণের জন্য এক্সটেনসিবল রূপান্তর এবং প্রচার
মাল্টিপল ডিসপ্যাচ ( লিস্পে মাল্টিমেথড নামেও পরিচিত) হল একক ডিসপ্যাচের একটি সাধারণীকরণ - পাইথন , সি++ , জাভা , জাভাস্ক্রিপ্ট এবং স্মলটকের মতো সাধারণ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ভাষাগুলিতে ব্যবহৃত পলিমরফিক প্রক্রিয়া - যা উত্তরাধিকার ব্যবহার করে । জুলিয়াতে, সমস্ত কংক্রিট প্রকারগুলি বিমূর্ত প্রকারের উপপ্রকার , প্রত্যক্ষ বা পরোক্ষভাবে প্রকারের উপপ্রকার , যা প্রকার অনুক্রমের শীর্ষে। কংক্রিট প্রকারগুলিকে অন্যান্য ভাষায় যেভাবে উপপ্রকার করা যায় সেভাবে উপপ্রকার করা যায় না; পরিবর্তে রচনা ব্যবহার করা হয় ( উত্তরাধিকার বনাম উপ-টাইপিং দেখুন )। Any
ডিফল্টরূপে, ব্যবহারকারী-প্রদত্ত সোর্স কোড চালানোর সময় জুলিয়া রানটাইমটি আগে থেকে ইনস্টল করা থাকতে হবে। বিকল্পভাবে, জুলিয়া (GUI) অ্যাপগুলিকে AppBundler.jl [ 25 ] এর সাহায্যে একটি একক ফাইলে দ্রুত একত্রিত করা যেতে পারে "আধুনিক ডেস্কটপ অ্যাপ্লিকেশন ইনস্টলার ফর্ম্যাটে জুলিয়া GUI অ্যাপ্লিকেশন তৈরি করার জন্য। এটি লিনাক্সের জন্য Snap, উইন্ডোজের জন্য MSIX এবং MacOS এর জন্য DMG ব্যবহার করে লক্ষ্যবস্তু হিসাবে। এটি অ্যাপের মধ্যে সম্পূর্ণ জুলিয়াকে বান্ডিল করে"। [ 75 ] PackageCompiler.jl এমন স্বতন্ত্র এক্সিকিউটেবল তৈরি করতে পারে যা চালানোর জন্য জুলিয়া সোর্স কোডের প্রয়োজন হয় না। [ 21 ]
জুলিয়াতে, সবকিছুই একটি বস্তু, অনেকটা অবজেক্ট-ওরিয়েন্টেড ভাষার মতো; তবে, বেশিরভাগ অবজেক্ট-ওরিয়েন্টেড ভাষার বিপরীতে, সমস্ত ফাংশন একক প্রেরণের পরিবর্তে পদ্ধতি নির্বাচন করতে একাধিক প্রেরণ ব্যবহার করে।
বেশিরভাগ প্রোগ্রামিং প্যারাডিজম জুলিয়ার হোমোইকোনিক ম্যাক্রো এবং প্যাকেজ ব্যবহার করে বাস্তবায়িত করা যেতে পারে। লিস্প ম্যাক্রোর মতো জুলিয়ার সিনট্যাকটিক ম্যাক্রো ( মেটাপ্রোগ্রামিংয়ের জন্য ব্যবহৃত ), সি-এর মতো কিছু অন্যান্য ভাষার প্রিপ্রসেসরের ক্ষেত্রে ব্যবহৃত টেক্সট-সাবস্টিটিউশন ম্যাক্রোর চেয়ে বেশি শক্তিশালী, কারণ তারা অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি (ASTs) এর স্তরে কাজ করে । জুলিয়ার ম্যাক্রো সিস্টেমটি স্বাস্থ্যকর , তবে ইচ্ছাকৃতভাবে ক্যাপচার সমর্থন করে (যেমন অ্যানাফোরিক ম্যাক্রোর জন্য ) কনস্ট্রাক্ট ব্যবহার করে। esc
জুলিয়া লিস্পের বিভিন্ন উপভাষা থেকে অনুপ্রেরণা গ্রহণ করে, যার মধ্যে রয়েছে স্কিম এবং কমন লিস্প , এবং এটি ডিলানের সাথে অনেক বৈশিষ্ট্য ভাগ করে নেয় , এটি একটি মাল্টিপল-ডিসপ্যাচ-ভিত্তিক গতিশীল ভাষা (যা লিস্প-সদৃশ উপসর্গ সিনট্যাক্সের পরিবর্তে একটি ইনফিক্স সিনট্যাক্স বৈশিষ্ট্যযুক্ত, যখন জুলিয়াতে "সবকিছু" [ 76 ] একটি অভিব্যক্তি ), এবং ফোর্ট্রেসের সাথে , আরেকটি সংখ্যাসূচক প্রোগ্রামিং ভাষা (যা একাধিক প্রেরণ এবং একটি পরিশীলিত প্যারামেট্রিক টাইপ সিস্টেম বৈশিষ্ট্যযুক্ত)। যদিও কমন লিস্প অবজেক্ট সিস্টেম (CLOS) কমন লিস্পে একাধিক প্রেরণ যোগ করে, সমস্ত ফাংশন জেনেরিক ফাংশন নয়।
জুলিয়া, ডিলান এবং ফোর্ট্রেসে, এক্সটেনসিবিলিটি ডিফল্ট, এবং সিস্টেমের অন্তর্নির্মিত ফাংশনগুলি সমস্ত জেনেরিক এবং এক্সটেনসিবল। ডিলানে, মাল্টিপল ডিসপ্যাচ জুলিয়ার মতোই মৌলিক: সমস্ত ব্যবহারকারী-সংজ্ঞায়িত ফাংশন এবং এমনকি মৌলিক বিল্ট-ইন অপারেশনগুলিও জেনেরিক। তবে, ডিলানের টাইপ সিস্টেম প্যারামেট্রিক প্রকারগুলিকে সম্পূর্ণরূপে সমর্থন করে না, যা ভাষার ML বংশের+ আরও সাধারণ। ডিফল্টরূপে, CLOS কমন লিস্পের প্যারামেট্রিক প্রকারগুলিতে প্রেরণের অনুমতি দেয় না; এই ধরনের বর্ধিত প্রেরণ শব্দার্থবিদ্যা শুধুমাত্র CLOS মেটাঅবজেক্ট প্রোটোকলের মাধ্যমে একটি এক্সটেনশন হিসাবে যোগ করা যেতে পারে । কনভারজেন্ট ডিজাইনের মাধ্যমে, ফোর্ট্রেসে প্যারামেট্রিক প্রকারগুলিতে একাধিক প্রেরণের বৈশিষ্ট্যও রয়েছে; তবে জুলিয়ার বিপরীতে, ফোর্ট্রেস গতিশীলভাবে টাইপ করার পরিবর্তে স্ট্যাটিকভাবে টাইপ করা হয়, পৃথক কম্পাইলিং এবং এক্সিকিউটিং পর্যায় সহ। ভাষার বৈশিষ্ট্যগুলি নিম্নলিখিত টেবিলে সংক্ষিপ্ত করা হয়েছে:
ভাষা টাইপ সিস্টেম জেনেরিক ফাংশন প্যারামেট্রিক প্রকারভেদ
জুলিয়া গতিশীল ডিফল্ট হাঁ
কমন লিস্প গতিশীল অপ্ট-ইন করুন হ্যাঁ (কিন্তু কোনও প্রেরণ নেই)
ডিলান গতিশীল ডিফল্ট আংশিক (কোনও প্রেরণ নেই)
দুর্গ স্থির ডিফল্ট হাঁ
জুলিয়ার এক্সটেনসিবিলিটির একটি উদাহরণ, Unitful.jl প্যাকেজটি ভাষাতে পরিমাপের ভৌত এককের জন্য সমর্থন যোগ করে ।
আন্তঃকার্যক্ষমতা
জুলিয়া ম্যাক্রো ব্যবহার করে সি বা ফোর্টরান ভাষার লাইব্রেরিগুলিতে কল করার জন্য অন্তর্নির্মিত সমর্থন @ccallপ্রদান করে। অতিরিক্ত লাইব্রেরি ব্যবহারকারীদের পাইথন , [ 77 ] সি++ , [ 78 ] [ 79 ] রাস্ট , আর , [ 80 ] জাভা [ 81 ] এর মতো অন্যান্য ভাষা থেকে কল করতে এবং SQL এর সাথে ব্যবহার করতে দেয় । [ 82 ] [ 83 ] [ 84 ] [ 85 ]
আলাদাভাবে কম্পাইল করা এক্সিকিউটেবল বিকল্প
জুলিয়াকে PackageCompiler.jl ব্যবহার করে বাইনারি এক্সিকিউটেবলে কম্পাইল করা যেতে পারে । [ 21 ] StaticCompiler.jl দ্বারা প্রদত্ত ভাষার একটি স্ট্যাটিক উপসেট ব্যবহার করে ছোট এক্সিকিউটেবলও লেখা যেতে পারে যা রানটাইম প্রেরণ সমর্থন করে না (বা আবর্জনা সংগ্রহ, কারণ এটি প্রদানকারী রানটাইম বাদ দেয়)। [ 86 ]
মিথষ্ক্রিয়া
জুলিয়া অফিসিয়াল ডিস্ট্রিবিউশনে একটি ইন্টারেক্টিভ কমান্ড-লাইন রিড-ইভাল-প্রিন্ট লুপ (REPL) অন্তর্ভুক্ত রয়েছে, [ 87 ] যার মধ্যে একটি অনুসন্ধানযোগ্য ইতিহাস, ট্যাব সমাপ্তি এবং ডেডিকেটেড হেল্প এবং শেল মোড রয়েছে, [ 88 ] যা দ্রুত কোড পরীক্ষা এবং পরীক্ষা করার জন্য ব্যবহার করা যেতে পারে। [ 89 ] নিম্নলিখিত খণ্ডটি একটি নমুনা সেশন উদাহরণ উপস্থাপন করে যেখানে স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে সংযুক্ত করা হয় println: [ 90 ]
julia> p ( x ) = 2 x ^ 2 + 1 ; f ( x , y ) = 1 + 2 p ( x ) y julia> println ( "হ্যালো ওয়ার্ল্ড!" , "আমি ক্লাউডে আছি" , f ( 0 , 4 ), " জুলিয়া স্বীকৃত সিনট্যাক্স সমর্থন করে!" ) হ্যালো ওয়ার্ল্ড! আমি ক্লাউড 9 এ আছি কারণ জুলিয়া স্বীকৃত সিনট্যাক্স সমর্থন করে!
REPL ব্যবহারকারীকে সিস্টেম শেল এবং টু হেল্প মোডে অ্যাক্সেস দেয়, যথাক্রমে প্রম্পট টিপে ;বা পরে (প্রতিটি কমান্ডের আগে)। এটি কমান্ডের ইতিহাসও সংরক্ষণ করে, সেশনের মধ্যে সহ। [ 91 ] কোডটি জুলিয়ার ইন্টারেক্টিভ সেশনের ভিতরে পরীক্ষা করা যেতে পারে অথবা এক্সটেনশন সহ একটি ফাইলে সংরক্ষণ করা যেতে পারে এবং কমান্ড লাইন থেকে এটি টাইপ করে চালানো যেতে পারে: [ 76 ]?.jl
$ জুলিয়া <ফাইলের নাম>
জুলিয়া UTF-8 এবং LaTeX কোড ব্যবহার করে, যা অনেক অপারেটরের জন্য সাধারণ গাণিতিক প্রতীকগুলিকে সমর্থন করে, যেমন inঅপারেটরের জন্য ∈, যা \inতারপর টিপে টাইপ করা যায় Tab ↹(অর্থাৎ LaTeX কোড ব্যবহার করে, অথবা কেবল কপি-পেস্ট করেও সম্ভব, যেমন √ এবং ∛ sqrt এবং cbrt ফাংশনের জন্য সম্ভব )। জুলিয়া বিশ্বের ভাষাগুলির জন্য ইউনিকোড 15.1 (জুলিয়া 1.12-DEV সর্বশেষ 16.0 রিলিজ [ 92 ] সমর্থন করে ) সমর্থন করে, এমনকি সোর্স কোডের জন্যও, যেমন ভেরিয়েবলের নাম (যদিও পাবলিক কোডের জন্য ইংরেজি ব্যবহার করার পরামর্শ দেওয়া হয়, এবং যেমন প্যাকেজের নাম)।
জুলিয়া জুপিটার দ্বারা সমর্থিত , একটি অনলাইন ইন্টারেক্টিভ "নোটবুক" পরিবেশ, [ 93 ] এবং Pluto.jl , একটি "প্রতিক্রিয়াশীল নোটবুক" (যেখানে নোটবুকগুলি বিশুদ্ধ জুলিয়া ফাইল হিসাবে সংরক্ষণ করা হয়), যা পূর্ববর্তী ধরণের সম্ভাব্য প্রতিস্থাপন। [ 94 ] এছাড়াও, Posit's (পূর্বে RStudio Inc's) Quarto প্রকাশনা ব্যবস্থা জুলিয়া, পাইথন, R এবং অবজারভেবল জাভাস্ক্রিপ্ট সমর্থন করে (এই ভাষাগুলি কোম্পানির দ্বারা অফিসিয়াল সমর্থন পায়, এবং এমনকি একই নোটবুক নথিতে একত্রিত করা যেতে পারে, আরও ভাষা অনানুষ্ঠানিকভাবে সমর্থিত)। [ 95 ] [ 96 ]
REPL অতিরিক্ত মোডের সাথে বাড়ানো যেতে পারে, এবং এটি প্যাকেজগুলির সাথে ব্যবহার করা হয়েছে, যেমন একটি SQL মোড সহ, [ 97 ] ডাটাবেস অ্যাক্সেসের জন্য, এবং RCall.jl R ভাষার সাথে কাজ করার জন্য একটি R মোড যোগ করে । [ 98 ]
জুলিয়ার ভিজ্যুয়াল স্টুডিও কোড এক্সটেনশনটি "বিল্ট-ইন ডায়নামিক অটোকমপ্লিশন, ইনলাইন ফলাফল, প্লট প্যান, ইন্টিগ্রেটেড REPL, ভেরিয়েবল ভিউ, কোড নেভিগেশন এবং আরও অনেক উন্নত ভাষা বৈশিষ্ট্য" সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত সমন্বিত উন্নয়ন পরিবেশ প্রদান করে [ 99 ] যেমন ডিবাগিং, লিন্টিং এবং প্রোফাইলিং সম্ভব । [ 100 ] [ 101 ] [ 102 ] [ 103 ]
অন্যান্য ভাষার সাথে ব্যবহার করুন
জুলিয়া বাস্তবে অন্যান্য ভাষার সাথে আন্তঃব্যবহারযোগ্য , প্রকৃতপক্ষে জনপ্রিয় ব্যবহারের শীর্ষ ২০টি ভাষার বেশিরভাগই। জুলিয়াকে ভাগ করা লাইব্রেরি ফাংশনগুলিকে পৃথকভাবে কল করতে ব্যবহার করা যেতে পারে, যেমন C বা Fortran-এ লেখা, এবং প্যাকেজগুলি অন্যান্য ভাষাগুলিতে কল করার অনুমতি দেওয়ার জন্য উপলব্ধ (যা সরাসরি C-রপ্তানি করা ফাংশন সরবরাহ করে না), যেমন Python ( PythonCall.jl সহ ), R, [ 104 ] MATLAB, C# (এবং DotNET.jl সহ অন্যান্য .NET ভাষা , তাদের থেকে JdotNET সহ ), JavaScript, Java (এবং অন্যান্য JVM ভাষা, যেমন JavaCall.jl সহ Scala )। এবং অন্যান্য ভাষার প্যাকেজগুলি জুলিয়াতে কল করার অনুমতি দেয়, যেমন Python, R (বর্তমানে জুলিয়া 1.10.x তে সম্ভব [ 105 ] ), Rust , Ruby, অথবা C#। যেমন juliacall ( PythonCall.jl এর অংশ ) দিয়ে Python থেকে কল করা এবং JuliaCall এর জন্য একটি ভিন্ন প্যাকেজ, R থেকে 1.10.x পর্যন্ত Julia। Julia হার্ডওয়্যারের জন্যও ব্যবহার করা হয়েছে, অর্থাৎ VHDL এ কম্পাইল করার জন্য , একটি উচ্চ-স্তরের সংশ্লেষণ সরঞ্জাম হিসেবে, উদাহরণস্বরূপ FPGAs । [ 69 ]
জুলিয়ার মার্কআপ ভাষা সমর্থনকারী প্যাকেজ রয়েছে যেমন HTML (এবং HTTP এর জন্যও ), XML , JSON এবং BSON , এবং ডাটাবেসের জন্য (যেমন PostgreSQL, [ 106 ] Mongo, [ 107 ] Oracle, TimesTen সহ , [ 108 ] MySQL, SQLite, Microsoft SQL Server, [ 107 ] Amazon Redshift, Vertica, ODBC) এবং সাধারণভাবে ওয়েব ব্যবহারের জন্য। [ 109 ] [ 110 ]
প্যাকেজ সিস্টেম
জুলিয়ার একটি বিল্ট-ইন প্যাকেজ ম্যানেজার রয়েছে এবং এতে একটি ডিফল্ট রেজিস্ট্রি সিস্টেম রয়েছে। [ 111 ] প্যাকেজগুলি প্রায়শই GitHub- এ হোস্ট করা সোর্স কোড হিসাবে বিতরণ করা হয় , যদিও বিকল্পগুলিও একইভাবে ব্যবহার করা যেতে পারে। আর্টিফ্যাক্ট ব্যবহার করে প্যাকেজগুলি বাইনারি হিসাবেও ইনস্টল করা যেতে পারে। [ 112 ] জুলিয়ার প্যাকেজ ম্যানেজার প্যাকেজগুলি অনুসন্ধান এবং সংকলন করার পাশাপাশি পরিবেশ পরিচালনা করার জন্য ব্যবহৃত হয়। ফেডারেটেড প্যাকেজ রেজিস্ট্রিগুলি সমর্থিত, যা অফিসিয়াল ছাড়া অন্য রেজিস্ট্রিগুলিকে স্থানীয়ভাবে যুক্ত করার অনুমতি দেয়। [ 113 ]
বাস্তবায়ন
জুলিয়ার কোরটি জুলিয়া এবং সি- তে বাস্তবায়িত হয়েছে, LLVM নির্ভরতার জন্য C++ এর সাথে । কোড পার্সিং, কোড-লোয়ারিং এবং বুটস্ট্র্যাপিং FemtoLisp, একটি স্কিমের উপভাষায়, সংস্করণ 1.10 পর্যন্ত বাস্তবায়িত হয়েছিল। [ 114 ] সেই সংস্করণ থেকে নতুন pure-Julia stdlib প্যাকেজ JuliaSyntax.jl পার্সিংয়ের জন্য ব্যবহৃত হয় (যদিও পুরানোটি এখনও বেছে নেওয়া যেতে পারে) [ 115 ] যা গতি উন্নত করে এবং "বিভিন্ন ক্ষেত্রে পার্সার ত্রুটি বার্তাগুলিকে ব্যাপকভাবে উন্নত করে"। [ 116 ] LLVM কম্পাইলার অবকাঠামো প্রকল্পটি সমস্ত সাধারণভাবে ব্যবহৃত প্ল্যাটফর্মের জন্য অপ্টিমাইজড মেশিন কোড তৈরির জন্য ব্যাক এন্ড হিসাবে ব্যবহৃত হয়। কিছু ব্যতিক্রম ছাড়া, স্ট্যান্ডার্ড লাইব্রেরি জুলিয়াতে বাস্তবায়িত হয়।
বর্তমান এবং ভবিষ্যতের প্ল্যাটফর্মগুলি
জুলিয়ার ৬৪-বিট অ্যাপল সিলিকন ম্যাকগুলির জন্য টিয়ার ১ ম্যাকওএস সমর্থন রয়েছে , যা মূলত (পূর্বে এই ধরনের অ্যাপল এম১- ভিত্তিক ম্যাকগুলি কেবল রোসেটা ২ এমুলেশন [ 117 ] [ 118 ] এ চালানোর মাধ্যমে সমর্থিত ছিল ), এবং এটি সম্পূর্ণরূপে ইন্টেল-ভিত্তিক ম্যাকগুলিকেও সমর্থন করে। ARM-এ উইন্ডোজের এখনও কোনও অফিসিয়াল সমর্থন নেই। জুলিয়ার "জুলিয়াতে OpenBSD-এর প্রাথমিক সমর্থন" রয়েছে। তবে এটিকে বাস্তবে কার্যকর করার জন্য আরও কিছু আসছে: https://github.com/JuliaLang/julia/issues/53632 -->
জুলিয়ার চারটি সাপোর্ট টিয়ার রয়েছে। [ 119 ] i686 সাবআর্কিটেকচার সম্পূর্ণরূপে বাস্তবায়নকারী সমস্ত IA-32 প্রসেসর সমর্থিত এবং সমস্ত 64-বিট x86-64 (aka amd64 ), অর্থাৎ প্রায় এক দশকেরও কম বয়সী সমস্ত সমর্থিত। Armv8 ( AArch64 ) প্রসেসর প্রথম স্তরে (macOS-এর জন্য) সমর্থিত; অন্যথায় Linux-এ দ্বিতীয় স্তরে এবং ARMv7 (AArch32) তৃতীয় স্তরে। [ 120 ] শত শত প্যাকেজ GPU-ত্বরিত : [ 121 ] Nvidia GPU-তে CUDA .jl (64-বিট Linux-এ স্তর 1 এবং 64-বিট Windows-এ স্তর 2, PTX বাস্তবায়নকারী প্যাকেজ , কম্পিউট ক্ষমতা 3.5 (Kepler) বা উচ্চতরের জন্য সমর্থন রয়েছে; উভয়ের জন্য CUDA 11+ প্রয়োজন, পুরানো প্যাকেজ সংস্করণগুলি CUDA 9 পর্যন্ত কাজ করে)। এছাড়াও অন্যান্য অ্যাক্সিলারেটর সমর্থনকারী প্যাকেজ রয়েছে, যেমন গুগলের TPU , [ 122 ] এবং কিছু Intel (ইন্টিগ্রেটেড) GPU, oneAPI.jl এর মাধ্যমে , [ 123 ] এবং AMD এর GPU গুলিতে OpenCL এর মতো সমর্থন রয়েছে ; এবং AMD ROCm স্ট্যাকের জন্য পরীক্ষামূলক সমর্থন রয়েছে। [ 124 ]
কিছু প্ল্যাটফর্মে, জুলিয়াকে সোর্স কোড (যেমন, মূল রাস্পবেরি পাই ) থেকে কম্পাইল করার প্রয়োজন হতে পারে, নির্দিষ্ট বিল্ড অপশন সহ, যা করা হয়েছে এবং অনানুষ্ঠানিকভাবে পূর্ব-নির্মিত বাইনারি (এবং বিল্ড নির্দেশাবলী) উপলব্ধ। [ 125 ] [ 126 ] জুলিয়া বেশ কয়েকটি ARM প্ল্যাটফর্মের জন্য তৈরি করা হয়েছে, ছোট রাস্পবেরি পাই থেকে শুরু করে বিশ্বের দ্রুততম (এক পর্যায়ে, সম্প্রতি পর্যন্ত) সুপার কম্পিউটার ফুগাকুর ARM-ভিত্তিক A64FX পর্যন্ত । [ 127 ] PowerPC LE (64-বিট) এর স্তর 3 সমর্থন রয়েছে, যার অর্থ এটি "নির্মাণ করতে পারে বা নাও করতে পারে", এবং এর স্তর 1.12 এর জন্য 4 এ নেমে আসবে, অর্থাৎ তখন আর বিল্ড/কাজ করবে না। [ 128 ] জুলিয়া এখন রাস্পবিয়ানে সমর্থিত [ 129 ] যেখানে সমর্থন নতুন Pis এর জন্য ভাল, যেমন, Armv7 বা তার চেয়ে নতুন যাদের আছে; জুলিয়া সমর্থন Raspberry Pi ফাউন্ডেশন দ্বারা প্রচারিত হয় । [ 130 ] জুলিয়া 64-বিট RISC-V এর জন্যও তৈরি করা হয়েছে , [ 131 ] [ 132 ] যার মূল জুলিয়াতে কিছু সাপোর্টিং কোড রয়েছে।
যদিও জুলিয়ার ডিফল্টরূপে একটি অপারেটিং সিস্টেম প্রয়োজন , এবং Arduino এর মতো এমবেডেড সিস্টেম প্ল্যাটফর্ম ছাড়া বা ছাড়া চালানোর জন্য কোনও অফিসিয়াল সমর্থন নেই , জুলিয়া কোড এখনও এতে চালানো হচ্ছে, কিছু সীমাবদ্ধতা সহ, অর্থাৎ একটি বেয়ারমেটাল 16 MHz 8-বিট ( ATmega328P ) AVR-মাইক্রোকন্ট্রোলার Arduino তে 2 KB RAM (প্লাস 32 KB ফ্ল্যাশ মেমরি) সহ। [ 133 ] [ 134 ]