জাভা সংকলক এবং জেভিএম কোন ভাষায় রচিত?


195

জাভা সংকলক ( javac), ভার্চুয়াল মেশিন (জেভিএম) এবং javaস্টার্টার কোন ভাষায় রচিত?


23
আমি জাভাতে কাজ করি তাই আমি ভাষাটি সম্পর্কে জানতে চাই ... :)
রাহুল গার্গ

25
এটি আপনার দৃষ্টিকোণ। লেট করুন আপনি 20 বছরের জন্য কোনও প্রযুক্তির উপর কাজ করেছেন এবং সাক্ষাত্কারকারী আপনাকে জিজ্ঞাসা করে কোন ভাষাটি রচিত বা এটি কীভাবে কাজ করে তবে আপনি বলতে পারেন আপনার যত্ন নেই এটি অর্থ আপনি কেবল ভাষায় না লিখতে চান তবে লিখতে চান সত্যিই ভাষা বুঝতে।
রাহুল গার্গ

21
এবং আরও বেশি আমি মনে করি জ্ঞান কখনই অপচয় হয় না o সুতরাং কিছু জেনে সময় অপচয় করা নয়।
রাহুল গার্গ 3'09

1
... একটি মেকানিকাল ইঞ্জিনিয়ার বা একটি রেস ড্রাইভার (রূপক প্রসারিত করতে)
এপাগা

2
@ প্যাক্সিয়াব্লো গাড়ি চালানো আপনার করা কিছু, তবে আপনার পেশা নয়। রেস গাড়ি চালকরা ইঞ্জিনগুলি কীভাবে কাজ করে তা যত্নশীল হতে পারে। আমি বলছি না যে তারা সবাই যত্ন করে .. তবে যদি কোনও রেস গাড়ি চালক গাড়ি চালানোর জন্য দেওয়া গাড়িটিতে ইঞ্জিন কীভাবে কাজ করেছিল সে সম্পর্কে আরও জানতে চান, আপনি কি এটিকে অযৌক্তিক মনে করবেন?
জেডি আইজ্যাকস 4'10

উত্তর:


171

প্রশ্নের যথাযথ বাক্যটি সামান্য বিভ্রান্তিকর: এটি "জেভিএম" বা "সংকলক" নয় কারণ সেখানে একাধিক জেভিএম বিক্রেতারা রয়েছে (জ্রোকিট এক, আইবিএম অপর একজন) এবং একাধিক সংকলক সেখানে রয়েছে।

  • সূর্যের জেভিএম হয় লেখা C, যদিও এই প্রয়োজন ক্ষেত্রে নাও হতে - জেভিএম যেমন আপনার মেশিনে চালনা করে একটি প্ল্যাটফর্ম-নির্ভরশীল এক্সিকিউটেবল তাই পারে মূলত কোন ভাষায় লিখিত হয়েছে। উদাহরণস্বরূপ, আসল আইবিএম জেভিএম ছোট ছোট লেখায় লেখা হয়েছিল

  • জাভা লাইব্রেরি ( java.lang, java.utilইত্যাদি প্রায়ই হিসাবে উল্লেখ করা জাভা এপিআই ) নিজেদের জাভা লেখা, যদিও হিসাবে চিহ্নিত পদ্ধতি nativeহবে লিখিত হয়েছে Cবা C++

  • আমি বিশ্বাস করি যে সান প্রদত্ত জাভা সংকলকটিও জাভাতে লেখা হয়েছিল। (যদিও আবার, সেখানে একাধিক সংকলক রয়েছে)


আমি মনে করি তিনি "জাভা" প্রোগ্রামটির অর্থ আপনি কোনও জেভিএম শুরু করতে ব্যবহার করেন।
স্টিফেন সি

