টি এল; ডিআর
জাভা সালে কারণে public static void main(String[] args)
যে
- গোসলিং চেয়েছিল
- সি তে অভিজ্ঞ কারও দ্বারা লিখিত কোড (জাভাতে নয়)
- চলমান করার জন্য ব্যবহৃত কেউ নিষ্পন্ন করা হবে পোস্টস্ক্রিপ্ট উপর খবর
সি # এর জন্য, যুক্তিটি ট্রান্সজিটিভলি অনুরূপ তাই বলার জন্য। ভাষা ডিজাইনাররা জাভা থেকে আগত প্রোগ্রামারদের জন্য প্রোগ্রামের এন্ট্রি পয়েন্ট সিনট্যাক্সকে পরিচিত রাখে । সি # স্থপতি আন্ডার হেজলসবার্গ যেমন লিখেছেন ,
... সি # এর সাথে আমাদের দৃষ্টিভঙ্গিটি কেবল জাভা প্রোগ্রামারদের একটি বিকল্প প্রস্তাব দেওয়া ছিল ...
দীর্ঘ সংস্করণ
উপরে বিস্তৃত এবং বিরক্তিকর উল্লেখ সহ ব্যাক আপ।
জাভা টার্মিনেটর হস্ত লা ভিস্তা বেবি!
ভিএম স্পেস, ২.১17.১ ভার্চুয়াল মেশিন স্টার্ট-আপ
... প্রাথমিক শ্রেণিটি জাভা ভার্চুয়াল মেশিনে যেভাবে নির্দিষ্ট করা হয়েছে তা এই স্পেসিফিকেশনের আওতার বাইরে নয়, তবে ক্লাসটির সম্পূর্ণরূপে যোগ্য নামটি নির্দিষ্ট করার জন্য হোস্ট এনভায়রনমেন্টে কমান্ড লাইন ব্যবহার করা সাধারণ is একটি কমান্ড-লাইন আর্গুমেন্ট এবং পরবর্তী কমান্ড-লাইন আর্গুমেন্টগুলির জন্য স্ট্রিং হিসাবে ব্যবহার করার জন্য পদ্ধতিটির মূল হিসাবে যুক্তি as উদাহরণস্বরূপ, কমান্ড লাইন সোলারিসের জন্য সনের জাভা 2 এসডিকে ব্যবহার করা
java Terminator Hasta la vista Baby!
একটি জাভা ভার্চুয়াল মেশিনটি ক্লাসের মেইন মেথড Terminator
(একটি নামবিহীন প্যাকেজের একটি শ্রেণি) এবং চারটি স্ট্রিং "হস্ত", "লা", "ভিস্তা" এবং "বেবি!" সহ একটি অ্যারে পাস করে এটি চালু করবে ...
... আরও দেখুন: পরিশিষ্ট: আমার আপনার জামাকাপড়, আপনার জুতো এবং আপনার মোটরসাইকেলের দরকার
- আমার ব্যাখ্যা:
কমান্ড লাইন ইন্টারফেসে সাধারণ স্ক্রিপ্টগুলির মতো ব্যবহারের জন্য লক্ষ্য নির্বাহ করা execution
গুরুত্বপূর্ণ দিক
... এটি আমাদের তদন্তে কয়েকটি মিথ্যা চিহ্ন এড়াতে সহায়তা করে।
ভিএম স্পেক, 1.2 জাভা ভার্চুয়াল মেশিন
জাভা ভার্চুয়াল মেশিন জাভা প্রোগ্রামিং ভাষার কিছুই জানে না ...
পূর্বের অধ্যায়টি অধ্যয়ন করার সময় আমি উপরে লক্ষ্য করেছি - 1.1 ইতিহাস যা আমি ভেবেছিলাম সহায়ক হতে পারে (তবে অকেজো হয়ে গেছে)।
- আমার ব্যাখ্যা:
মৃত্যুদন্ডটি কেবলমাত্র ভিএম স্পেক দ্বারা পরিচালিত হয়, যা
স্পষ্টভাবে ঘোষণা করে যে এর জাভা ভাষার সাথে কোনও সম্পর্ক নেই
=> ঠিক আছে জেএলএস এবং জাভা ভাষার সাথে সম্পর্কিত যে কোনও বিষয় উপেক্ষা করা
গোসলিং: সি এবং স্ক্রিপ্টিং ভাষার মধ্যে একটি আপস ...
উপরের ভিত্তিতে, আমি জেভিএম ইতিহাসের জন্য ওয়েবে অনুসন্ধান শুরু করেছি । সাহায্য করেনি, ফলাফলগুলিতে খুব বেশি আবর্জনা রয়েছে।
তারপরে, আমি গোসলিং সম্পর্কে কিংবদন্তিগুলি স্মরণ করেছি এবং গোসলিং জেভিএম ইতিহাসে আমার অনুসন্ধানকে সংকীর্ণ করেছি ।
ইউরেকা! জেভিএম স্পেসটি কীভাবে এসেছিল
জেভিএম ল্যাঙ্গুয়েজস সামিট ২০০৮-এর এই মূল বক্তব্যে, জেমস গোসলিং ... জাভার সৃষ্টি, ... সি এবং স্ক্রিপ্টিং ভাষার মধ্যে একটি আপস ...
- আমার ব্যাখ্যা:
সুস্পষ্ট ঘোষণা যে সৃষ্টির মুহুর্তে,
সি এবং স্ক্রিপ্টিং সবচেয়ে গুরুত্বপূর্ণ প্রভাব হিসাবে বিবেচিত হয়েছে।
ইতিমধ্যে VM- র ফটকা খেলা 2.17.1 মধ্যে স্ক্রিপ্টিং অনুমোদন দেখা,
কমান্ড লাইন আর্গুমেন্ট পর্যাপ্ত ব্যাখ্যা String[] args
কিন্তু static
এবং main
আরও খনন প্রয়োজন এখনো আছে, ...
এটি টাইপ করার সময় নোট করুন - এর জাভা-এর সাথে সি, স্ক্রিপ্টিং এবং ভিএম স্পেক 1.2 সংযুক্ত করে - আমার মনে হচ্ছে কিছু পরিচিত, কিছু ... অবজেক্ট ওরিয়েন্টেড ধীরে ধীরে চলে যাচ্ছে। আমার হাত ধরুন এবং মুভিন রাখুন 'আমরা এখন প্রায় সেখানে আস্তে আস্তে না
মূল স্লাইডগুলি অনলাইনে উপলব্ধ: 20_Gosling_keynote.pdf , মূল পয়েন্টগুলি অনুলিপি করার জন্য বেশ সুবিধাজনক।
পৃষ্ঠা 3
জাভা প্রাগৈতিহাসিক
* কি আমার চিন্তাভাবনা রুপান্তরিত
পৃষ্ঠা 9
খবর
* নেটওয়ার্কযুক্ত এক্সটেনসিবল উইন্ডো সিস্টেম
স্ক্রিপ্টিং উপর ভিত্তি করে একটি উইন্ডো সিস্টেম ....
পোস্টস্ক্রিপ্ট (!!)
পৃষ্ঠা 16
একটি বড় (তবে শান্ত) লক্ষ্য:
আমি কত কাছাকাছি যেতে পারে
"স্ক্রিপ্টিং" অনুভূতি ...
পৃষ্ঠা 19
মূল ধারণা
* বিল্ডিং সম্পর্কে ছিল
জিনিসের নেটওয়ার্ক,
একটি স্ক্রিপ্টিং দ্বারা অর্কেস্টার্ড
ভাষা
* (ইউনিক্স শেল, অ্যাপলস্ক্রিপ্ট, ...)
পৃষ্ঠা 20
ভেড়া পোশাক একটি নেকড়ে
ডেভেলপারদের তৈরি করতে সি সিট্যাক্স
আরামপ্রদ
এ-হা! আসুন সি সিনট্যাক্সের কাছাকাছি তাকান ।
"হ্যালো, ওয়ার্ল্ড" উদাহরণ ...
main()
{
printf("hello, world\n");
}
... প্রধান নামের একটি ফাংশন সংজ্ঞায়িত করা হচ্ছে। প্রধান ফাংশন সি প্রোগ্রাম একটি বিশেষ উদ্দেশ্য করে তোলে; রান-টাইম এনভায়রনমেন্ট প্রোগ্রামটি কার্যকর করা শুরু করার জন্য মূল ফাংশনটিকে কল করে।
... মূল ফাংশনে আসলে দুটি আর্গুমেন্ট রয়েছে int argc
এবং char *argv[]
যথাক্রমে যা কমান্ড লাইন আর্গুমেন্টগুলি পরিচালনা করতে ব্যবহার করা যেতে পারে ...
আমরা কি কাছাকাছি আসছি? আপনি বাজি ধরুন। উপরের উদ্ধৃতি থেকে এটি "মূল" লিঙ্কটি অনুসরণ করার মতো:
মূল ফাংশনটি হল যেখানে কোনও প্রোগ্রাম কার্যকর করা শুরু করে। এটি প্রোগ্রামটির কার্যকারিতাটির উচ্চ-স্তরের সংস্থার জন্য দায়ী এবং প্রোগ্রামটি কার্যকর করার সময় সাধারণত প্রদত্ত কমান্ড আর্গুমেন্টে এটির অ্যাক্সেস থাকে।
- আমার ব্যাখ্যা:
সি বিকাশকারীদের জন্য স্বাচ্ছন্দ্য বোধ করার জন্য, প্রোগ্রাম এন্ট্রি পয়েন্ট হতে হবে main
।
এছাড়াও, যেহেতু জাভাতে কোনও পদ্ধতি ক্লাসে থাকা প্রয়োজন, Class.main
এটি
যতটা কাছে আসে তত কাছাকাছি: স্থির অনুরোধ, কেবল শ্রেণীর নাম এবং বিন্দু,
কোনও নির্মাণকারীর দয়া করে না - সি এর মতো কিছুই জানে না।
এটি
জাভা থেকে এটিতে সহজে স্থানান্তর করার ধারণাটি বিবেচনায় নিয়ে সি ট্রান্সজিটিভভাবে প্রযোজ্য
।
পাঠকরা ভেবেছেন যে পরিচিত প্রোগ্রামের এন্ট্রি পয়েন্ট কোনও বিষয় নয়, দয়া করে স্ট্যাক ওভারফ্লো প্রশ্নগুলি অনুসন্ধান করার জন্য এবং যেখানে জাভা এসই থেকে আগত ছেলেরা জাভা এমই এমআইডিপি-র জন্য হ্যালো ওয়ার্ল্ড লেখার চেষ্টা করছেন তাদের অনুসন্ধান করার জন্য আমন্ত্রণ জানানো হয়েছে । উল্লেখ্য MIDP এন্ট্রি পয়েন্ট হয়েছে কোন main
না static
।
উপসংহার
উপরের ভিত্তিতে আমি এটি বলব static
, main
এবং String[] args
জাভা এবং সি # তৈরির মুহুর্তে প্রোগ্রামের প্রবেশের স্থানটি সংজ্ঞায়িত করার জন্য সবচেয়ে যুক্তিসঙ্গত পছন্দ ছিল ।
পরিশিষ্ট: আমার আপনার জামাকাপড়, আপনার জুতো এবং আপনার মোটরসাইকেলের দরকার
স্বীকার করতে হবে, ভিএম স্পেস ২.১17.১ পড়াটা ছিল মজাদার।
... কমান্ড লাইন
java Terminator Hasta la vista Baby!
একটি জাভা ভার্চুয়াল মেশিনটি ক্লাসের মেইন মেথড Terminator
(একটি নামবিহীন প্যাকেজের একটি শ্রেণি) এবং এটি "হস্ত", "লা", "ভিস্তা" এবং "বেবি!" চারটি স্ট্রিং যুক্ত একটি অ্যারে পাস করে শুরু করবে।
ভার্চুয়াল মেশিনটি কার্যকর করতে যে পদক্ষেপগুলি গ্রহণ করতে পারে Terminator
সেগুলির রূপরেখাটি আমরা এখন পরবর্তী অংশে আরও বর্ণিত লোডিং, লিঙ্কিং এবং প্রারম্ভিককরণের প্রক্রিয়াগুলির রূপরেখা হিসাবে রূপরেখা করি ।
প্রাথমিক প্রয়াস ... আবিষ্কার করে যে ক্লাস Terminator
লোড করা হয়নি ...
Terminator
লোড হওয়ার পরে , মূলটি চালিত হওয়ার আগে এটি আরম্ভ করাতে হবে এবং প্রারম্ভিক হওয়ার আগে কোনও ধরণের (শ্রেণি বা ইন্টারফেস) সর্বদা সংযুক্ত থাকতে হবে। লিঙ্কিংয়ের (§2.17.3) যাচাইকরণ, প্রস্তুতি এবং (allyচ্ছিকভাবে) রেজোলিউশন জড়িত ...
যাচাইকরণ (§2.17.3) পরীক্ষা করে যে লোড হওয়া উপস্থাপনাটি Terminator
ভাল গঠন করেছে ...
রেজোলিউশন (.12.17.3) ক্লাস থেকে প্রতীকী রেফারেন্সগুলি পরীক্ষা করার প্রক্রিয়া Terminator
...
Terminator
ওহ
থেকে প্রতীকী রেফারেন্স ।