অপারেটরদের সাহচর্য কী এবং এটি গুরুত্বপূর্ণ কেন?


89

এসোসিয়েটিভিটি (অপারেটরের জন্য) কী এবং এটি কেন গুরুত্বপূর্ণ?

আপডেট হয়েছে: অপারেটর এসোসিয়েটিভিটি


4
কী ধরনের সাহস? অপারেটর সাহস?
Ikke

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

4
@ রব অ্যালেন তার অন্যান্য পোস্ট দেখুন। এছাড়াও, আমি বলিনি যে তাঁর নিজের পোস্টের উত্তর দেওয়া উচিত নয়, কেবল এটি কার্যকর ছিল না। এবং আমি আপনার সাথে একটি চুক্তি করব - আপনি কীভাবে আমার বাক্যাংশটি আমাকে না বললে আমি এখানে আপনার পোস্টগুলিকে কীভাবে বাক্যবিন্যাস করব তা বলব না।

উত্তর:


106

অপারেটরগুলির জন্য, এসোসিয়েটিভিটির অর্থ হ'ল যখন একই অপারেটরটি একটি সারিতে উপস্থিত হয়, তখন আমরা প্রথমে কোন অপারেটরের উপস্থিতি প্রয়োগ করি apply নীচে, Qঅপারেটর হতে দিন

a Q b Q c

যদি Qসহযোগী বামে থাকে, তবে এটি হিসাবে মূল্যায়ন করে

(a Q b) Q c

এবং যদি এটি সঠিক সাহসী হয়, তবে এটি হিসাবে মূল্যায়ন করে

a Q (b Q c)

এটি গুরুত্বপূর্ণ, যেহেতু এটি একটি অভিব্যক্তির অর্থ পরিবর্তন করে। পূর্ণসংখ্যার গাণিতিক সহ বিভাগ অপারেটরটিকে বিবেচনা করুন, যা সাহচর্য বাকী রয়েছে

4 / 2 / 3    <=>    (4 / 2) / 3    <=> 2 / 3     = 0

যদি এটি সঠিক সাহসী হয় তবে এটি একটি অপরিজ্ঞাত প্রকাশের মূল্যায়ন করবে, যেহেতু আপনি শূন্য দ্বারা ভাগ করবেন

4 / 2 / 3    <=>    4 / (2 / 3)    <=> 4 / 0     = undefined

আপনি কি জানেন যে সাহিত্যতা কীভাবে খুঁজে পাওয়া যায় তা প্রদত্ত ব্যাকরণের জন্য এটি বাম বা ডান কিনা?
ব্যবহারকারী 2510115

4
উদাহরণস্বরূপ expr -> expr + term;, বাম মিশ্রণমূলক এবং expr -> term + exprডান এসোসিয়েটিভ।
সাবিন সেবাস্তিয়ান

15
আপনার উত্তরের প্রথম লাইনে "যখন একই অপারেটর উপস্থিত হয়" এর পরিবর্তে "যখন একই অগ্রাধিকারের অপারেটর উপস্থিত হয়" বলা আরও উপযুক্ত। উদাহরণ: একটি * খ / সি => যেখানে * এবং / একই প্রাধান্য রয়েছে।
1

4
@ 1O1 ধন্যবাদ, তবে যদি একই নজিরযুক্ত অপারেটরগুলির আলাদা সাহচর্য থাকে তবে কী হবে? বাম-সহযোগী হবে তবে ডান a * b / cসংশ্লেটিভ হবে কীভাবে মূল্যায়ন *করবে /? তারপরে একটি দ্বন্দ্ব আছে। সুতরাং আমি মনে করি যে আপনি যদি একাধিক অপারেটরগুলি কভার করতে চান তবে "যখন একই নজির এবং সাহচর্য সহ অপারেটরগুলি" বলা দরকার।
জোহানেস স্কাউব -

4
@ মার্ক আমি জানি না, তবে কীভাবে এটি কাজ করা উচিত তা আমি ভাবতে পারি না। সম্ভবত অতিরিক্ত স্ট্যাকওভারফ্লো প্রশ্নটি মূল্যবান
জোহানেস স্কাউব - লিবিড

13

তিন ধরণের সাহচর্য রয়েছে:

গণিতে সহযোগী সম্পত্তি

প্রোগ্রামিং ভাষাতে অপারেশন অর্ডার

সিপিইউ ক্যাশে সহযোগিতা।

গণিতে অ্যাসোসিয়েটিভ সম্পত্তি হ'ল সংযোজন (+) হিসাবে অপারেটরগুলির একটি সম্পত্তি। এই বৈশিষ্ট্যটি আপনাকে কোনও বিবরণের মান পরিবর্তন না করেই প্রথম বন্ধনী পুনরায় সাজানোর অনুমতি দেয়, যেমন:

(a + b) + c = a + (b + c)

