প্রোগ্রামিং ভাষা অ্যাসাইনমেন্টের জন্য = ব্যবহার শুরু করল কেন?


13

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


8
আমাকে শুরু করবেন না ===...
হরিণ হান্টার

1
অ্যালগরিদমের কাজে সাধারণ থেকে যায়; অ্যালগরিদম লেখার সময় এটি অ্যাসাইনমেন্টের জন্য তিনটি সাধারণ লক্ষণগুলির মধ্যে একটি (অন্যরা হচ্ছেন :=এবং =)। প্রোগ্রামাররা সমস্ত ব্যবহারের =অর্থ গণিতবিদরা সমস্ত বাদ পড়েছেন তা বোঝায় না
সিপাস্ট

@ ডিয়ারহান্টার ভাল ===আছেন
ডার্ট এগারিজিয়াস

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

1
ব্যবহারকারী 251748: আমার মানিব্যাগটি একটি আসল বিশ্ব পরিবর্তনশীল, এতে প্রচুর মুদ্রা, ব্যাংক নোট এবং মাঝে মাঝে কাগজের বিট থাকে।
gnasher729

উত্তর:


14

উইকিপিডিয়া অনুসারে , অ্যাসাইনমেন্টের জন্য সমান ব্যবহার হেইঞ্জ রুটিশাউজারের ভাষা সুপারপ্ল্যান থেকে শুরু হয়, যা 1949 থেকে 1951 পর্যন্ত ডিজাইন করা হয়েছিল এবং বিশেষত ফোর্টরান দ্বারা জনপ্রিয় হয়েছিল:

একটি খারাপ ধারণার জন্য একটি কুখ্যাত উদাহরণ হ'ল অ্যাসাইনমেন্ট বোঝাতে সমান চিহ্নের পছন্দ। এটি ১৯৫7 সালে ফোর্টরানে ফিরে যায় এবং ভাষা ডিজাইনারদের আর্মি অন্ধভাবে অনুলিপি করে ফেলেছিল। কেন এটি একটি খারাপ ধারণা? কারণ এটি "=" সাম্যের জন্য তুলনা বোঝাতে একটি শতাব্দীর পুরানো traditionতিহ্যকে উড়িয়ে দেয়, এমন একটি ভবিষ্যদ্বাণী যা সত্য বা মিথ্যা। কিন্তু ফোর্টরান এর দায়িত্ব অর্পণকে বোঝাচ্ছে, সাম্যতা প্রয়োগ করে। এই ক্ষেত্রে, অপারেন্ডগুলি অসম স্থানে রয়েছে: বাম অপারেন্ডকে (একটি ভেরিয়েবল) ডান অপরেন্ডের (একটি অভিব্যক্তি) সমান করতে হবে। x = y এর অর্থ y = x এর একই জিনিস নয়।

Ik নিক্লাউস উইথ, গুড আইডিয়াস, লুকিং গ্লাসের মাধ্যমে

কনরাড Zuse ব্যবহার জন্য সমান চিহ্ন Plankalkul , যা Rutishauser এর Superplan অনুপ্রাণিত, যদিও একটি কম্পাইলার তার জন্য চিন্তিত ছিল না। কেন তিনি সমান চিহ্নটি বেছে নিলেন? আমার ধারণা আপনি তাকে জিজ্ঞাসা করতে হবে।


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

2
@ এমন: আমি গণিতে দ্বৈত অর্থ সম্পর্কে একমত নই। "লেট 4 = এক্স" "লেট এক্স = 4" এর মতোই বৈধ।
থেকে আসা

4
@ COMEFROM "লেট 4 = এক্স" হ'ল ইন্টারক্যাল স্টেটমেন্টের থেকে প্রায় অপ্রাকৃত যেখান থেকে আপনি আপনার ব্যবহারকারীর নাম নেন। "X" এর আগে কখনই উল্লেখ করা হয়নি, "লেট এক্স = {কিছু}" বা "লেট এক্সকে একটি {উইজেট}" তার মান উল্লেখ করার সাথে সাথে একটি ভেরিয়েবলের পরিচয় দেয় এবং এটি কনভেনশন দ্বারা চলকটিকে প্রথমে রাখে। এটি হুবহু কারণ, অন্তত স্বজ্ঞাততার দিক থেকে, "মান সমান ..." উল্লেখ করা থেকে এটি আলাদা জিনিস।

3
@ ডেলানান "লেট এক্স = 4" "লেট এক্স ∈ ℤ এবং এক্স = 4" এর জন্য শর্টহ্যান্ড is প্রসঙ্গটি নতুন ভেরিয়েবলের সাথে পরিচয় করিয়ে দেয় এবং =এটি কেবলমাত্র একটি শিকারী, এটি অন্য কোথাও ব্যবহার করা হয়। নোট করুন যে প্রসঙ্গের উপর নির্ভর করে, "লেট x = 4" এর অর্থ "লেট এক্স ∈ ℝ এবং এক্স = 4 "ও হতে পারত।
ডোভাল

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

7

তবে যখন আমি স্কুলে গণিত করি "x x 123"

সাধারণ শব্দবন্ধ ছিল। প্রাথমিকের প্রাথমিক সংস্করণগুলি সমমানের আগে "চলুন" কীওয়ার্ডটিতে জোর দিয়েছিল। সুতরাং এটির মূলত ফোটাগুলি "লেট" করার জন্য বোঝা যায়।

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

দুটি সম্ভাব্য ইনপুট ডিভাইস ছিল,

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

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

ঘটনাক্রমে "=" অ্যাসাইনমেন্টের জন্য ফরট্রান শুরুর আগে ".LT।", ".এলই।", ".EQ।", ".GE" ব্যবহারের জন্য অ্যাসাইনমেন্টের জন্য ব্যবহৃত হওয়ার বিষয়ে কোনও অস্পষ্টতা ছিল না। " এবং ".জিটি।" বাক্য গঠন.


যদিও আমি কোনও ধরণের অ্যাসাইনমেন্টের চেয়ে let x = 123বেশি সাদৃশ্য খুঁজে পাই assert(x == 123)
একেহোল্যান্ড

1
পিএস যদি আপনি পেডেন্টিক পান তবে কম্পিউটার আসলে কী করছে তার সুনির্দিষ্ট বিবরণ হ'ল কম্পিউটার "সরান" সিনট্যাক্স। যদিও "কপি" আরও নির্ভুল হবে।
জেমস অ্যান্ডারসন

এর 123 বৃহৎ মানের জন্য @AKHolland

যেহেতু সি ++ মুভ কনস্ট্রাক্টর উদ্ভাবিত হয়েছে, তাই কোবলগুলি "সরান" অনেক বেশি অযৌক্তিক শোনায়।
gnasher729

আমি সবসময়ই ভেবেছিলাম যে বেসিটে এলইটি বাধ্যতামূলক হওয়া উচিত, যেহেতু এটি সমানতা পরীক্ষা ছাড়াই অ্যাসাইনমেন্টটি দাঁড় করিয়ে দেবে। শর্টহ্যান্ডের COBOL- এর বাছাই করুন। সমস্যাটি হ'ল, উত্সটিতে এটি আরেকটি টোকেন গ্রহণ করবে, সেই সময়ের টিউইনি ক্ষুদ্র পিসির আরেকটি মূল্যবান বাইট। সুতরাং তারা এটিকে ফেলে দিয়েছে।
চক অ্যাডামস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.