জাভা কি একটি সংকলিত বা একটি অনুবাদিত প্রোগ্রামিং ভাষা?


169

অতীতে আমি প্রোগ্রামিং ভাষা হিসাবে সি ++ ব্যবহার করেছি। আমি জানি যে সি ++ তে লিখিত কোডটি একটি সংকলন প্রক্রিয়াটির মধ্য দিয়ে যায় যতক্ষণ না এটি অবজেক্ট কোড "মেশিন কোড" হয়ে যায়।

আমি জানতে চাই যে জাভা কীভাবে সেই ক্ষেত্রে কাজ করে। কীভাবে ব্যবহারকারীর লিখিত জাভা কোড কম্পিউটার দ্বারা চালিত হয়?


14
সি ++ এর ব্যাখ্যা দেওয়া যেতে পারে। সেখানে কয়েক সি দোভাষী রয়েছে।
টম হাটিন -

উত্তর:


220

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

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

প্রযুক্তিগতভাবে জাভাটি পূর্ববর্তী সময়ে নেটিভ কোডে সংকলন করে ফলাফল বাইনারি চালানো সম্ভব। জাভা কোডটি সরাসরি ব্যাখ্যা করাও সম্ভব।

সংক্ষেপে বলা যায়, মৃত্যুদন্ড কার্যকর করার পরিবেশের উপর নির্ভর করে বাইটকোড হতে পারে:

  • সময়ের আগে সংকলিত এবং নেটিভ কোড হিসাবে কার্যকর (বেশিরভাগ সি ++ কম্পাইলারের অনুরূপ)
  • ঠিক ইন-টাইম সংকলিত এবং কার্যকর করা হয়েছে
  • ব্যাখ্যা করা
  • সমর্থিত প্রসেসর দ্বারা সরাসরি মৃত্যুদন্ড কার্যকর করা (বাইটোকোড কিছু সিপিইউগুলির স্থানীয় নির্দেশ সেট)

20
প্রকৃতপক্ষে, কিছু হটস্পট জেভিএম বাইট কোডগুলি ব্যাখ্যা করে শুরু হয় এবং সংকলনের জন্য উপযুক্ত কী তা নির্ধারণ করার পরে কেবল সেগুলি স্থানীয় কোডে সংকলন করে এবং কোডটি কীভাবে চলছে তা নিয়ে কিছু পরিসংখ্যান সংগ্রহ করেছিলেন; উদাহরণস্বরূপ প্রতিটি শর্তাধীন শাখায় নেওয়া সবচেয়ে সাধারণ পথটি বের করা।
স্টিফেন সি

1
সুতরাং 'হটস্পট' শব্দটি :) এটি একটি অপ্টিমাইজেশন অর্জন করার জন্য প্রায়শই যা চলছে তা করে does
দুপুর সিল্ক

4
আপনি হটস্পট-এক্সকম্পের সাহায্যে দোভাষী বন্ধ করতে পারেন। এটি কী খারাপ ধারণা তা দেখার জন্য একটি অ্যাপ্লিকেশনটিতে চেষ্টা করা মূল্যবান।
টম হাটিন -

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

যেহেতু জাভা হ'ল ব্যাখ্যাযোগ্য ভাষা তাই এটি কার্যকারিতা বা কোনও জাভা অ্যাপ্লিকেশন কার্যকরকরণকে কীভাবে প্রভাবিত করবে
ন্যানড

92

এখানে চিত্র বর্ণনা লিখুন

জাভাতে লিখিত কোডটি হ'ল:

  • জাভ্যাক নামক একটি প্রোগ্রাম দ্বারা বাইটকোডে প্রথম সংকলিতউপরের চিত্রের বাম অংশে দেখানো হয়েছে ;
  • তারপরে, উপরের চিত্রটির ডান অংশে যেমন দেখানো হয়েছে, জাভা নামে আরেকটি প্রোগ্রাম জাভা রানটাইম পরিবেশ শুরু করে এবং এটি জাভা ইন্টারপ্রেটার / জেআইটি সংকলক ব্যবহার করে বাইটকোড সংকলন এবং / বা ব্যাখ্যা করতে পারে ।