প্রোগ্রামিং ভাষায়, অপারেটরের সাহচর্যতা (বা স্থিরতা) এমন একটি সম্পত্তি যা নির্ধারণ করে যে একই অগ্রাধিকারের অপারেটরগুলি বন্ধনীগুলির অনুপস্থিতিতে কীভাবে দলবদ্ধ করা হয় ; অর্থাত প্রতিটি অপারেটরকে কোন ক্রমে মূল্যায়ন করা হয়। এটি প্রোগ্রামিং ভাষার মধ্যে পার্থক্য করতে পারে।

সিপিইউ ক্যাশে, অস্যাসিয়েটিভিটি পারফরম্যান্স অনুকূলকরণের একটি পদ্ধতি।


4
অপারেটরের অ্যাসোসিয়েটিভিটি (বা স্থিরতা) এমন একটি সম্পত্তি যা নির্ধারণ করে যে একই অগ্রাধিকারের অপারেটরগুলি বন্ধনীগুলির অনুপস্থিতিতে কীভাবে শ্রেণিবদ্ধ করা হয় - এই শব্দগুচ্ছটি আমাকে বোঝানোর জন্য ঠিক নিখুঁত ছিল
রাফায়েল আইং

7

সরল !!

Left Associative means we evaluate our expression from left to right

Right Associative means we evaluate our expression from right to left 

আমরা জানি *, /, এবং% এর একই প্রাধান্য রয়েছে তবে সাহচর্য অনুসারে, উত্তর পরিবর্তন হতে পারে:

উদাহরণস্বরূপ: আমাদের এক্সপ্রেশন: 4 * 8/2% 5

Left associative:   (4 * 8) / 2 % 5 ==> (32 / 2) % 5 ==> 16 % 5 ==> 1

Right associative:  4 * 8 /(2 % 5) ==>  4 * ( 8 / 2) ==> 4 * 4 ==> 16

4
উত্তরে ত্রুটি আছে বলে মনে হচ্ছে: 2 % 5মূল্যায়ন করুন 2, না 0
6005

6

এটি একই নজির অপারেটরদের জন্য মূল্যায়ন ক্রম। বাম দিক থেকে ডান বা বাম দিক থেকে অর্ডার সম্পর্কিত বিষয়গুলি। জন্য

3 - 2 - 1

যদি এটি বাম থেকে ডানদিকে যায় তবে তা হয়

(3 - 2) - 1

এবং 0 হয় যদি এটি বাম থেকে ডান হয় তবে তা হয়

3 - (2 - 1)

এবং এটি ২ হয় most

আপডেট 2020:

পরিস্থিতিটি 3 - 2 - 1তুচ্ছ মনে হতে পারে, যদি দাবিটি হয়, "অবশ্যই আমরা এটি বাম থেকে ডানে করি"। তবে অন্যান্য ক্ষেত্রে যেমন রুবিতে বা নোডজেএসে করা হয়েছে:

$ irb
2.6.3 :001 > 2 ** 3 ** 2
 => 512 

**অপারেটর "ক্ষমতায়" হয়। সাহচর্যটি ডান থেকে বামে। এবং এটা করা হয়

 2 ** (3 ** 2)

যা এর 2 ** 9অর্থ 512, পরিবর্তে

(2 ** 3) ** 2

যা 8 ** 2, অর্থাৎ 64


4
আপনি যদি উত্তরটি ইতিমধ্যে জানতেন তবে কেন আপনি প্রশ্নটি জিজ্ঞাসা করলেন?
রবার্ট হার্ভে

6
এটি ছিল নতুন মানুষকে সাহায্য করা। আমার মনে আছে অনেক আগে সি শিখছিলাম এবং পরবর্তীকালে সাহসীতা আসলে কী তা জানতাম না।
অবিচ্ছিন্নতা

4
আমার সন্দেহ হয় যে সি শিখছে বেশিরভাগ লোকেরা আপনার "সহায়তা" ছাড়াই করতে পারে।

4
এইচএম, উদাহরণস্বরূপ, সাহিত্যতা কি একই অপারেটরের মধ্যে সীমাবদ্ধ, বা এটি একই অগ্রাধিকার স্তরের অপারেটরদের জন্য? বই বা রেফারেন্স যাচাই না করেই অনেকে নিশ্চিতভাবেই এর উত্তর দিতে পারেন?
অবিচ্ছিন্নতা

13
@ নীল বাটারওয়ার্থ, এত বৈরী কেন? আমি মনে করি এটি আপনার নিজের প্রশ্নের উত্তর পোস্ট করা গ্রহণযোগ্য। এটি প্রায়শই জিজ্ঞাসিত প্রশ্নাগুলিতে রয়েছে এবং এটি পডকাস্টে বেশ কয়েকবার উল্লেখ করা হয়েছে।
জে কনরোড

5

