আমি বিশ্বাস করি আপনি asm.js বোঝার ক্ষেত্রে ভুল করেছেন ।
প্রথমে তাদের FAQ থেকে
প্র: asm.js একটি নতুন ভাষা?
উ: না, এটি জাভাস্ক্রিপ্ট (কেবলমাত্র একটি উপসেট)।
এবং আপনি যোগ স্পষ্টতা জিজ্ঞাসা :
তবে কীভাবে সি ++ তে একটি [an asm.js অ্যাপ্লিকেশন] লেখা সম্ভব
আপনি "asm.js অ্যাপ্লিকেশন" লিখবেন না, বরং asm.js আপনার সি ++ কোডটি সংকলন করার জন্য একটি লক্ষ্য 1 ।
জন রেসিগের এই নিবন্ধটি বেশ কয়েকটি বিশদ সরবরাহ করে যা asm.js কীভাবে ব্যবহৃত হবে তা আরও ভালভাবে ব্যাখ্যা করতে পারে।
এই চিত্রটি দিয়ে শুরু:
আপনি দেখতে পারেন যে asm.js হ'ল একটি এমসক্রিপেনের অনুবাদ লক্ষ্য । এমস্প্রিপ্টেন এলএলভিএম অনুবাদ করে পরিচালনা করে হ'ল বাইকোডকে জাভাস্ক্রিপ্টে এবং asm.js জাভাস্ক্রিপ্টের একটি উপসেট। জাভাস্ক্রিপ্টের asm.js এর সীমিত সাবসেটের মধ্যে থাকা কোডটিকে অনুকূলিতকরণ এবং দ্রুত চালানোর অনুমতি দেয়।
আপনি আরও জিজ্ঞাসা করেছেন:
এবং যদি আমি কোডটি সি ++ এ লিখি তবে জেএসআই এপিআই-এস কীভাবে ব্যবহার করতে হয়
আবার আপনি একরকম পয়েন্ট মিস করছেন missing Asm.js বিদ্যমান সি / সি ++ অ্যাপ্লিকেশনগুলি জাভাস্ক্রিপ্টে পোর্টিং সক্ষম করে যাতে সেগুলি ব্রাউজারের মধ্যে চালানো যায়। আপনি সাধারণত আপনার সি / সি ++ কোডের মধ্যে জেএস এপিআই ব্যবহার করতে সক্ষম হবেন না এবং এটিএমএসজেএস-তে কোনও মায়াবী কিছুই নেই allow
যদি আপনার লিখতে কোনও নতুন অ্যাপ্লিকেশন থাকে যার জন্য জেএস এপিআই দরকার হয় তবে আপনার জেএসে অ্যাপ্লিকেশনটি লিখতে হবে এবং সি ++ এ লেখার চেষ্টা করার সাথে ফুটজ না করে জাভাস্ক্রিপ্টে পোর্ট করতে হবে।
এবং রেসিগের নিবন্ধে ফিরে গিয়ে, আপনার প্রশ্নের জন্য দুটি মূল উক্তি রয়েছে:
অদূর ভবিষ্যতে যে ধরণের অ্যাপ্লিকেশনগুলি Asm.js কে টার্গেট করতে চলেছে, সেগুলি হ'ল ব্রাউজারে চলার বহনযোগ্যতা থেকে যারা উপকৃত হবে তবে জাভাস্ক্রিপ্টের জন্য সরাসরি পোর্ট অক্ষম হবে এমন জটিলতার একটি স্তর রয়েছে
এবং
আপনি সম্ভবত Asm.js উপরের কোড থেকে দেখতে পারেন যে হাতে লেখা হয় নি। ... Asm.js এর জন্য এখনই সর্বাধিক সাধারণ ব্যবহারের ক্ষেত্রটি হল সি / সি ++ থেকে জাভাস্ক্রিপ্ট মেনে চলার অ্যাপ্লিকেশনগুলিতে। এর মধ্যে প্রায় কোনও অ্যাপ্লিকেশনই ডিওএমের সাথে ওয়েবজিএল এবং এর মতো ব্যবহার ছাড়াই অর্থবহভাবে যোগাযোগ করে না।
এর পরিবর্তে আপনি যা বিবেচনা করতে চান তা একটি জাভাস্ক্রিপ্ট প্রোগ্রাম থাকতে পারে যা আপনি জাভাস্ক্রিপ্টে সংকলিত সি ++ এ কল করার পাশাপাশি আপনার প্রয়োজনীয় জেএসপিআইপিগুলিকে কল করে। কটাক্ষপাত আছে এই emscripten টিউটোরিয়াল কিভাবে জাভাস্ক্রিপ্ট থেকে সি ++ কোড কল দেখতে।
কিছু অতিরিক্ত গবেষণার জন্য, এমস্ক্রিপ্টেনের একটি টিউটোরিয়াল রয়েছে যা আপনাকে সি ++ কোড কীভাবে গ্রহণ করতে হবে, এলএলভিএম এর মাধ্যমে চালনা করতে হবে এবং তারপরে asm.js লক্ষ্যবস্তু বুঝতে সাহায্য করতে পারে might
1 কড়া কথা বলতে গেলে, এটি সত্য নয়। সি / সি ++ কোডটি কী সংকলিত হতে চলেছে সে সম্পর্কে অজানা, সুতরাং আমি সত্যিই asm.js কে একটি লক্ষ্য বলতে পারি না। অন্য একটি সরঞ্জাম (এমস্ক্রিপ্টেন) এলএলভিএম আউটপুট নেয় এবং তারপরে asm.js এর সাথে অনুগত জাভাস্ক্রিপ্ট অনুবাদ করে। তবে আমি এটিকে টার্গেট বলব কারণ এটি বুঝতে সহজ।