'আরজিভি' হিসাবে কমান্ড লাইন যুক্তি নামকরণের সম্মেলনটি কোথা থেকে এসেছে?


18

দেখে মনে হচ্ছে পাইথন , পিএইচপি , এবং রুবি সমস্ত কমান্ড লাইন আর্গুমেন্টের তালিকা উল্লেখ করতে "আরজিভি" নাম ব্যবহার করে। "আরজিভি" নামটি কোথা থেকে এসেছে? "আরগস" এর মতো কিছু হয় না কেন?

আমার অনুমান যে এটি সি থেকে এসেছে, যেখানে ভি "ভেক্টর" হিসাবে দাঁড়াবে। উইকিপিডিয়ায় একটি পাদটীকা রয়েছে যা বলে:

এই ভেরিয়েবলের নামের ভেক্টর শব্দটি স্ট্রিংগুলিকে বোঝাতে প্রথাগত অর্থে ব্যবহৃত হয়।

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


2
এবং আমি সর্বদা "ভি" "মানগুলির" পক্ষে দাঁড়িয়েছি
ওয়ারেন

উত্তর:


25

অন্য উত্তরগুলির নোটটি argvসি থেকে আসে, তবে সি কোন অ্যারেটিকে "ভেক্টর" বলার ধারণাটি পেয়েছিল?

সরাসরি, এটি বিসিপিএল থেকে এসেছিল । যদিও argv(স্ট্রিং) আর্গুমেন্টের ভেক্টরকে বোঝায়, বিসিপিএল-তে ভেক্টরগুলিতে স্ট্রিং রয়েছে তবে তারা স্ট্রিং লিটারাল ছিল এবং তারা পাস্কাল স্ট্রিংয়ের মতো কাজ করেছিল। ভেক্টরের দুটি উপাদান ছিল: দৈর্ঘ্য এ literal!0এবং অক্ষর literal!1। মতে ক্লাইভ লঘু স্ট্রিং তাদের চরিত্র অ্যারে বাক্সে "unpacking", অ্যারে তারপর রূপান্তর স্ট্রিং বাক্সে "repacking" তাদের দ্বারা কাজে ব্যবহৃত হয়েছিল: সি যেখানে স্ট্রিং সঙ্গে এই তুলনা হয় চরিত্র অ্যারে।

সুতরাং হ্যাঁ, সি ভেক্টরের জন্য ভি ব্যবহার করেছে কারণ এর আগে আরও কিছু এই কাজ করেছিল। এখন, বিসিপিএল এর আগে ভেক্টরটি এভাবে ব্যবহার করার আগে কি কিছু ছিল? বিসিপিএল নিজেই "কেমব্রিজ [বা সম্মিলিত] প্রোগ্রামিং ল্যাঙ্গুয়েজ" এর সরলকরণ ছিল: এটি vector1-মাত্রিক অ্যারেরmatrix প্রতিশব্দ হিসাবে এবং 2-মাত্রিক অ্যারের প্রতিশব্দ হিসাবে ব্যবহৃত হয়েছিল । এটি ভেক্টর এবং ম্যাট্রিক্সের গণিতে স্বীকৃতির সাথে সামঞ্জস্যপূর্ণ , যদিও সিপিএলে তারা কেবলমাত্র স্মৃতিবিজ্ঞান এবং গাণিতিক কাঠামোর সাথে সম্পর্কিত কোনও বৈশিষ্ট্য নেই।

আমরা কম্পিউটারের ভাষা সংক্রান্ত সময়ের সাথে আরও পিছনে যেতে পারি? আমাদের ট্রেইলের একটি সম্ভাব্য শাখা ঠাণ্ডা চলে। সিপিএল আলগোল 60 (1963 আপডেট) দ্বারা ভারী প্রভাবিত হয়েছিল। এখন ALGOL 68 তে এমন কিছু রয়েছে যা "প্যাকড ভেক্টর" হিসাবে বর্ণিত ছিল bitsএবং যেমন bytes: তবে এগুলি আলগোলের আগের প্রকাশে ছিল না যা সবেমাত্র ARRAYঅ্যারে উল্লেখ করেছিল। ১৯৯66 সাল থেকে বিসিপিএল আসার সাথে সাথে সিপিএল অবশ্যই এর আগে ছিল (তবে ১৯6363 এর পরে): ALGOL 68 (1968 এবং 1973 সালে প্রমিত) সরাসরি প্রভাব ফেলতে পারে না।

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


1
এটি বিতে উপস্থিত ছিল, এটি সি ও বিসিপিএল-এর মধ্যে যেমন হয়েছিল তেমনই আসছিল।
রবি ডি

5
আর বিসিপিএল কোথায় পেল? গণিত থেকে, যেখানে একটি "ভেক্টর" হ'ল মানগুলির এক-মাত্রিক তালিকা list
কালেব

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

1
@ কালেব সঠিক। বিসিপিএল (1967 ডলার) এবং এপিএল (1960 ডলার) এর সময়ে, বেশিরভাগ প্রোগ্রামারগণ গণিত বিভাগে শিক্ষিত ছিলেন। সেই দিনগুলিতে, স্নাতক সংক্রান্ত কোনও সিএস প্রোগ্রাম ছিল না।
রস প্যাটারসন

2
@ রোসপ্যাটারসন সিপিএল ক্যামব্রিজ থেকে আসে, যার ১৯৫৩ সাল থেকে কম্পিউটার বিজ্ঞানের ডিগ্রি ছিল (যদিও এটি রূপান্তর কোর্স হিসাবে রয়েছে)। 1960 এর দশকে সিএস গ্র্যাজুয়েটদের সংক্ষিপ্ত নয় এমন কয়েকটি জায়গার মধ্যে এটি সম্ভবত ছিল।

12

argvসি থেকে আসে, যেখানে main()ফাংশনটি এমন একটি argvপরামিতি নেয় যা প্রোগ্রামটিতে আর্গুমেন্টের ভেক্টরকে উপস্থাপন করে। আপনি এটিও বলতে পারেন যে এটি ইউনিক্স থেকে এসেছে, এটি প্রায় একই বলে যে এটি সি থেকে আসে কারণ ইউনিক্সের বেশিরভাগ বিকাশ ঘটেছিল সিতে, এবং ইউনিক্স এবং সিটির একটি দীর্ঘ ভাগ করা ইতিহাস রয়েছে।


1
সর্বদা ভাবা হত আরগভির অর্থ "যুক্তি মূল্যবোধ" মানে খুশি আমি নতুন কিছু শিখলাম :)
হনজা ব্র্যাবেক

2
ডান এবং argc(যুক্তি গণনা) এর মধ্যে আইটেমের সংখ্যা ছিল argvকারণ সি তে অ্যারেগুলির নির্দিষ্ট মাত্রা নেই don't
রস প্যাটারসন

9

সিতে main()ফাংশনটি দুটি পরামিতি নিতে পারে: argcযা "আর্গুমেন্ট গণনা" এবং argvযা "আর্গুমেন্ট ভেক্টর" হিসাবে দাঁড়িয়েছে। সিতে আপনার কাছে ভেক্টরের মতো অভিনব অবজেক্ট নেই, এজন্য আপনাকে আইটেমের সংখ্যায় পাস করতে হবে argc। বিপরীতে, আপনি যে ভাষাগুলির উল্লেখ করেছেন তাতে ভেক্টর বা তালিকার মতো জিনিস রয়েছে যা তাদের নিজস্ব আকার জানে, তাই এটির argcপ্রয়োজন হয় না। নাম argvআটকে গেল।

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