যদি আপনি "অপারেটর এসোসিয়েটিভিটি" উল্লেখ করে থাকেন - এটি কীভাবে কোনও ভাষা নির্ধারণ করে যে বন্ধনীর অভাবে একই অগ্রাধিকারের অপারেটরগুলিকে কীভাবে শ্রেণিবদ্ধ করা হয়।

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

আপনি 12 - 5 + 3 লিখলে সম্ভাব্য মূল্যায়নের অন্তর্ভুক্ত:

  1. (12 - 5) + 3 = 10
  2. 12 - (5 + 3) = 4

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

সমস্ত ভাষার প্রাধান্য এবং সাহচর্য উভয়ের জন্য দৃ strongly়ভাবে সংজ্ঞায়িত নিয়ম রয়েছে। আপনি এখানে সি # এর নিয়মাবলী সম্পর্কে আরও শিখতে পারেন । অপারেটর সাধারণ ধারণা associativity এবং প্রাধান্য ভাল উইকিপিডিয়ায় আচ্ছাদিত করা হয়।


আপনার উদাহরণগুলি আরও পরিষ্কার হবে যদি তারা সবাই একই অপরেন্দ্র ব্যবহার করে।
মাইকেল কারম্যান

যদি একই নজিরযুক্ত দুটি অপারেটর প্যারান্থেসিস ব্যতীত কোনও অভিব্যক্তিতে হাজির হয় তবে তাদের মধ্যে একটির সাহচর্য ছেড়ে চলে গিয়েছিল এবং অন্যটির অধিকার আছে? এটি কেবল কোন অপারেটরটিকে এটি প্রথম খুঁজে পায় তার সাহচর্য ব্যবহার করবে?
হেক্টর

এটি একই নজির হিসাবে ঘটতে পারে না একই রকম সাহচর্য। যদি এই ঘটনাটি না ঘটে থাকে তবে থেইয়ের দ্ব্যর্থহীনতা হতে পারে যা বাস্তবের খুব অস্তিত্বের হুমকি দেয়।
অঙ্কুর এস

3

আমি ধরে নিচ্ছি আপনি বোঝাচ্ছেন অপারেটর সাহচর্যতা ...

এটি অপারেটরের কাছে অপেরেন্ডসকে বাঁধাইয়ের ক্রম। মূলত:

a - b + c

হিসাবে মূল্যায়ন করা যেতে পারে (ধরে নেওয়া - এবং + একই প্রাধান্য রয়েছে):

((a - b) + c) বা,
(a - (b + c))

অপারেটরগুলি যদি সাহসী বামে থাকে (অবিলম্বে বাম অপারেণ্ডে আবদ্ধ করুন), এটি প্রথম হিসাবে মূল্যায়ন করা হবে। যদি তারা সঠিক সাহসী হয় তবে এটি দ্বিতীয় হিসাবে মূল্যায়ন করা হবে।


1

যদি আপনি অপারেটর সাহচর্যতা বলতে চান:

এটি কীভাবে এক্সপ্রেশনগুলি বিশ্লেষণ করে তা নির্ধারণ করে। এটি একটি স্ট্যান্ডার্ড দেয়, সুতরাং প্রতিটি অভিব্যক্তি একইভাবে পার্স করা হয়।

পার্শ্ব প্রতিক্রিয়া হতে পারে যখন একই নজির আছে অপারেশন জন্য এটি বেশিরভাগই গুরুত্বপূর্ণ।


0

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


0

আমরা সকলেই জানি যে প্রাধান্য গুরুত্বপূর্ণ তবে একটি অভিব্যক্তির অর্থ ব্যাখ্যা করার ক্ষেত্রে সাহচর্যতা। অপারেটরগুলির একটি সত্যই সাধারণ পরিচয়ের চেষ্টা করুন ।


0

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

  1. প্রাধান্য বিধি
  2. সমিতি বিধি

অগ্রাধিকার বিধিগুলি ক্রমের সংজ্ঞা দেয় যাতে বিভিন্ন ধরণের "সংলগ্ন" অপারেটরদের মূল্যায়ন করা হয়। প্রতিটি প্রোগ্রামিং ভাষার অপারেটর সম্পর্কিত নিজস্ব অপারেটর অগ্রাধিকার সারণী থাকে।

সাহচর্যে ফিরে আসছি,

এটি একই নজির সহ সংলগ্ন ক্রিয়াকলাপ কার্যকর করার ক্রমকে সংজ্ঞায়িত করে। এর 3 টি স্বাদ রয়েছে,

বাম-সাহচর্যতা
ডান-অ্যাসোসিয়েটিভিটি
নন-অ্যাসোসিয়েটিভিটি

যদি কোনও অপারেটর বাম-সহযোগী হয় তবে এটি বাম থেকে ডানে একইভাবে মূল্যায়ন করে যদি এটি ডান-অ্যাসোসিয়েটিভ হয় তবে এটি ডান থেকে বামে মূল্যায়ন করে।

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