মেটা-বিজ্ঞপ্তি দোভাষী, ভার্চুয়াল মেশিন এবং বর্ধিত পারফরম্যান্সের মধ্যে কী সম্পর্ক?


12

আমি ওয়েবে মেটা-বিজ্ঞপ্তি দোভাষী সম্পর্কে (এসআইসিপি সহ) পড়েছি এবং কিছু বাস্তবায়নের কোডটি দেখেছি (যেমন পাইপি এবং নারিসিসাস)।

আমি দুটি ভাষা সম্পর্কে বেশ কিছুটা পড়েছি যা মেটাসার্কুলার মূল্যায়নের দুর্দান্ত ব্যবহার করেছে, লিস্প এবং স্মলটালক। আমি যতদূর বুঝতে পেরেছিলাম লিস্প হলেন প্রথম স্ব-হোস্টিং সংকলক এবং স্মার্টটকের প্রথম "সত্য" জেআইটি বাস্তবায়ন ছিল।

একটি জিনিস যা আমি পুরোপুরি বুঝতে পারি নি তা হল those দোভাষী / সংকলকরা কীভাবে এত ভাল পারফরম্যান্স অর্জন করতে পারে বা অন্য কথায় পিপিপি সিপিথনের চেয়ে দ্রুততর হয় কেন? এটা প্রতিবিম্ব কারণ?

এবং এছাড়াও, আমার স্মার্টটাক গবেষণা আমাকে বিশ্বাস করতে পরিচালিত করেছিল যে জেআইটি, ভার্চুয়াল মেশিন এবং প্রতিবিম্বের মধ্যে একটি সম্পর্ক রয়েছে। জেভিএম এবং সিএলআরের মতো ভার্চুয়াল মেশিনগুলি প্রকারের অন্তঃসংশোধনের জন্য প্রচুর পরিমাণে অনুমতি দেয় এবং আমি বিশ্বাস করি যে তারা জাস্ট-ইন-টাইম (এবং এওটি, আমি মনে করি?) সংকলনে এটি দুর্দান্ত ব্যবহার করে। তবে যতদূর আমি জানি, ভার্চুয়াল মেশিনগুলি সিপিইউগুলির মতো, কারণ তাদের একটি প্রাথমিক নির্দেশিকা সেট রয়েছে। ভার্চুয়াল মেশিনগুলি কি দক্ষ, কারণ এগুলিতে প্রকার এবং রেফারেন্স তথ্য অন্তর্ভুক্ত রয়েছে, যা ভাষা-অজ্ঞাত প্রতিবিম্বকে মঞ্জুরি দেয়?

আমি এটি জিজ্ঞাসা করছি কারণ অনেকগুলি অনুবাদিত এবং সংকলিত ভাষা এখন বাইকোডকে লক্ষ্য হিসাবে ব্যবহার করছে (এলএলভিএম, তোতা, ইআরভি, সিপিথন) এবং জেভিএম এবং সিএলআরের মতো traditionalতিহ্যবাহী ভিএমগুলি পারফরম্যান্সে অবিশ্বাস্য বিকাশ অর্জন করেছে। আমাকে বলা হয়েছে যে এটি জেআইটি সম্পর্কে, তবে যতদূর আমি জানি যে জেআইটি নতুন কিছু নয় যেহেতু স্মার্টটালক এবং সান এর নিজস্ব সেল জাভার আগে এটি করছিল। আমি মনে করি না অতীতে ভিএমরা বিশেষত ভাল অভিনয় করছিল, জেভিএম এবং নেট নেট এর বাইরে খুব বেশি অ-একাডেমিক ছিল না এবং তাদের অভিনয় অবশ্যই এখনকার মতো ভাল ছিল না (আমি আশা করি আমি এই দাবিটি উত্সাহিত করতে পারতাম তবে আমি ব্যক্তিগত অভিজ্ঞতা থেকে কথা বলতে)।

