অ্যালান কে এই শব্দটি আবিষ্কার করার আগে তারা ওজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং কে কী বলেছিল?


22

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

উত্তর:


39

আসলে "অজেনা ওরিয়েন্টেড প্রোগ্রামিং" শব্দটি প্রকাশ করার সময় অ্যালান কেয়ের মনে স্মলটাক ছিল না :

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

এটির মূল ধারণার নিম্নলিখিত অংশ ছিল।

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

সিমটালক এই ধারণার ফল ছিল, সিমুলার কাছ থেকে "অবজেক্ট" এবং "শ্রেণি" ধারণাগুলি ধার করা এবং প্রসারিত করা, যা সিমুলা পরিবর্তিতভাবে ALGOL থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছিল, যেমন ক্রিসটেন নাইগার্ড এবং ওলে-জোহানের "সিমুলা ভাষার বিকাশ" সম্পর্কে বর্ণিত ডাহল (1978, পৃষ্ঠা 253):

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

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

আরও অনুপ্রেরণা, বিশেষত উপ-শ্রেণিবদ্ধের জন্য, সিএআর হোয়ারের রেকর্ড শ্রেণি ছিল (পৃষ্ঠা 258):

হোয়ারের সাবক্লাস ধারণাটি (68) একটি প্রাকৃতিক সূচনা পয়েন্ট ছিল, তবে দুটি অসুবিধা ছিল:

  1. আমাদের নিজস্ব ক্রিয়া এবং স্থানীয় ডেটা স্ট্যাকগুলি সহ কেবলমাত্র বিশুদ্ধ ডেটা রেকর্ড নয়, প্রক্রিয়াগুলির সাবক্লাসগুলির প্রয়োজন।
  2. আমাদের প্রচলিত প্রক্রিয়া বৈশিষ্ট্যগুলিও একসাথে এইভাবে সংঘবদ্ধ করা দরকার যেগুলি পরে প্রয়োগ করা যেতে পারে, বিভিন্ন পরিস্থিতিতে বিভিন্ন পরিস্থিতিতে আগে থেকে জানা যায় না।

সাফল্য ছাড়াই আমাদের প্রয়োজনীয়তা মেটাতে হোয়ের রেকর্ড ক্লাসের কাঠামোটিকে খাপ খাইয়ে নেওয়ার প্রয়াসে 1966 সালের শরত্কালে প্রচুর সময় ব্যয় হয়েছিল। সমাধানটি হঠাৎ করেই এসেছিল ১৯66 December সালের ডিসেম্বরে, "উপসর্গ" ধারণাটি নিয়ে। আমরা একটি সেতুর অ্যাটল বুথের দিক দিয়ে ভাবছিলাম, এমন একটি গাড়ির সারি ছিল যা ট্রাক বা বাস ছিল। (এই উদাহরণটি (দহল এবং নাইগার্ড 1968) এ পুনরায় প্রদর্শিত হবে)।

"শ্রেণি" এবং "অবজেক্ট" শব্দটিও ওলে-জোহান ডাহল, বোজরম মাইহরহগ এবং ক্রিস্টেন নাইগার্ড (পৃষ্ঠা 4-5) দ্বারা সিমুলা 67 কমন্স বেস ভাষাতে প্রদর্শিত হয় :

ব্লক ধারণাটি "সাব-সমস্যা" বা "সাব-অ্যালগরিদম" এর স্বজ্ঞাত ধারণার সাথে সম্পর্কিত যা গোঁড়া অ্যাপ্লিকেশন অঞ্চলে পচে যাওয়ার একটি দরকারী ইউনিট।

একটি ব্লক হ'ল আনুষ্ঠানিক বিবরণ, বা একটি সামগ্রিক ডেটা কাঠামো এবং এবং সম্পর্কিত আলগোরিদিম এবং ক্রিয়াগুলির "প্যাটার্ন"।

...

একটি "শ্রেণি" ঘোষণার মাধ্যমে যুক্ত এবং "আন্তঃসম্পর্কিত রেফারেন্স" (পয়েন্টার), দূরবর্তী অ্যাক্সেসিং "," অর্ধ সমান্তরাল "ক্রিয়াকলাপ এবং ব্লক" কনটেনটেশন "এর মাধ্যমে যুক্ত একটি প্রসারিত ব্লক ধারণা চালু করা হয়েছে।

