পার্ল, আউক, বাশ, পিএইচপি ইত্যাদির মতো প্রচুর স্ক্রিপ্টিং ভাষাগুলি শনাক্তকারীদের নামের আগে একটি চিহ্ন ব্যবহার করে। আমি কেন খোঁজ নেওয়ার চেষ্টা করেছি কিন্তু এর সন্তুষ্ট উত্তর কখনও পাইনি।
পার্ল, আউক, বাশ, পিএইচপি ইত্যাদির মতো প্রচুর স্ক্রিপ্টিং ভাষাগুলি শনাক্তকারীদের নামের আগে একটি চিহ্ন ব্যবহার করে। আমি কেন খোঁজ নেওয়ার চেষ্টা করেছি কিন্তু এর সন্তুষ্ট উত্তর কখনও পাইনি।
উত্তর:
বোর্ন শেল বা এর পূর্বসূরী সম্ভবত এই সম্মেলনের উত্স। শেলগুলি $foo
শেল ভেরিয়েবল বা এনভায়রনমেন্ট ভেরিয়েবল উল্লেখ করার জন্য ব্যবহার করে, যেখানে কেবল foo
একটি আক্ষরিক স্ট্রিং হিসাবে নেওয়া হয় (যা একটি কমান্ডের নাম, একটি ফাইলের নাম, বা অন্য একটি কমান্ডে কেবল একটি শব্দ পাঠানো যেতে পারে)।
আপনার কতটা টাইপ করতে হবে তা হ্রাস করার বিষয়টি সম্ভবত। বেশিরভাগ প্রোগ্রামিং ভাষায়, আপনি যা টাইপ করেন তার বেশিরভাগটি কীওয়ার্ড হয়ে উঠবে (একটি ছোট নির্দিষ্ট সেট থেকে) এবং এমন কিছুর নাম যা ঘোষিত হয়েছে; এটির জন্য কেবল একটি নাম ব্যবহার করা বোধগম্য। স্ট্রিং লিটারালগুলি বাক্যবৈজ্ঞানিকভাবে আলাদা করতে কোটেশন চিহ্নগুলিতে আবদ্ধ (একক বা ডাবল)।
একটি ইন্টারেক্টিভ শেলটিতে, আপনি টাইপ করেন বেশিরভাগ জিনিস হ'ল কমান্ডের নাম এবং ফাইলের নাম, তাই তাদের জন্য একটি অঘোষিত ফর্ম থাকা অর্থপূর্ণ makes পরিবর্তনশীল নামগুলি প্রায়শই ব্যবহার করা হয় না, সুতরাং তাদের সাথে পূর্ববর্তী করা তাদের $
পার্থক্য করার সহজ উপায় way
চিহ্ন $
যে কিছু বুনিয়াদি স্ট্রিং ভেরিয়েবল জন্য ব্যবহার (যেমন সাংখ্যিক ভেরিয়েবল থেকে ভিন্ন) সম্ভবত পাশাপাশি একটি অনুপ্রেরণা ছিল।
$
স্কেলার ভেরিয়েবলগুলির জন্য পার্লের পছন্দটি নিঃসন্দেহে বোর্ন শেলের মতো শেল দ্বারা অনুপ্রাণিত হয়েছিল এবং পার্লের প্রাথমিক সংস্করণগুলি স্ট্রিং ল্যাটারাল হিসাবে ( print FOO
এবং print "FOO"
সমতুল্য) সাধারণত খালি শব্দ ব্যবহার করা হত । পার্লের আরও আধুনিক সংস্করণে খালি শব্দগুলির এই ব্যবহারটি অবচয় করা হয়েছে, তবে সিগিলগুলি রয়ে গেছে এবং বেশিরভাগ ক্ষেত্রে বিভিন্ন ধরণের ভেরিয়েবলগুলি পৃথক করতে ব্যবহৃত হয় । সম্ভবত যদি পার্ল স্ক্র্যাচ থেকে ডিজাইন করা হত, স্কেলারার ভেরিয়েবলগুলি একটি "খালি সিগিল" দ্বারা চিহ্নিত করা যেতে পারে, তবে তা ঘটেনি।
(বিটিডাব্লু, আওক সিগিল ব্যবহার করে না It এটির একটি $
বাক্য গঠন রয়েছে তবে এটি ক্ষেত্রের সংখ্যা বোঝায় NF
fields ক্ষেত্রের সংখ্যা; $NF
এটি শেষ ( NF
মঞ্চ) field
ভেরিয়েবল নামের একটি সাইন "সিগিল" এর একটি বিশেষ কেস , বেসিকের প্রথম দিনগুলিতে ফিরে (১৯ or৪ বা তাই) string স্ট্রিং ভেরিয়েবলের নাম বোঝাতে ব্যবহৃত হয়েছিল। আমার অনুমান, যেহেতু সংকলকগুলির পক্ষে কিছু ব্যাতিক্রম চিহ্ন ব্যবহার করে বাকী ব্যাকরণ থেকে পৃথক নামগুলি পৃথক করা সহজ হয় এবং যেহেতু এটি বেসিকের পক্ষে সাধারণ ছিল, তাই এর ব্যবহার বৃদ্ধি পেয়েছে। তবে এটিই কেবল ব্যবহৃত হয় না।
$
স্ট্রিং জন্য (এবং %
পূর্ণসংখ্যার জন্য) বেসিক একটি প্রত্যয় বদলে একটি উপসর্গ, (অ-মান) অন্তত রূপগুলো আমি নির্যাতন হয়েছিল। এটি যে তাৎপর্যপূর্ণ তা নয়, অবশ্যই - প্রত্যয় বনাম উপসর্গটি বেশ সুপরিচিত, কমপক্ষে যতদূর কম্পাইলার এবং লেজিকাল বিশ্লেষণ সম্পর্কিত concerned পাঠযোগ্যতার দিক থেকে কিছুটা পার্থক্য থাকতে পারে।
এটি বেসিক থেকে উদ্ভূত হয়েছে, যেখানে $ প্রত্যয়টি একটি স্ট্রিং ভেরিয়েবল নির্দেশ করে এবং "স্ট্রিং" হিসাবেও উচ্চারণ করা হয়। উদাহরণস্বরূপ, INKEY "কী স্ট্রিং এ" উচ্চারণ করা হয়।
তবে ডলারের সাইন কেন? ভাল, আমি স্ট্রিংয়ের জন্য কিছুটা S এর মতো দেখায়। এবং উইকিপিডিয়া অনুসারে :
যেহেতু ডলারের চিহ্নটি কয়েকটি প্রতীকগুলির মধ্যে একটি, একদিকে, কম্পিউটারের চরিত্রের সেটগুলিতে প্রায় সর্বজনীন উপস্থিত থাকে, তবে অন্যদিকে কম্পিউটার সফ্টওয়্যারগুলির মধ্যে তাদের আক্ষরিক অর্থের জন্য খুব কমই প্রয়োজন হয়, কম্পিউটারে $ চরিত্রটি ব্যবহৃত হয়েছে অনেক উদ্দেশ্যে অর্থ সম্পর্কিত নয়।
(যথাযথভাবে, কয়েক ডলারের জন্য আমি এই টাইপ করার সাথে সাথে আরও টেলিফোনে রয়েছি))
কেন না? কোনও লেসিকার লিখতে আরও সহজ যা কোনও সনাক্তকারীকে বলতে পারে যে একটি পরিবর্তনশীল হতে চলেছে (এবং এর ফলে পার্সার লিখতে সহজতর হবে), বিশেষত একটি ব্যাখ্যা করা ভাষার জন্য। কেন $
সম্ভবত, এটি সম্ভবত বেশিরভাগ traditionতিহ্য - কনস্ট্রাক্ট (বাশ? বা সম্ভবত এটির পূর্বসূরী) ব্যবহার করে কোনও প্রাথমিক ভাষার স্রষ্টার মধ্যে যে কোনও কারণেই এটি ব্যবহৃত হয়েছিল এবং পরবর্তী ভাষাগুলি এটি যে কারণে গ্রহণ করেছিল।