1
আসলে, সান জেআরই-এর একটি লাইব্রেরি নেটআরেক্সেক্সে লেখা আছে। (এটি বিবিআইন্টিজার, বিগনম বা বিগডিসিমাল, যেকোনো একটি স্বেচ্ছাসেবী গণিত গ্রন্থাগারগুলির মধ্যে একটি। আমি কোনটি ভুলে গিয়েছি।) তাত্ত্বিকভাবে, আপনি জেআরই বাস্তবায়নের জন্য যে কোনও ভাষা ব্যবহার করতে পারেন, যতক্ষণ না এটি জাভা প্রোগ্রামটি উপস্থাপনের জন্য সংকলন করতে পারে বোঝা.
জার্গ ডব্লু মিত্তাগ

18
দয়া করে সি তে লেখা সান জেভিএম-এর একটি রেফারেন্স সরবরাহ করুন
মোহাম্মদ বানা

8
হটস্পট জেভিএম সি ++ - www2.research.att.com/~bs/applications.html
দেবদিমি

5
@ দেবদীমী লিঙ্কটি নষ্ট হয়ে গেছে এবং এখন এটিতে
ফ্লপআপ

80

প্রথম জাভা সংকলকটি সান মাইক্রোসিস্টেমগুলি দ্বারা বিকাশিত হয়েছিল এবং সি ++ থেকে কিছু লাইব্রেরি ব্যবহার করে সিটিতে লেখা হয়েছিল। আজ জাভা সংকলক জাভাতে লেখা হয়েছে, আর জেআরই সিতে লেখা হয়েছে in

আমরা কল্পনা করতে পারি যে জাভা সংকলক জাভাতে এভাবে কীভাবে লেখা হয়েছিল:

জাভা সংকলকটি জাভা প্রোগ্রাম হিসাবে লেখা হয় এবং তারপরে সি তে লেখা জাভা সংকলক (প্রথম জাভা সংকলক) দিয়ে সংকলিত হয়। সুতরাং আমরা জাভা প্রোগ্রামগুলি সংকলন করতে নতুন সংকলিত জাভা সংকলক (জাভাতে লিখিত) ব্যবহার করতে পারি।


31
জাভাতে কোনও জাভা সংকলক কীভাবে লেখা যেতে পারে তা বোঝার জন্য +1 :)
এডুয়ার্ড লুকা

2
এফআইআই নতুন সংকলকগুলিকে আরও বেসিক সংকলকগুলিতে কোড সংকলন করে "আপগ্রেড" করার এই প্রক্রিয়াটিকে "বুটস্ট্র্যাপিং" বলা হয়, যেমন "নিজের বুটস্ট্র্যাপ দ্বারা নিজেকে টেনে তোলা", যেখানে মেশিন থেকে "বুটিং" আসে। ইউটিউবে কম্পিউটারফাইলে এই এবং "টি ডায়াগ্রাম" সম্পর্কে একটি ভাল ভিডিও রয়েছে
আয়নো

এটি কি মুরগি এবং ডিম
স্কাইনেট

@ স্কাইনেট স্ব-হোস্টেড মুরগী
স্পোর্টজপিকাচু

65

জাভা ডক্স থেকে

সংকলকটি জাভাতে এবং রানটাইমটি এএনএসআই সি-তে লেখা হয়


1
প্রথম জাভা সান মাইক্রোসিস্টেম দ্বারা উন্নত কম্পাইলার সি লেখা হয়েছিল সি ++ থেকে কিছু লাইব্রেরি ব্যবহার en.wikipedia.org/wiki/Java_compiler
রাহুল Garg

4
এটি সত্যই বরং একটি পুরাতন নথি (> জিনিসগুলি দেখে 10 বছর)। উদাহরণস্বরূপ, এটি বলে যে "জাভা বাইটকোডগুলি ফ্লাই টু নেটিভ মেশিনের নির্দেশাবলীগুলিতে অনুবাদ করা হয় (ব্যাখ্যা করা হয়) এবং কোথাও সংরক্ষণ করা হয় না " যা প্রায় ৫ বছর ধরে সত্য নয়!
অক্সবো_লাক্স 3'09

2
ঠিক আছে, ডকুমেন্টেশন কখন থেকে সত্যই আপ টু ডেট হয়েছে, বিশেষত বড় পরিবর্তনের পরে? :)
এসকো

