স্কিপ করে মূল কন্টেন্ট এ যান

Whale কম্পাইলার টুলচেইন

সারাংশ

Whale হল Wave প্রোগ্রামিং ভাষার জন্য এক্সক্লুসিভ কম্পাইলার টুলচেইন। Whale Wave লিখিত সূত্র কোডগুলির বিশ্লেষণ, অপ্টিমাইজেশন, লক্ষ্য প্ল্যাটফর্মের জন্য বাইনারিতে রূপান্তর সমস্ত কিছুর দায়িত্ব নেয়। এই টুলচেইনটি শুধুমাত্র ওয়েভ ভাষার জন্য ডিজাইন করা হয়েছে এবং এটি অন্যান্য ভাষার সহায়তা বা বাহ্যিক টুলচেইন ইন্টেগ্রেশন বিবেচনা করে না।

নকশার লক্ষ্য

Whale এর প্রধান নকশার লক্ষ্য হলো:

  • অকুস্টিক ওয়েভ ভাষা সমর্থন: Whale শুধুমাত্র ওয়েভ ভাষাকেই সমর্থন করে এবং অন্যান্য ভাষার ইন্টেগ্রেশন বিবেচনা করে না।
  • মডুলার কাঠামো: প্রতিটি ফাংশন স্বাধীন মডিউল হিসেবে গঠিত হয় এবং প্রয়োজনে যোগ বা অপসারণ করা যেতে পারে।
  • স্বাধীন IR ব্যবহার: Whale বিদ্যমান পরিপূরক IR হিসাবে LLVM IR ব্যবহার না করে, নিজস্ব মধ্যস্থতম উপস্থাপনা নির্ধারণ করে।
  • বহুগামী লক্ষ্য প্ল্যাটফর্ম সমর্থন: অপারেটিং সিস্টেম এবং হার্ডওয়্যার আর্কিটেকচারের উপর ভিত্তি না করে বিভিন্ন পরিবেশের লক্ষ্য তৈরি করা যায়।
  • নির্ভুল নিয়ন্ত্রণ: সংকলনের সম্পূর্ণ প্রক্রিয়াটি ডেভেলপার দ্বারা বিস্তারিতভাবে নিয়ন্ত্রীত করার জন্য আকারে সাজানো হয়েছে।
  • বাহ্যিক নির্ভরতামুক্ত: Whale বাহ্যিক C/C++ রানটাইম বা কম্পাইলারের উপর নির্ভর করে না।

লক্ষ্য সমর্থন

Whale নিম্নলিখিত লক্ষ্যমাত্রী পরিবেশগুলো সমর্থন দান করার লক্ষ্য।

  • অপারেটিং সিস্টেম:
    • লিনাক্স
    • উইন্ডোজ
    • ম্যাকওএস
    • UEFI (BIOS বাদে)
    • WaveOS (নিজস্ব অপারেটিং সিস্টেম)
  • আর্কিটেকচার:
    • x86_64 (AMD64)
    • ARM64
    • অন্যান্য বিষয়গুলি মডিউল যোগ করার মাধ্যমে প্রসারিত করা যেতে পারে

বাহ্যিক ইন্টেগ্রেশন (FFI)

Whale প্রযুক্তিগতভাবে FFI (Foreign Function Interface) সমর্থনকারী হিসেবে ডিজাইন করা হয়েছে, কিন্তু Wave শুরুলিয়ার দৃষ্টিকোণ থেকে বাহ্যিক ভাষার সাথে ইন্টেগ্রেশন সুপারিশ করা হয় না এবং আদর্শত সরবরাহ করা হয় না। Wave নিজস্ব ভাষার মধ্যে সমস্ত ফাংশন বাস্তবায়ন করার উপায়ে ডিজাইন করা হয়েছে।

প্রসারণ ক্ষমতা

Whale নিম্নলিখিত উপায়ে প্রসরিত হতে পারে:

  • নতুন অপারেটিং সিস্টেম বা আর্কিটেকচারের জন্য মডিউল যোগ করা
  • ব্যবহারকারীর সংজ্ঞায়িত অপ্টিমাইজেশন অ্যালগরিদম সংযোজন
  • বিল্ড প্রোফাইল এবং লিঙ্কার সেটিংসের কাস্টমাইজিং
  • নিজস্ব এক্সিকিউশন ফরম্যাট সংজ্ঞায়িত করা