ক্লাসগুলি অধ্যায় 1.3.3 (পৃষ্ঠা 5) এ আরও বিশদে আলোচনা করা হয়েছে:

সিমুলা 67-তে একটি কেন্দ্রীয় নতুন ধারণা হ'ল "অবজেক্ট"। একটি অবজেক্ট হ'ল একটি স্ব-অন্তর্ভুক্ত প্রোগ্রাম (ব্লক উদাহরণ), যার নিজস্ব স্থানীয় ডেটা এবং ক্রিয়াগুলি "শ্রেণির ঘোষণার" দ্বারা সংজ্ঞায়িত হয়। শ্রেণীর ঘোষণাপত্র একটি প্রোগ্রাম (ডেটা এবং ক্রিয়া) প্যাটার্নকে সংজ্ঞায়িত করে এবং সেই প্যাটার্ন অনুসারে অবজেক্টগুলি "একই শ্রেণীর অন্তর্ভুক্ত" বলে মনে হয়।

...

সুতরাং, যদিও "অবজেক্ট অরিয়েন্টেড" শব্দটি এখনও উদ্ভাবিত হয়নি, অ্যালান কে ১৯ 19৯ সালে স্মলটালকের বিকাশ শুরু করার আগে "শ্রেণি" এবং "অবজেক্ট" উভয়ই তাদের আধুনিক ব্যবহারের সাথে একইভাবে ব্যবহৃত হয়েছিল।

ইভান সদারল্যান্ড প্রথম অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা, হিসাবে Simula চিহ্নিতকরণের মতো দূরে যায় স্কেচপ্যাড: একটি মনুষ্যসৃষ্ট মেশিন গ্রাফিকাল যোগাযোগ ব্যবস্থা (পৃষ্ঠা 4), এছাড়াও গাড়ী হোয়ারে এর, স্বীকৃতি ডগলাস টি রস ' , কম্পিউটারে কাজ করার একটি ভাষা এবং স্কেচপ্যাড এর প্রভাব:

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

এই গবেষণার স্বীকৃতি হিসাবে উল্লেখ করা হয়েছে এবং এটির ভিত্তিতে এমআইটি লিংকন ল্যাবরেটরির প্রযুক্তিগত প্রতিবেদনেও উল্লেখ করা হয়েছে যে ডগলাস টি রস এর কাজের মাধ্যমে একটি সাধারণ প্রভাব ছিল বলে মনে হয়। রস ১৯ 19০-এর দশকের মাঝামাঝি সময়ে সিএআর হোয়েরের সাথে আলগোল 68৮ কমিটিতে বসেছিলেন, যেখানে রেকর্ডের মতো ডেটা স্ট্রাকচারের (পূর্ববর্তী বলা হয়) তার আগের কাজটি বিমূর্ত তথ্য প্রকারের ক্ষেত্রে হোয়ারের নিজস্ব ধারণাকে প্রভাবিত করেছিল [3], পরে নায়গার্ড এবং ডাহল দ্বারা জমা দেওয়া হয়েছিল সিমুলায় শ্রেণি সংজ্ঞা ব্যবস্থার উত্স হিসাবে []]।

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

তবে অ্যালান কে, স্পষ্টতই, স্মার্টটাককে প্রথম বস্তু ভিত্তিক ভাষা হিসাবে বিবেচনা করে :

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

এবং এই শব্দটি তৈরি করার পরে, আমি মনে করি সেখানে খুব একটা বিতর্ক নেই।

অবশেষে আপনার প্রশ্নের জবাব দেওয়ার জন্য: সিমুলায় এবং অ্যালগল এবং এলআইএসপি-র মতো আগের ভাষাতে অবজেক্ট ওরিয়েন্টেশনের কয়েকটি মূল ধারণা বিদ্যমান ছিল, তবে দৃষ্টান্তটি নিজেই পায় নি, সুতরাং নামটির প্রয়োজন নেই।

স্মার্টটাককে অবজেক্ট অরিয়েন্টেশনকে সামনে রেখে ডিজাইন করা হয়েছিল, কমপক্ষে অ্যালান কে যা বস্তুর অরিয়েন্টেশন হিসাবে ভেবেছিলেন :

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

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


2
+1 যথারীতি, দুর্দান্ত উত্তর ইয়ান্নিস! আমি এ থেকে বেশ কিছুটা শিখেছি।
জোনাথন হেনসন

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

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

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

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