Byte Code Engineering Library
বাইট কোড ইঞ্জিনিয়ারিং লাইব্রেরি (বিসিইএল) একটি প্রকল্প যা অ্যাপাচি ফাউন্ডেশন দ্বারা স্পনসর করা হয়েছিল যা পূর্বে তাদের জাকার্তা সনদের অধীনে বাইনারি জাভা ক্লাসগুলিকে পচানো, সংশোধন এবং পুনরায় কম্পোজ করার জন্য একটি সহজ এপিআই প্রদান করে। বাইটকোড)। 2001 সালের 27শে অক্টোবর আনুষ্ঠানিকভাবে অ্যাপাচি জাকার্তা ফাউন্ডেশনে দান করার আগে মার্কাস ডাহম এই প্রকল্পের পরিকল্পনা ও উন্নয়ন করেছিলেন। বিসিইএল একটি সাধারণ গ্রন্থাগার প্রদান করে যা একটি প্রদত্ত জাভা শ্রেণীর অভ্যন্তরীণ সমষ্টিগত উপাদানগুলিকে তার এপিআই-এর মাধ্যমে বস্তু গঠন হিসাবে প্রকাশ করে (নিম্ন-স্তরের অপকোডগুলি বিচ্ছিন্ন করার বিপরীতে)। এই বস্তুগুলি বাইনারি বাইটকোড সংশোধন করার পাশাপাশি নতুন বাইটকোড তৈরির (বিদ্যমান কোডে নতুন কোড ইনজেকশনের মাধ্যমে, বা সম্পূর্ণ নতুন শ্রেণীর প্রজন্মের মাধ্যমে) ক্রিয়াকলাপগুলিও প্রকাশ করে। বিসিইএল গ্রন্থাগারটি বেশ কয়েকটি বৈচিত্র্যময় প্রয়োগে ব্যবহৃত হয়েছে, যেমনঃ জাভা বাইটকোড ডিকম্পাইলিং, অবফুসেশন, এবং রিফ্যাক্টরিং পারফরম্যান্স এবং প্রোফাইলিং ইন্সট্রুমেন্টেশন কল যা ক্যাপচার পারফরম্যান্স মেট্রিক্স মেমরি/কভারেজ ডেটা পরীক্ষা করার জন্য জাভা ক্লাস বাইনারিগুলিতে ইনজেকশন দেওয়া যেতে পারে। (উদাহরণস্বরূপ, প্রবেশ/প্রস্থান পয়েন্টে যন্ত্রের ইনজেকশন দেওয়া।) নতুন ভাষা শব্দার্থবিজ্ঞানের বাস্তবায়ন উদাহরণস্বরূপ, জাভা ভাষায় অ্যাস্পেক্ট-ওরিয়েন্টেড সংযোজনগুলি বিসিইএল ব্যবহার করে পয়েন্ট-কাট সনাক্তকরণের জন্য শ্রেণী কাঠামোকে বিচ্ছিন্ন করার জন্য প্রয়োগ করা হয়েছে, এবং তারপরে আবার যখন বাইনারিতে অ্যাস্পেক্ট-সম্পর্কিত কোড ইনজেকশন দিয়ে শ্রেণী পুনর্গঠন করা হয়। (দেখুনঃ এস্পেক্টজে) স্ট্যাটিক কোড বিশ্লেষণ ফাইন্ডবাগস বিসিইএল ব্যবহার করে কোড প্রবাদগুলির জন্য জাভা বাইটকোড বিশ্লেষণ করে যা বাগ নির্দেশ করে। এছাড়াও দেখুন অবজেক্টওয়েব এ. এস. এম জাভাসিস্ট এক্সটার্নাল লিঙ্ক অ্যাপাচি কমন্স বি. সি. ই. এল-বি. সি. ই. এল প্রজেক্ট হোম পেজ। বিসিইএল-ভিত্তিক প্রকল্প তালিকা-বিসিইএল গ্রন্থাগার ব্যবহার করে এমন প্রকল্পগুলির একটি তালিকা। অ্যাপাচি জাকার্তা হোম-দ্য অ্যাপাচি জাকার্তা হোম পেজ। অ্যাস্পেক্টজে-দ্য অ্যাস্পেক্টজে প্রজেক্ট হোম পেজ। (উচ্চ দৃশ্যমানতা প্রকল্পগুলির মধ্যে একটি যা বিসিইএল ব্যবহার করে।) ভার্চুয়ালাইজেশন সফ্টওয়্যার