জাভা কখন বাইটোকোডকে ব্যাখ্যা করে এবং কখন এটি সংকলন করে? প্রথমে অ্যাপ্লিকেশন কোডটি ব্যাখ্যা করা হয়, তবে জেভিএম মনিটর করে যে বাইকোডের ক্রমগুলি ঘন ঘন সম্পাদন করা হয় এবং তাদের হার্ডওয়্যারে সরাসরি সম্পাদনের জন্য মেশিন কোডে অনুবাদ করে। বাইটকোডের জন্য যা কেবল কয়েকবার কার্যকর করা হয়, এটি সংকলনের সময় সাশ্রয় করে এবং প্রাথমিক প্রবর্তনকে হ্রাস করে; প্রায়শই মৃত্যুদন্ড কার্যকর করা বাইটকোডের জন্য, ধীরে ধীরে ব্যাখ্যার প্রাথমিক পর্যায়ে, JIT সংকলনটি দ্রুত গতিতে চলতে ব্যবহৃত হয়। অধিকন্তু, যেহেতু কোনও প্রোগ্রাম তার কোডের একটি সংখ্যালঘুকে কার্যকর করতে বেশিরভাগ সময় ব্যয় করে তাই কমিয়ে সংকলনের সময়টি উল্লেখযোগ্য। শেষ অবধি, প্রাথমিক কোড ব্যাখ্যার সময়, সম্পাদনের পরিসংখ্যান সংকলনের আগে সংগ্রহ করা যেতে পারে, যা আরও ভাল অপ্টিমাইজেশন সম্পাদন করতে সহায়তা করে।


এটি ক্যাচড বাইটকোডের কারণে কি জাভা প্রচুর স্মৃতি ব্যবহার করে?
পেড্রো গর্ডো

3
@ এসসুলাম: একটি 'প্রচুর স্মৃতি' একটি অস্পষ্ট বিবৃতি। জাভার মেমরির পরিচালনা বেশ সোজা - তিনটি প্রজন্মই যা জেভিএম তার বস্তুগুলি তৈরি এবং রক্ষণাবেক্ষণের জন্য ব্যবহার করে। এটি আর একটি উত্তর আপনার জন্য কার্যকর হতে পারে।
নাম

উপরোক্ত ব্যাখ্যার সাথে, তাত্ত্বিকভাবে, সি ++ সংকলিত কোডটি সর্বদা যুক্তিযুক্তভাবে অনুরূপ জাভা কোডের চেয়ে দ্রুততর হবে কারণ সর্বদা .class ফাইলের কিছু অংশ থাকবে যা জেআইটি মেশিন কোডে রূপান্তর না করার সিদ্ধান্ত নেয়। অন্য কথায়, জাভা কখনই সি ++ প্রদর্শিত তাত্পর্য ধাতু সম্পাদনের গতি ধরতে পারে না। এটি কি সঠিক অনুমান?
দেবদত্তক

@ দেবদত্তক: আমি সি ++ তেমন কিছুই জানি না তবে আমার অনুমান যে ছোট এবং বিশেষায়িত প্রোগ্রামগুলির জন্য জাভা আপনাকে দ্রুত ফলাফল দিতে পারে কারণ কোডের সেই অংশগুলিকে সংকলন করতে সময় নষ্ট হবে না যেখানে খুব বেশি গতি নেই।
ডিসপ্লেনেম

1
@ দেবদত্তক আপনার অনুমানটি এই উইকি পৃষ্ঠায় আলোচনা করা হয়েছে en.m.wikedia.org/wiki/Java_performance?wprov=sfla1 সংক্ষেপে, এটি সর্বদা সত্য নয়।
সুন্দর রাজন

57

"দোভাষী ভাষা" বা "সংকলিত ভাষা" পদগুলি অর্থবোধ করে না, কারণ যে কোনও প্রোগ্রামিং ভাষার ব্যাখ্যা করা যায় এবং / অথবা সংকলন করা যায়।

জাভা বিদ্যমান বাস্তবায়নের জন্য, সবচেয়ে করার জন্য একটি সংকলন পদক্ষেপ জড়িত বাইটকোড তাই তারা সংকলন জড়িত। রানটাইমটিও বাইটোকোডকে গতিশীলভাবে লোড করতে পারে, তাই বাইটকোড ইন্টারপ্রেটারের কিছু ফর্ম সর্বদা প্রয়োজন। এই দোভাষী অনুবাদকগুলি অভ্যন্তরীণভাবে স্থানীয় কোডের সংকলনটি ব্যবহার করতে পারেন বা নাও করতে পারেন।

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


