আপনি কোন মধ্যবর্তী বিন্যাস, তাহলে আপনি কিছু যে ভাষা এক্স একটি প্রোগ্রাম অনুবাদ বাস্তবায়ন হতে পারে জন্য যে বিন্যাস, এবং এছাড়াও থেকে ভাষা ওয়াই যে বিন্যাস সমস্ত ভাষা আপনি আগ্রহী জন্য ঐ ধর্মান্তর বাস্তবায়ন এবং আপনার কাজ সম্পন্ন, ঠিক?
আচ্ছা তুমি কি জানো? এই জাতীয় বিন্যাস ইতিমধ্যে বিদ্যমান: সমাবেশ। সংকলক ইতিমধ্যে "ভাষা এক্স থেকে অ্যাসেম্বলি" রূপান্তরটি করে এবং "অ্যাসেম্বলি টু ল্যাঙ্গুয়েজ ওয়াই" রূপান্তরকে বিচ্ছিন্ন করে।
বিপরীত রূপান্তর করার জন্য এখন অ্যাসেমব্লিটি এত বড় ভাষা নয়, তবে এমএসআইএল আসলে খুব খারাপ নয়। রিফ্লেক্টরটি ডাউনলোড করুন এবং আপনি দেখতে পাবেন এটি একটি .NET অ্যাসেমব্লিকে বিভিন্ন ভাষার একগুচ্ছ (এবং প্লাগইন আরও বেশি সরবরাহ করে) বিচ্ছিন্ন করার বিকল্প পেয়েছে। সুতরাং সি # তে একটি প্রোগ্রাম নেওয়া, এটি একটি ডিএলএল (যা, এমএসআইএল) তে সংকলন করা বেশ সম্ভব, তারপরে এটি ভিবি, সি ++ / সিএলআই, এফ #, এবং পুরো গুচ্ছ অন্যদের মধ্যে বিচ্ছিন্ন করতে রিফ্লেক্টরটি ব্যবহার করুন। অবশ্যই, অন্যান্য সমস্ত রূপান্তর কাজ, খুব। একটি এফ # ফাইল নিন, একটি ডিএলএল সংকলন করুন, এটি সি # তে রূপান্তর করতে রিফ্লেক্টর ব্যবহার করুন।
অবশ্যই, দুটি বড় সমস্যা যা আপনি পাবেন:
- কোডটি মূলত অপঠনযোগ্য। এমএসআইএল (এমনকি ডিবাগিং তথ্য সহ) মূল উত্স থেকে প্রচুর তথ্য সরিয়ে দেয়, সুতরাং অনুবাদকৃত সংস্করণটিতে 100% বিশ্বস্ততা নেই (তাত্ত্বিকভাবে একটি সি # -> এমএসআইএল-> সি # রূপান্তর আপনাকে মূল কোডটি ফিরিয়ে দেবে, তবে এটি হবে না)।
- অনেক .NET ভাষার নিজস্ব কাস্টম লাইব্রেরি রয়েছে (যেমন ভিবি রানটাইম লাইব্রেরি, এফ # লাইব্রেরি এবং অন্যান্য)। আপনি যখন আপনার রূপান্তরও করেন তখন এগুলি অন্তর্ভুক্ত করা (বা রূপান্তরিত) হতে হবে।
সত্যিই # 2 পাওয়ার কিছু নেই, তবে আপনি সম্ভবত এমএসআইএল-তে কিছু অতিরিক্ত টিকা দিয়ে প্রায় 1 টি পেতে পারেন (বৈশিষ্ট্যের মাধ্যমে, সম্ভবত)। এটি অবশ্যই অতিরিক্ত কাজ হবে।