সমস্ত বড় হাতের অক্ষরের নামকরণের ইতিহাস কী?


20

সমস্ত বড় হাতের স্থানে নামকরণের কনভেনশন করার পেছনের ইতিহাস কী?

আমার অন্তর্নিহিততাটি হ'ল এটি সি প্রিপ্রোসেসর দিয়ে শুরু হয়েছিল, যেখানে লোকেরা সমস্ত বড় হাতের প্রিপ্রোসেসর ম্যাক্রো নামকরণ করার একটি অভ্যাস গড়ে তুলেছিল যাতে তারা কার্যকরভাবে একটি পৃথক নেমস্পেসে থাকতে পারে এবং নামের সংঘাত এড়াতে পারে। আমার বিশ্বাস হ'ল এই অনুশীলনটি তখন নন-প্রিপ্রসেসর কনস্ট্যান্টগুলিতে ( enumগুলি, constভেরিয়েবল) প্রয়োগ করার জন্য ভুল বোঝাবুঝি এবং জারজবদ্ধ করা হয়েছিল ।

সমস্ত বড় আকারের প্রিপ্রোসেসর ম্যাক্রোগুলি নামকরণ আমার পক্ষে সত্যই কার্যকর মনে হয়। সাধারণ ধ্রুবকদের নামকরণ, এত বেশি নয় (এবং যদি ম্যাক্রো নামগুলির সাথে সংঘর্ষ সৃষ্টি করে তবে প্রতি-উত্পাদনমূলক)।

আমি কি বেস বন্ধ? ধ্রুবককে মূলধন করার অনুশীলনটি সি'র পূর্বে কী ছিল?


3
আমার মনে হয় আপনি ঠিক এখানে আছেন প্রথমদিকে ছোট ছোট অক্ষর ব্যবহারের সাথে আপার ক্ষেত্রে বেশিরভাগ কিছুই ছিল প্রাথমিকভাবে case প্রারম্ভিক সি বইগুলি সাধারণত constশনাক্তকারীদের লোয়ার কেস এবং #definesউচ্চতর হিসাবে দেখায় । জাভা যদিও ধ্রুবক এবং অন্যান্য ভাষাগুলির জন্য উপরের কেস গ্রহণ করেছে, তবে আমার শেষেরটি ভুল হতে পারে। আরও গবেষণা প্রয়োজন! :)
ডেভিড আরনো

আমি @ ডেভিড আর্নোর সাথে সম্মতি জানাই সম্ভবত সি বা এসেম্বলারের কারওর স্বভাবের কারণে।
স্নুপ

উত্তর:


13

সি এর জন্য, সি প্রোগ্রামিং ল্যাঙ্গুয়েজের প্রথম সংস্করণ (ওরফে কেএন্ডআর) প্রস্তাব দেয় যে প্রিপ্রোসেসর ম্যাক্রোগুলি সম্পর্কে আপনার স্বজ্ঞাততা সঠিক:

প্রতীকী ধ্রুবক নামগুলি সাধারণত বড় হাতের অক্ষরে লেখা থাকে যাতে এগুলি সহজেই লোয়ার কেসের পরিবর্তনশীল নামগুলি থেকে আলাদা করা যায়।

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

অন্য দুটি পয়েন্টে, আপনি ব্যাটিং করছেন। 500:

Enum

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

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

enum foo  { BAR, BAZ };
enum quux { BLETCH, BAZ };

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

enum foo  { BAR, BAZ };
enum quux { BLETCH, BLRFL };

enum foo variable = BLETCH;

এমনকি সমস্ত আধুনিক সতর্কতা চালু করে একটি আধুনিক সংকলক এমনকি সম্পূর্ণ বৈধ।

const

এনবি: constকীওয়ার্ডটির উৎপত্তি 1981 সালে স্ট্রোস্ট্রপের সি উইথ ক্লাস (যা সি ++ তে বিবর্তিত হয়েছিল) দিয়ে হয়েছিল এবং শেষ পর্যন্ত সি দ্বারা গৃহীত হয়েছিল নামটির পছন্দটি দুর্ভাগ্যজনক, কারণ এটি কে ও আর এর ধ্রুবক শব্দটির ব্যবহারের সাথে সংঘাতযুক্ত যার অর্থ এখন আমরা কী বলব? আক্ষরিক (যেমন 38,, 'x'বা "squabble")। দ্বিতীয় সংস্করণে লেখাটি প্রতিফলিত করার জন্য নতুন করে লেখা হয়নি।

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

ভেরিয়েবল হওয়ায় এটি বোঝা যায় যে কোনও কিছুই constছোট হাতের নামকরণের সম্মেলন অনুসরণ করবে। তাদেরকে আক্ষরিক উপস্থাপনের জন্য কিছু ধরণের সুরক্ষা সুবিধা রয়েছে তবে মানটি পেতে যদি আপনাকে সংকলন ইউনিটের মধ্যে পৌঁছতে হয় তবে ভাল অপ্টিমাইজেশনের জন্য এটি তৈরি করে না।

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


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