5
এছাড়াও, গুগলের ভি 8 জাভাস্ক্রিপ্ট এক্সিকিউশন ইঞ্জিন কেবলমাত্র সামান্য ইন-টাইম সংকলন করে না। এটা তোলে সবসময় নেটিভ কোডে প্রনয়ন, আসলে, V8 এমনকি নেই আছে একজন দোভাষী। এটা আছে শুধুমাত্র কম্পাইলার (Maxine থেকে অনুরূপ, কিন্তু Maxine থেকে অসদৃশ V8 শুধুমাত্র একটি কম্পাইলার আছে)। এই উদাহরণগুলির তিনটিই (জিসিজে, ম্যাক্সাইন এবং ভি 8) আপনার বক্তব্যকে আরও দৃ strongly়তার সাথে প্রমাণ করে: কোনও বর্ণিত ভাষা বা সংকলিত ভাষা বলে কিছুই নেই। কোনও ভাষার ব্যাখ্যা বা সংকলন হয় না। একটি ল্যাঙ্গুয়েজ শুধু হয় (এটা আসলে শ্রীরাম Krishnamurthi দ্বারা উদ্ধৃতি এর)।
জার্গ ডব্লু মিট্টাগ

3
জাভা প্রশ্নে জাভাস্ক্রিপ্ট নিয়ে কথা বলছেন কেন?
Koray Tugay

1
@ KorayTugay ঠিক যেমন একটি উদাহরণ। আমি অবশ্যই বোঝাতে চাই না যে জাভা এবং জাভাস্ক্রিপ্টের নামের প্রথম চারটি অক্ষর ব্যতীত অন্য কিছু মিল রয়েছে।
তারকাচিহ্ন

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

53

জাভা বাইটকোডে সংকলিত হয়, যা জাভা ভিএম-তে যায়, যা এটি ব্যাখ্যা করে।


33
... তবে কঠোরভাবে সঠিক নয়।
স্টিফেন সি

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

1
জেআইটি প্রযুক্তিগতভাবে এটি সরাসরি চালাচ্ছে না। এটি কীভাবে কার্যকর করা হয়েছিল তা কেবল মনে আছে।
ক্লিটাস

মেহরদাদ: সম্মত, আমি এখানে সম্ভবত জেআইটি অপারেশনগুলি বর্ণনা করিনি, যেমনটি আমি জেভিএম পর্যন্ত বিবেচনা করেছি এবং যাইহোক আমি আমার উত্তর সহজ রাখছি :)
দুপুর সিল্ক

7
ক্লিটাস: জেআইটির পরে , এটি সরাসরি কার্যকর করা হবে। জেআইটি বাইকোডের একটি টুকরো পড়ছে (উদাহরণস্বরূপ একটি সম্পূর্ণ পদ্ধতি) এবং মেশিনের কোডে সংকলন করে এতে ঝাঁপিয়ে পড়ে।
মেহরদাদ আফশারি

12

জাভা একটি সংকলিত প্রোগ্রামিং ল্যাঙ্গুয়েজ, তবে এক্সিকিউটেবল মেশিন কোড থেকে সরাসরি সংকলন করার পরিবর্তে, এটি JVM বাইট কোড নামক একটি মধ্যবর্তী বাইনারি ফর্মের সাথে সংকলন করে। বাইট কোডটি তখন প্রোগ্রামটি চালনার জন্য সংকলিত এবং / অথবা ব্যাখ্যা করা হয়।


11

উভয় ধরনের। প্রথমে জাভা বাইকোডে সংকলিত (কেউ কেউ "অনুবাদ" বলতে পছন্দ করবে) যা পরে সংকলিত হয়, বা জেআইটির মেজাজের উপর নির্ভর করে ব্যাখ্যা করা হয়।


32
যে উন্নত মুড আছে সফ্টওয়্যার একটি উন্নত টুকরা, :)
Thorarin

5
জেআইটি প্রকৃতপক্ষে একটি সফটওয়্যারটির একটি অত্যাধুনিক টুকরো, যা রানটাইম তথ্যের উপর ভিত্তি করে অপ্টিমাইজেশন করতে পারে (যেমন কোনও প্রোফাইলার), যা সামনের সময়ের সংকলক করতে পারে না (কারণ এতে রানটাইম আচরণের তথ্য নেই) সময় আগে একটি প্রোগ্রাম)। তবে সম্ভবত এটির সত্যিই মুড নেই ... :-)
জেস্পার