তারপরে হঠাৎ করে, 2000 এর দশকের শেষের দিকে কিছু পরিবর্তন হয়ে যায় এবং প্রচুর ভিএমগুলি এমনকি প্রতিষ্ঠিত ভাষার জন্য এবং খুব ভাল পারফরম্যান্স সহ পপআপ শুরু করে। জেআইটি বাস্তবায়ন সম্পর্কে এমন কিছু আবিষ্কার করা হয়েছিল যা প্রতিটি আধুনিক ভিএমকে পারফরম্যান্সে আকাশছোঁয়া করার অনুমতি দেয়? কোনও কাগজ বা বই হয়তো?


3
মানি। সি ++ এবং ফোর্টরানে যে অর্থ ranালা হত এখন হটস্পট, সিএলআর, মনো, ভি 8, নাইট্রো, স্পাইডারমোনকি ইত্যাদি intoেলে দেওয়া হয়
W

আমি কেবল অনুমান করতে পারি তবে আমি মনে করি এটি সময়ের সাথে সাথে কেবল উন্নতি হয়েছে, এখানে বর্ণিত মত joelonsoftware.com/articles/fog0000000017.html
ডক ব্রাউন


1
@ গমি এটি বাস্তবায়িত ভাষা বাস্তবায়িত ভাষার সাথে কতটা সমান, সে সম্পর্কে নয়। এখানে জাভাস্ক্রিপ্ট, লিস্প, প্রোলগ, স্মলটালক এবং রুবি ইন্টারপ্রেটারগুলি আরপিথনে লিখিত আছে এবং তারা পাইপাই অফার ঠিক একই জিনিস পেয়ে থাকে। পাইপথনের উপর ভিত্তি করে আরপিথন হওয়ার একমাত্র কারণ হ'ল এটি পাইথন উত্সাহীদের একগুচ্ছ দ্বারা নির্মিত হয়েছিল। পাইপাই দ্রুত তৈরি করে এমন RPython এর বৈশিষ্ট্যগুলি পাইথনের সাথে কিছুই করার নেই: স্বয়ংক্রিয় জেআইটি সংকলক উত্পাদন, আবর্জনা সংগ্রহকারী ইত্যাদি, এবং হ্যাঁ, এর বেশিরভাগই নীতিগতভাবে অন্যান্য ভাষা ব্যবহার করে করা যেতে পারে। যদিও আপনাকে একটি সম্পূর্ণ নতুন সংকলক তৈরি করতে হবে।

4
-1 কারণ আপনার কাছে এখানে কমপক্ষে 3 টি পৃথক প্রশ্ন রয়েছে বলে মনে হয় : (ক) মেটা-বিজ্ঞপ্তি বাস্তবায়ন এত ভাল কেন? (খ) টাইপ তথ্যের কারণে ভিএম কি দক্ষ, এবং আত্মবিজ্ঞান পারফরম্যান্সের জন্য উপকারী? (গ) 2000 এর দশকের শেষের দিকে কীভাবে ভিএম জনপ্রিয়তা বৃদ্ধি পেয়েছিল এবং হঠাৎ কীভাবে এগুলির সবের ভাল অভিনয় হয়? আমি মনে করি এই প্রশ্নগুলি আলাদাভাবে জিজ্ঞাসা করা ভাল।
ওক

উত্তর:


1

3 এর মধ্যে 2: "মেটা-বিজ্ঞপ্তি" এবং "উচ্চ-সম্পাদন" ভাষার রানটাইমের মধ্যে কোনও সম্পর্ক নেই। মেটা-সার্কুলার রানটাইমগুলি যা উচ্চ কার্যকারিতা অর্জন করে তা জাতীয় কোডে জেআইটি-সংকলন করে, এবং স্থানীয় কোড চালিয়ে। আপনার হাই-পারফিউড পাইথন রানটাইমটি পাইথন, বা লিস্পে লিস্প ইত্যাদিতে লেখার কোনও কারণ নেই তবে আপনি যদি ভাবেন যে আপনার ভাষা অন্যের চেয়ে আরও শক্তিশালী, ভাবপ্রবণ ইত্যাদি, তবে এটি লেখার জন্য কেন ব্যবহার করবেন না? তার নিজস্ব রানটাইম? অথবা আপনি যদি ভাবেন না যে আপনার ভাষা অন্যর চেয়ে কোনওভাবে "ভাল", তবে কেন আপনি এটিকে আদৌ বাস্তবায়িত করতে সমস্যায় পড়ছেন?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.