জাভা 8 এর প্রসঙ্গে "চিনি", "দেশুগার" পদগুলি কী কী?


107

আমি প্রায়শই জাভা 8-তে 'চিনিযুক্ত' এবং 'ডিজুগারিং' সম্পর্কে শুনি, এই শর্তগুলির অর্থ কী? এগুলি কি ধারণাগত বা সিনট্যাকটিক্যাল।

কিছু উদাহরণ:

জাভাতে ডিফল্ট পুনরাবৃত্ত লুপ পুনরায় সংযুক্তকরণ

সংকলন সিনট্যাকটিক চিনি সম্পর্কে পর্যবেক্ষণ।

উত্তর:


136

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

উইকিপিডিয়ায় সিনট্যাকটিক চিনির সংজ্ঞা রয়েছে তবে আপনার লক্ষ্য রাখতে হবে যে সমস্ত চিনি মূলত সিনট্যাকটিকাল নয় (সাম্প্রতিক সমস্ত মিষ্টি সংযোজন কেবল সংকলক পরিবর্তন ছিল না)।

এখানে কিছু উদাহরণ আছে :

  • পোস্টফিক্স এবং উপসর্গ ইনক্রিমেন্ট অপারেটর ( i++এবং ++i)। তাদের একমাত্র উদ্দেশ্য অতিরিক্ত বিবৃতি লেখা এড়ানো। তারা খাঁটি চিনি।
  • +=, |=, &=, ইত্যাদি চিনি একই ধরনের তৈরি।
  • আদিম ধরণের এবং বস্তুর মধ্যে অন্তর্নিহিত রূপান্তর হ'ল চিনিও।
  • টাইপ অনুমান খুব চিনি।
  • জাভা 8 এর সাথে আসা ল্যাম্বডা এক্সপ্রেশনটি অন্যরকম চিনির ( এটি কেবল সিনট্যাক্টিক্যাল নয় )

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

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

এই বলা হচ্ছে, desugering হয় বোঝায়

  • প্রক্রিয়া যার মাধ্যমে আপনি একটি ভাষায় অপ্রয়োজনীয় সমস্ত মুছে ফেলেন
  • কোনও প্রক্রিয়া যার মাধ্যমে একটি কোড প্রসেসার শর্করাযুক্ত বিবৃতিটির পিছনে কী রয়েছে তা খুঁজে বের করে (এটি উদাহরণস্বরূপ টাইপের অনুক্রমের সাথে জড়িত থাকতে পারে)

6
+1 আপনি ডেসুগার অংশ সম্পর্কেও উল্লেখ করতে পারেন কারণ এটি ওপি যা বলেছে তার উত্তরটি সম্পূর্ণ করবে! :)
রাহুল ত্রিপাঠি

6
@ অ্যাডেজাল্ফ ভাবুন যখন আপনি কেবল কোনও ফাংশন পাস করতে সক্ষম হবেন আপনি তৈরি হওয়া সমস্ত ইন্টারফেসগুলি সরাতে সক্ষম হবেন তখন আপনার প্রোগ্রামগুলি কতটা পাতলা হবে Think
অস্বীকার করেন সাগুরেট

42
"সিনট্যাকটিক চিনি সেমিকোলনের ক্যান্সার সৃষ্টি করে।" - অ্যালান পেরিলিস
স্টুয়ার্ট

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

3
এই প্রশ্নটি অনেক মনোযোগ পেয়েছে অ্যাডমিনদের এমন মন্তব্য মুছে ফেলা বিরল নয় যেগুলি গঠনমূলক বলে মনে হয় না। আমি মনে করি না যে আপনার মন্তব্য মুছতে হয়েছিল তবে এটি খুব বেশি আনেনি।
অস্বীকার করেন সাগুরেট

17

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

"ল্যাম্বডা এক্সপ্রেশনগুলির অনুবাদ" এর এই দস্তাবেজে মনে হচ্ছে আপনি যদি নির্দিষ্টকরণে আগ্রহী হন তবে কী চলছে তার আসল বিবরণ রয়েছে।

দস্তাবেজের একটি মূল বাক্যাংশ:

ল্যাম্বডাসকে বাইটোকোডে অনুবাদ করার প্রথম ধাপটি ল্যাম্বডা বডিটি একটি পদ্ধতিতে ডিজাইন করে দিচ্ছে।


6

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

  • প্রতিটি লুপের জন্য লুপগুলির জন্য সি স্টাইলের "ডিজাইনার্ড" করা হয়
  • প্রতিশ্রুতি যদি একটি বাক্যটিতে "ডিজাইন করা" হয়
  • অভ্যন্তরীণ ক্লাসগুলি একটি স্বতন্ত্র শ্রেণি হিসাবে উপস্থাপিত হয়

স্ট্রিং সুইচ, মুছে ফেলা টাইপ করুন, ...

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