5

জাভা সংকলন এবং ব্যাখ্যা উভয়ই করে,

জাভাতে, প্রোগ্রামগুলি এক্সিকিউটেবল ফাইলগুলিতে সংকলিত হয় না ; এগুলি বাইটোকোডে সংকলিত হয় (যেমন পূর্বে আলোচনা হয়েছে), যা জেভিএম (জাভা ভার্চুয়াল মেশিন) তারপরে রানটাইমে ব্যাখ্যা / সম্পাদন করে। জাভা সোর্স কোডটি বাইকোডে সংকলিত হয় যখন আমরা জাভাক সংকলক ব্যবহার করি। বাইকোড ডিস্কে ফাইল এক্সটেনশন। ক্লাসের সাহায্যে সংরক্ষিত হয়

যখন প্রোগ্রামটি চালানো হবে, তখন বাইটকোড রূপান্তরিত হবে বাইটোকোড রূপান্তরিত হতে পারে, ইন-টাইম (জেআইটি) সংকলকটি ব্যবহার করে। ফলাফলটি মেশিন কোড যা পরে মেমরিকে খাওয়ানো হয় এবং কার্যকর করা হয়।

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

একটি অনুবাদিত ভাষা হ'ল এক প্রকার প্রোগ্রামিং ল্যাঙ্গুয়েজ যার জন্য এর বেশিরভাগ বাস্তবায়ন মেশিন-ভাষা নির্দেশাবলীতে কোনও প্রোগ্রাম সংকলন না করে সরাসরি এবং অবাধে নির্দেশনা কার্যকর করে। দোভাষা সরাসরি প্রোগ্রামটি সম্পাদন করে, প্রতিটি বিবৃতি ইতিমধ্যে মেশিন কোডে সংকলিত এক বা একাধিক সাবরুটাইনগুলির অনুক্রমে অনুবাদ করে।

একটি কম্পাইল করা ভাষা একটি প্রোগ্রামিং ভাষা যার বাস্তবায়নের সাধারণত কম্পাইলার (অনুবাদক উৎস কোড থেকে মেশিন কোড উৎপন্ন), এবং দোভাষী নয় (ধাপ ধাপে উত্স কোডের নির্বাহক, যেখানে কোন প্রাক রানটাইম অনুবাদ সঞ্চালিত) হল

জাভা-র মতো আধুনিক প্রোগ্রামিং ল্যাঙ্গুয়েজ বাস্তবায়নে প্ল্যাটফর্মের জন্য উভয় বিকল্প সরবরাহ করা ক্রমশ জনপ্রিয়।


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

এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ. সুতরাং যদি বাইটোকডটি মেশিন কোডে রূপান্তর না করা হয় তবে কী হবে? আমি এমন দৃশ্যের কথা ভাবতে পারি যেখানে বাইটকোড হ'ল কিছু প্রসেসরের জন্য স্থানীয় নির্দেশ সেট এবং তারপরে কোনও রূপান্তরের প্রয়োজন নেই। বা আমি কিছু মিস করছি
প্রধানমন্ত্রী

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

-2

জাভা হ'ল একটি বাইট-সংকলিত ভাষা যা জাভা ভার্চুয়াল মেশিন নামে একটি প্ল্যাটফর্মকে লক্ষ্য করে যা স্ট্যাক-ভিত্তিক এবং অনেক প্ল্যাটফর্মে খুব দ্রুত বাস্তবায়ন করে।


1
"বাইট-সংকলিত" এর অর্থ কী?
জেস্পার

2
@ জেস্পার: "বাইট-সংকলিত" এর অর্থ সাধারণত "বাইকোডে সংকলিত"। "বাইটকোড" একটি সাধারণ শব্দ যা কোনও প্রকারের অ-পাঠ্য মধ্যবর্তী কোড (সাধারণত মেশিন-কার্যকর নয়) coversেকে দেয়।
গ্রেগ হিউগিল

-3

থেকে উদ্ধৃতি: https://blogs.oracle.com/ask-arun/entry/run_your_java_applications_f

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

সুতরাং আমি বলব জাভা অবশ্যই একটি সংকলিত ভাষা।

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