ঠিক আছে - উত্তরটি সত্যিই সঠিক নয়; সান জেভিএম সিতে লেখা হয়েছে, এবং সান জাভা সংকলক জাভাতে লেখা হয়েছে। প্রথম আইবিএম জেভিএম ছোট ছোট লেখায় লেখা হয়েছিল।
অক্সবো_লাক্স 3'09

8
জাভা সংকলন কি? জাভা। আচ্ছা, আপনি কিভাবে জাভা পাবেন? এটি সংকলন। তাই না?


9

এই লিঙ্কটি আপনার প্রশ্নের উত্তর দেওয়া উচিত

দেখে মনে হচ্ছে সংকলকটি এখন জাভাতে লেখা হয়েছে, তবে রানটাইমটি এএনএসআই সি-তে লেখা আছে


8

নীতিগতভাবে প্রায় কোনও কিছুই, সাধারণত সি


3

জিক্স আরভিএম , একটি স্ব-হোস্টিং জেভিএম গবেষণার উদ্দেশ্যে ব্যাপকভাবে ব্যবহৃত জাভাতে রচিত। লোকেরা তাদের ডেস্কটপগুলিতে চালিত হয় না, তবে এটি আমার তালিকার উপরে রয়েছে "এখন আসুন ভাষার সাধারণ শক্তিটি দেখান।"


এটা তোলে এর কচ্ছপ সব পথ নিচে ? এটিতে কি কোনও ধরণের মাইক্রোকারেল রয়েছে? যদি তা হয় তবে তা কোন ভাষায় লেখা আছে?
রায়েডওয়াল্ড

3

মনে করুন আপনি হটস্পট জেভিএম সম্পর্কে কথা বলছেন, যা সূর্যের দ্বারা সরবরাহিত, এটি সি ++ তে লেখা হয়েছে। জাভা বিভিন্ন ভার্চুয়াল মেশিনে আরও তথ্যের জন্য, আপনি এই লিঙ্কটি পরীক্ষা করতে পারেন । javac , সবচেয়ে জাভা কম্পাইলার মত, জাভা লেখা হয়।


0
  • জাভা যখন সান মাইক্রোসিস্টেম দ্বারা প্রবর্তন করা হয়, তখন সি ++ থেকে কিছু লাইব্রেরি ব্যবহার করে জাভা সংকলক সিটিতে লেখা হয়েছিল।
  • যেমনটি বুটস্ট্যাপিং নামে সংকলক ডিজাইনের একটি ধারণা রয়েছে, বেশিরভাগ ক্ষেত্রে এটি সংকলক বিকাশে ব্যবহৃত হয়, বুটস্ট্র্যাপিং হ'ল উত্স প্রোগ্রামিং ভাষায় একটি সংকলক (বা এসেমব্লার) লেখার প্রক্রিয়া যা এটি সংকলনের উদ্দেশ্যে তৈরি। এটি একটি স্ব-হোস্টিং সংকলক উত্পাদন করতে ব্যবহৃত হয়। নতুন প্রোগ্রামিং ভাষার জন্য সংকলকগুলির বিকাশটি প্রথমে বিদ্যমান ল্যাঙ্গোজে বিকাশিত হয়েছিল এবং তারপরে নতুন ভাষায় আবার লিখিত এবং নিজেই সংকলিত। সে কারণেই আজ জাভা সংকলক জাভাতেই লেখা আছে
  • জাভা ভার্চুয়াল মেশিন: জাভা ভার্চুয়াল মেশিন একটি বিমূর্ত মেশিন। একটি আসল কম্পিউটিং মেশিনের মতো এটির একটি নির্দেশিকা সেট রয়েছে এবং রান সময়ের বিভিন্ন মেমরি ক্ষেত্রগুলি পরিচালনা করে U সাধারণত জেভিএম বাইট কোডটিকে মেশিন কোডে ব্যাখ্যা করে।

(আরও তথ্যের জন্য আপনি এই লিঙ্কটি দেখতে পারেন: https://docs.oracle.com/javase/specs/jvms/se7/html/ )

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