Reserved word
একটি কম্পিউটার ভাষায়, একটি সংরক্ষিত শব্দ (সংরক্ষিত শনাক্তকারী হিসাবেও পরিচিত) এমন একটি শব্দ যা সনাক্তকারী হিসাবে ব্যবহার করা যায় না, যেমন একটি পরিবর্তনশীল, ফাংশন বা লেবেলের নাম-এটি "ব্যবহার থেকে সংরক্ষিত"। এটি একটি বাক্য গঠনমূলক সংজ্ঞা, এবং একটি সংরক্ষিত শব্দের কোনও ব্যবহারকারী-সংজ্ঞায়িত অর্থ থাকতে পারে না। একটি ঘনিষ্ঠভাবে সম্পর্কিত এবং প্রায়শই সংমিশ্রিত ধারণা হল একটি মূল শব্দ, যা একটি নির্দিষ্ট প্রসঙ্গে বিশেষ অর্থ সহ একটি শব্দ। এটি একটি শব্দার্থগত সংজ্ঞা। বিপরীতে, একটি আদর্শ গ্রন্থাগারের নামগুলি সংরক্ষিত শব্দ বা কীওয়ার্ড হিসাবে বিবেচিত হয় না তবে কোনও ভাষায় নির্মিত হয় না। "সংরক্ষিত শব্দ" এবং "কীওয়ার্ড" শব্দগুলি প্রায়শই বিনিময়যোগ্যভাবে ব্যবহৃত হয়-কেউ বলতে পারে যে একটি সংরক্ষিত শব্দ "কীওয়ার্ড হিসাবে ব্যবহারের জন্য সংরক্ষিত"-এবং আনুষ্ঠানিক ব্যবহার ভাষাভেদে পরিবর্তিত হয়। এই নিবন্ধের জন্য, আমরা উপরের হিসাবে পার্থক্য করি। সাধারণভাবে সংরক্ষিত শব্দ এবং কীওয়ার্ডগুলির মধ্যে মিল থাকার প্রয়োজন নেই, তবে বেশিরভাগ আধুনিক ভাষায় কীওয়ার্ডগুলি সংরক্ষিত শব্দের একটি উপসেট, কারণ এটি পার্সিংকে সহজ করে তোলে, কারণ কীওয়ার্ডগুলিকে সনাক্তকারীগুলির সাথে বিভ্রান্ত করা যায় না। কিছু ভাষায়, যেমন সি বা পাইথনে, সংরক্ষিত শব্দ এবং কীওয়ার্ড মিলে যায়, অন্যদিকে জাভার মতো অন্যান্য ভাষায়, সমস্ত কীওয়ার্ড সংরক্ষিত শব্দ, তবে কিছু সংরক্ষিত শব্দ কীওয়ার্ড নয়, যা ভবিষ্যতের ব্যবহারের জন্য সংরক্ষিত। এখনও অন্যান্য ভাষায়, যেমন পুরানো ভাষাগুলি এএলজিওএল, ফোরট্রান এবং পিএল/আই-তে, কীওয়ার্ড রয়েছে তবে কোনও সংরক্ষিত শব্দ নেই, কীওয়ার্ডগুলি অন্যান্য উপায়ে সনাক্তকারী থেকে আলাদা করা হয়েছে। পার্থক্য একটি ভাষায় সংরক্ষিত শব্দ এবং কীওয়ার্ডের সেটগুলি প্রায়শই মিলে যায় বা প্রায় সমান হয় এবং পার্থক্যটি সূক্ষ্ম, তাই পদগুলি প্রায়শই বিনিময়যোগ্যভাবে ব্যবহৃত হয়। যাইহোক, সতর্কতার সাথে ব্যবহারের ক্ষেত্রে এগুলি আলাদা করা হয়। কীওয়ার্ডগুলিকে সংরক্ষিত শব্দ করা লেক্সিংকে সহজ করে তোলে, কারণ অক্ষরের একটি স্ট্রিং প্রসঙ্গের উপর নির্ভর না করে দ্ব্যর্থহীনভাবে একটি কীওয়ার্ড বা সনাক্তকারী হবে; সুতরাং কীওয়ার্ডগুলি সাধারণত সংরক্ষিত শব্দের একটি উপসেট হয়। তবে, সংরক্ষিত শব্দগুলি কীওয়ার্ড হতে হবে না। উদাহরণস্বরূপ, জাভাতে, গোটো একটি সংরক্ষিত শব্দ, তবে এর কোনও অর্থ নেই এবং ব্যাকরণের কোনও উৎপাদন নিয়মে উপস্থিত হয় না। এটি সাধারণত ফরওয়ার্ড সামঞ্জস্যের জন্য করা হয়, তাই একটি সংরক্ষিত শব্দ বিদ্যমান প্রোগ্রামগুলি না ভেঙে ভবিষ্যতের সংস্করণে একটি মূলশব্দ হয়ে উঠতে পারে। বিপরীতভাবে, কীওয়ার্ডগুলি সংরক্ষিত শব্দ হওয়ার প্রয়োজন নেই, যার ভূমিকা প্রসঙ্গ থেকে বোঝা যায়, অথবা এগুলি অন্যভাবে আলাদা করা যেতে পারে, যেমন স্ট্রোকিং। উদাহরণস্বরূপ, যদি = 1 বাক্যাংশটি বেশিরভাগ ব্যাকরণে দ্ব্যর্থহীন, যেহেতু একটি যদি ধারার একটি নিয়ন্ত্রণ বিবৃতি একটি = দিয়ে শুরু হতে পারে না, এবং তাই কিছু ভাষায় অনুমোদিত, যেমন ফোরট্রান। বিকল্পভাবে, এএলজিওএল 68-এ, কীওয়ার্ডগুলি অবশ্যই স্ট্রপ করতে হবে-আলাদা করার জন্য কোনওভাবে চিহ্নিত-গাঢ় ভাষায় তালিকাভুক্ত করে কঠোর ভাষায়, এবং তাই সংরক্ষিত শব্দ নয়। সুতরাং কঠোর ভাষায় নিম্নলিখিত অভিব্যক্তিটি বৈধ, কারণ গাঢ় কীওয়ার্ডটি যদি সাধারণ শনাক্তকারীর সাথে দ্বন্দ্ব না করে তবেঃ যদি eq 0 হয় তবে 1 ফাই তবে, ALGOL 68-এ একটি স্ট্রপিং ব্যবস্থাও রয়েছে যেখানে কীওয়ার্ডগুলি সংরক্ষিত শব্দ, এই স্বতন্ত্র ধারণাগুলি প্রায়শই কীভাবে মিলে যায় তার একটি উদাহরণ; এটি অনেক আধুনিক ভাষায় অনুসরণ করা হয়। একটি সংরক্ষিত শব্দ হল এমন একটি শব্দ যা দেখতে একটি সাধারণ শব্দের মতো, কিন্তু সাধারণ শব্দ হিসাবে ব্যবহার করার অনুমতি নেই। আনুষ্ঠানিকভাবে এর অর্থ হল যে এটি শনাক্তকারীগুলির স্বাভাবিক আভিধানিক বাক্যবিন্যাসকে (শব্দের বাক্যবিন্যাস) সন্তুষ্ট করে-উদাহরণস্বরূপ, অক্ষরের ক্রম হিসাবে-কিন্তু যেখানে শনাক্তকারী ব্যবহার করা হয় সেখানে এটি ব্যবহার করা যাবে না। উদাহরণস্বরূপ, যদি শব্দটি সাধারণত একটি সংরক্ষিত শব্দ, যেখানে x সাধারণত হয় না, তাই x = 1 একটি বৈধ অ্যাসাইনমেন্ট, কিন্তু যদি = 1 না হয়। কীওয়ার্ডগুলির বিভিন্ন ব্যবহার রয়েছে, তবে প্রধানত কয়েকটি শ্রেণীতে পড়েঃ বাক্যাংশ ব্যাকরণের অংশ (বিশেষত নন-টার্মিনাল প্রতীক সহ একটি উৎপাদন নিয়ম), বিভিন্ন অর্থ সহ, প্রায়শই নিয়ন্ত্রণ প্রবাহের জন্য ব্যবহৃত হয়, যেমন বেশিরভাগ পদ্ধতিগত ভাষায় শব্দটি, যা একটি শর্তাধীন নির্দেশ করে এবং ধারা (নন-টার্মিনাল প্রতীক) নেয়; এমন একটি ভাষায় আদিম প্রকারের নাম যা একটি টাইপ সিস্টেমকে সমর্থন করে, যেমন int; আদিম আক্ষরিক মান যেমন বুলিয়ান সত্যের জন্য সত্য; বা কখনও কখনও প্রস্থানের মতো বিশেষ কমান্ড। বাক্যাংশে কীওয়ার্ডের অন্যান্য ব্যবহারগুলি ইনপুট/আউটপুটের জন্য, যেমন মুদ্রণ। স্বতন্ত্র সংজ্ঞাগুলি স্পষ্ট হয় যখন একটি ভাষা একটি লেক্সার এবং একটি পার্সারের সংমিশ্রণ দ্বারা বিশ্লেষণ করা হয়, এবং ভাষার বাক্য গঠন শব্দের জন্য একটি আভিধানিক ব্যাকরণ এবং বাক্যাংশের জন্য উৎপাদন নিয়মের একটি প্রসঙ্গ-মুক্ত ব্যাকরণ দ্বারা তৈরি হয়। আধুনিক ভাষাগুলির বিশ্লেষণে এটি সাধারণ, এবং এই ক্ষেত্রে কীওয়ার্ডগুলি সংরক্ষিত শব্দের একটি উপসেট, কারণ এগুলি অবশ্যই শব্দ স্তরের সনাক্তকারী থেকে আলাদা করতে হবে (তাই সংরক্ষিত শব্দগুলি) বাক্যাংশ স্তরে (কীওয়ার্ড হিসাবে) আলাদাভাবে বিশ্লেষণ করার জন্য। এই ক্ষেত্রে সংরক্ষিত শব্দগুলিকে আভিধানিক ব্যাকরণের অংশ হিসাবে সংজ্ঞায়িত করা হয় এবং প্রতিটি পৃথক প্রকার হিসাবে চিহ্নিত করা হয়, যা শনাক্তকারী থেকে আলাদা। প্রচলিত স্বরলিপিতে, সংরক্ষিত শব্দগুলি যদি এবং তারপর উদাহরণস্বরূপ যথাক্রমে আইএফ এবং থেন প্রকার হিসাবে চিহ্নিত করা হয়, যেখানে এক্স এবং ওয়াই উভয়ই টাইপ আইডেন্টিফায়ার হিসাবে চিহ্নিত করা হয়। এর বিপরীতে, কীওয়ার্ডগুলি বাক্যাংশ ব্যাকরণে টার্মিনাল প্রতীক হিসাবে উপস্থিত হয়। উদাহরণস্বরূপ, একটি শর্তাধীন অভিব্যক্তির জন্য উৎপাদন নিয়ম হতে পারে আই. এফ এক্সপ্রেশন তারপর এক্সপ্রেশন। এই ক্ষেত্রে আই. এফ এবং টি. এইচ. ই. এন হল টার্মিনাল চিহ্ন, যার অর্থ "যথাক্রমে আই. এফ বা টি. এইচ. ই. এন প্রকারের একটি টোকেন"-এবং আভিধানিক ব্যাকরণের কারণে, এর অর্থ মূল উৎসে যদি বা তারপর স্ট্রিং। একটি আদিম ধ্রুবক মানের উদাহরণ হিসাবে, সত্য বুলিয়ান মান "সত্য" প্রতিনিধিত্বকারী একটি মূল শব্দ হতে পারে, এই ক্ষেত্রে এটি উদাহরণস্বরূপ বাইনারি এক্সপ্রেশন উৎপাদনের সম্ভাব্য সম্প্রসারণ হিসাবে ব্যাকরণে উপস্থিত হওয়া উচিত। সংরক্ষিত পরিসর শব্দের নির্দিষ্ট তালিকা সংরক্ষণের বাইরে, কিছু ভাষা শব্দের সম্পূর্ণ পরিসর সংরক্ষণ করে, ভবিষ্যতের ভাষা সংস্করণ, বিভিন্ন উপভাষা, সংকলক বিক্রেতা-নির্দিষ্ট সম্প্রসারণের জন্য ব্যক্তিগত স্থান হিসাবে বা সংকলক দ্বারা অভ্যন্তরীণ ব্যবহারের জন্য, বিশেষত নাম ম্যানগ্লিংয়ে। এটি প্রায়শই একটি উপসর্গ ব্যবহার করে করা হয়, প্রায়শই এক বা একাধিক আন্ডারস্কোর। সি এবং সি + + এই ক্ষেত্রে উল্লেখযোগ্যঃ সি99 দুটি আন্ডারস্কোর বা একটি আন্ডারস্কোর দিয়ে শুরু হওয়া সনাক্তকারীগুলিকে সংরক্ষণ করে এবং তারপরে একটি বড় হাতের অক্ষর দিয়ে শুরু করে, এবং ফাইলের ক্ষেত্রে ব্যবহারের জন্য একটি একক আন্ডারস্কোর (সাধারণ এবং ট্যাগ স্পেসে) দিয়ে শুরু হওয়া সনাক্তকারীগুলিকে সংরক্ষণ করে; সি + + 03 সহ আরও সংরক্ষণকারী সনাক্তকারী যা যে কোনও জায়গায় ডাবল আন্ডারস্কোর ধারণ করে-এটি উদাহরণস্বরূপ, বিভাজক হিসাবে (ব্যবহারকারী সনাক্তকারীগুলিকে সংযুক্ত করতে) একটি ডাবল আন্ডারস্কোর ব্যবহার করার অনুমতি দেয়। পাইথনে অভ্যন্তরীণ শনাক্তকারীগুলিতে একটি দ্বৈত আন্ডারস্কোরের ঘন ঘন ব্যবহার সংক্ষেপণ ডান্ডারের জন্ম দেয়; এটি মার্ক জ্যাকসন এবং স্বাধীনভাবে টিম হচবার্গ দ্বারা একে অপরের মিনিটের মধ্যে তৈরি করা হয়েছিল, উভয়ই 2002 সালে একই প্রশ্নের উত্তরে। নির্দিষ্টকরণ একটি ভাষায় সংরক্ষিত শব্দ এবং কীওয়ার্ডের তালিকা সংজ্ঞায়িত করা হয় যখন একটি ভাষা বিকশিত হয় এবং উভয়ই একটি ভাষার আনুষ্ঠানিক নির্দিষ্টকরণের অংশ গঠন করে। বৈধ সনাক্তকারী নাম সীমাবদ্ধ করা এড়াতে সাধারণত সংরক্ষিত শব্দের সংখ্যা হ্রাস করতে চায়। উপরন্তু, নতুন সংরক্ষিত শব্দের প্রবর্তন সেই শব্দটি ব্যবহার করে এমন বিদ্যমান প্রোগ্রামগুলিকে ভেঙে দেয় (এটি পিছনের দিকে সামঞ্জস্যপূর্ণ নয়), তাই এটি এড়ানো হয়। এটি প্রতিরোধ করতে এবং অগ্রবর্তী সামঞ্জস্যতা প্রদানের জন্য, কখনও কখনও শব্দগুলি বর্তমান ব্যবহার ছাড়াই সংরক্ষিত থাকে (একটি সংরক্ষিত শব্দ যা মূল শব্দ নয়), কারণ এটি বিদ্যমান প্রোগ্রামগুলি না ভেঙে ভবিষ্যতে শব্দটি ব্যবহার করার অনুমতি দেয়। বিকল্পভাবে, নতুন ভাষার বৈশিষ্ট্যগুলি পূর্বনির্ধারিত হিসাবে প্রয়োগ করা যেতে পারে, যা ওভাররাইড করা যেতে পারে, যাতে বিদ্যমান প্রোগ্রামগুলি ভেঙে না যায়। নমনীয়তার কারণগুলির মধ্যে রয়েছে সংকলক বিক্রেতাদের অ-মানক বৈশিষ্ট্য, এটি প্রসারিত করার জন্য ভাষার বিভিন্ন মানক উপভাষা বা অতিরিক্ত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করার জন্য ভাষার ভবিষ্যতের সংস্করণগুলি অন্তর্ভুক্ত করে নির্দিষ্টকরণটি প্রসারিত করার অনুমতি দেওয়া। উদাহরণস্বরূপ, একটি পদ্ধতিগত ভাষা ভবিষ্যতের সংস্করণ বা কোনও উপভাষায় অবজেক্ট-ওরিয়েন্টেড ক্ষমতা যুক্ত করার প্রত্যাশা করতে পারে, যে সময়ে কেউ ক্লাস বা অবজেক্টের মতো কীওয়ার্ড যুক্ত করতে পারে। এই সম্ভাবনাকে সামঞ্জস্য করার জন্য, বর্তমান নির্দিষ্টকরণ এই সংরক্ষিত শব্দগুলিকে তৈরি করতে পারে, যদিও সেগুলি বর্তমানে ব্যবহৃত হয় না। একটি উল্লেখযোগ্য উদাহরণ জাভাতে রয়েছে, যেখানে কনস্ট এবং গোটো সংরক্ষিত শব্দ-জাভাতে তাদের কোনও অর্থ নেই তবে তাদের সনাক্তকারী হিসাবেও ব্যবহার করা যায় না। শর্তাবলী সংরক্ষণ করে, পুরানো জাভা সোর্স কোড না ভেঙে, যদি ইচ্ছা হয় তবে সেগুলি জাভার ভবিষ্যতের সংস্করণগুলিতে প্রয়োগ করা যেতে পারে। উদাহরণস্বরূপ, 1999 সালে ভাষাটিতে সি + +-এর মতো কনস্ট যুক্ত করার একটি প্রস্তাব ছিল, যা কনস্ট শব্দটি ব্যবহার করা সম্ভব ছিল, কারণ এটি সংরক্ষিত ছিল কিন্তু বর্তমানে অব্যবহৃত; তবে, এই প্রস্তাবটি প্রত্যাখ্যান করা হয়েছিল-উল্লেখযোগ্যভাবে যদিও বৈশিষ্ট্যটি যুক্ত করা কোনও বিদ্যমান প্রোগ্রামকে ভেঙে দেবে না, এটি স্ট্যান্ডার্ড লাইব্রেরিতে (বিশেষত সংগ্রহে) ব্যবহার করলে সামঞ্জস্যতা ভেঙে যাবে। জাভাস্ক্রিপ্টে বিশেষ কার্যকারিতা ছাড়াই বেশ কয়েকটি সংরক্ষিত শব্দ রয়েছে; সঠিক তালিকাটি সংস্করণ এবং মোড অনুসারে পরিবর্তিত হয়। ভাষাগুলি কত ঘন ঘন নতুন সংরক্ষিত শব্দ বা কীওয়ার্ড প্রবর্তন করে এবং কীভাবে তাদের নাম দেয় তার মধ্যে উল্লেখযোগ্যভাবে পার্থক্য রয়েছে, কিছু ভাষা খুব রক্ষণশীল এবং বিদ্যমান প্রোগ্রামগুলি ভেঙে যাওয়া এড়াতে খুব কমই বা কখনই নতুন কীওয়ার্ড প্রবর্তন করে, অন্য ভাষাগুলি আরও অবাধে নতুন কীওয়ার্ড প্রবর্তন করে, যার জন্য বিদ্যমান প্রোগ্রামগুলিকে বিদ্যমান সনাক্তকারীগুলি পরিবর্তন করতে হয় যা দ্বন্দ্ব করে। 2011 সাল থেকে সি + + 11-এর তুলনায় সি 11-এ নতুন কীওয়ার্ড দ্বারা একটি কেস স্টাডি দেওয়া হয়-মনে রাখবেন যে সি এবং সি + +-এ, একটি আন্ডারস্কোর দিয়ে শুরু হওয়া শনাক্তকারী এবং তারপরে একটি বড় হাতের অক্ষর সংরক্ষিত থাকেঃ অর্থাৎ, সি 11 সংরক্ষিত শব্দের একটি বিদ্যমান সেটের মধ্যে _ থ্রেড _ লোকাল কীওয়ার্ড চালু করে (যাদের একটি নির্দিষ্ট উপসর্গ রয়েছে), এবং তারপরে একটি পৃথক সুবিধা (ম্যাক্রো প্রসেসিং) ব্যবহার করে যাতে এটি ব্যবহার করার অনুমতি দেয় যেন এটি কোনও প্রিফিক্সিং ছাড়াই একটি নতুন কীওয়ার্ড হয়, যখন সি + + 11 কীওয়ার্ড থ্রেড _ লোকাল প্রবর্তন করে যদিও এটি একটি বিদ্যমান সংরক্ষিত শব্দ না হওয়া সত্ত্বেও, যে কোনও প্রোগ্রাম এটি ব্যবহার করে, কিন্তু ম্যাক্রো প্রসেসিংয়ের প্রয়োজন ছাড়াই। পূর্বনির্ধারিত নাম সংরক্ষিত শব্দের সাথে সম্পর্কিত একটি ধারণা হল পূর্বনির্ধারিত ফাংশন, পদ্ধতি, সাবরুটিন, প্রকার বা পরিবর্তনশীল, বিশেষ করে স্ট্যান্ডার্ড লাইব্রেরি থেকে গ্রন্থাগারের রুটিন। এগুলি মৌলিক ভাষার অংশ হিসাবে একই রকম এবং একই উদ্দেশ্যে ব্যবহার করা যেতে পারে। যাইহোক, এগুলির মধ্যে পার্থক্য রয়েছে যে এই সত্তাগুলির মধ্যে একটির নাম সাধারণত একটি সংরক্ষিত শব্দের পরিবর্তে একটি শনাক্তকারী হিসাবে শ্রেণীবদ্ধ করা হয় এবং বাক্যবিন্যাস বিশ্লেষণে বিশেষভাবে বিবেচনা করা হয় না। উপরন্তু, সংরক্ষিত শব্দগুলি প্রোগ্রামার দ্বারা পুনরায় সংজ্ঞায়িত নাও হতে পারে, তবে পূর্বনির্ধারিতগুলি প্রায়শই কিছু সুযোগের জন্য ওভাররাইড করা যেতে পারে। মূলশব্দ হিসাবে কী প্রদান করা হয় এবং পূর্বনির্ধারিত কী তা নিয়ে ভাষাগুলি পরিবর্তিত হয়। উদাহরণস্বরূপ, কিছু ভাষা ইনপুট/আউটপুট ক্রিয়াকলাপের জন্য কীওয়ার্ড সরবরাহ করে যেখানে অন্যগুলিতে এগুলি গ্রন্থাগারের রুটিন। পাইথনে (3-এর আগের সংস্করণ) এবং অনেক মৌলিক উপভাষায় মুদ্রণ একটি মূল শব্দ। এর বিপরীতে, সি, লিস্প এবং পাইথন 3-এর সমতুল্য প্রিন্টএফ, ফরম্যাট এবং প্রিন্ট হল স্ট্যান্ডার্ড লাইব্রেরির ফাংশন। একইভাবে, পাইথনে 3-এর আগে, নন, ট্রু এবং ফলস পূর্বনির্ধারিত ভেরিয়েবল ছিল, তবে সংরক্ষিত শব্দ ছিল না, তবে পাইথন 3-এ এগুলি সংরক্ষিত শব্দের মধ্যে তৈরি করা হয়েছিল। সংজ্ঞা কেউ কেউ "কীওয়ার্ড" এবং "সংরক্ষিত শব্দ" শব্দগুলি বিনিময়যোগ্যভাবে ব্যবহার করে, অন্যরা ব্যবহারকে আলাদা করে, যেমন "কীওয়ার্ড" ব্যবহার করে এমন একটি শব্দ বোঝায় যা শুধুমাত্র নির্দিষ্ট প্রসঙ্গে বিশেষ কিন্তু "সংরক্ষিত শব্দ" মানে একটি বিশেষ শব্দ যা ব্যবহারকারী-সংজ্ঞায়িত নাম হিসাবে ব্যবহার করা যায় না। মূল শব্দের অর্থ এবং মূল শব্দের ধারণার অর্থ ভাষাভেদে ব্যাপকভাবে পৃথক হয়। সুনির্দিষ্টভাবে, এএলজিওএল 68-এ, কীওয়ার্ডগুলি স্ট্রপ করা হয় (কঠোর ভাষায়, গাঢ় ভাষায় লেখা) এবং সংরক্ষিত শব্দ নয়-অপ্রচলিত শব্দটি একটি সাধারণ শনাক্তকারী হিসাবে ব্যবহার করা যেতে পারে। "জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশন" শব্দটি "কীওয়ার্ড" শব্দটি ব্যবহার করে। সি ভাষার আইএসও 9899 মান "কীওয়ার্ড" শব্দটি ব্যবহার করে। অনেক ভাষায়, যেমন সি এবং সি + + এর মতো অনুরূপ পরিবেশে, একটি কীওয়ার্ড একটি সংরক্ষিত শব্দ যা একটি বাক্য গঠনকে চিহ্নিত করে। নিয়ন্ত্রণ প্রবাহ গঠনে ব্যবহৃত শব্দগুলি, যেমন যদি, তারপর, এবং অন্যগুলি মূল শব্দ। এই ভাষাগুলিতে, কীওয়ার্ডগুলি ভেরিয়েবল বা ফাংশনের নাম হিসাবেও ব্যবহার করা যায় না। কিছু ভাষায়, যেমন এ. এল. জি. ও. এল এবং এ. এল. জি. ও. এল 68-এ, কীওয়ার্ডগুলি শব্দগতভাবে লেখা যায় না, তবে অবশ্যই বাদ দিতে হবে। এর মানে হল যে কীওয়ার্ডগুলি কোনও না কোনওভাবে চিহ্নিত করা আবশ্যক। ই. জি। তাদের উদ্ধৃত করে বা একটি বিশেষ অক্ষর দ্বারা তাদের উপসর্গ করে। ফলস্বরূপ, কীওয়ার্ডগুলি সংরক্ষিত শব্দ নয় এবং এইভাবে একই শব্দটি একটি সাধারণ শনাক্তকারী হিসাবে ব্যবহার করা যেতে পারে। যাইহোক, একটি স্ট্রপিং শাসন ছিল কীওয়ার্ডগুলি না ফেলে দেওয়া, এবং পরিবর্তে সেগুলি কেবল সংরক্ষিত শব্দ হতে হবে। কিছু ভাষা, যেমন পোস্টস্ক্রিপ্ট, এই পদ্ধতিতে অত্যন্ত উদার, যা মূল কীওয়ার্ডগুলিকে নির্দিষ্ট উদ্দেশ্যে পুনরায় সংজ্ঞায়িত করার অনুমতি দেয়। কমন লিস্পে, "কীওয়ার্ড" (বা "কীওয়ার্ড প্রতীক") শব্দটি একটি বিশেষ ধরনের প্রতীক বা শনাক্তকারীর জন্য ব্যবহৃত হয়। অন্যান্য প্রতীকগুলির বিপরীতে, যা সাধারণত পরিবর্তনশীল বা ফাংশনের জন্য দাঁড়ায়, কীওয়ার্ডগুলি স্ব-উদ্ধৃতি এবং স্ব-মূল্যায়ন করেঃ 98 এবং কীওয়ার্ড প্যাকেজে ইন্টার্ন করা হয়। কীওয়ার্ডগুলি সাধারণত ফাংশনগুলিতে নামযুক্ত আর্গুমেন্টগুলি লেবেল করতে এবং প্রতীকী মানগুলি উপস্থাপন করতে ব্যবহৃত হয়। সাধারণ-তালিকা নামক প্যাকেজে যে চিহ্নগুলি ফাংশন, ভেরিয়েবল, বিশেষ ফর্ম এবং ম্যাক্রো নাম দেয় সেগুলি মূলত সংরক্ষিত শব্দ। এএনএসআই কমন লিস্পে এগুলিকে নতুন করে সংজ্ঞায়িত করার প্রভাব অনির্ধারিত। তাদের বেঁধে রাখা সম্ভব। উদাহরণস্বরূপ, অভিব্যক্তিটি (যদি কেস বা হয়) সম্ভব, যখন যদি একটি স্থানীয় পরিবর্তনশীল। বামতম যদি আইএফ অপারেটরকে বোঝায়; অবশিষ্ট চিহ্নগুলি পরিবর্তনশীল নাম হিসাবে ব্যাখ্যা করা হয়। যেহেতু ফাংশন এবং ভেরিয়েবলের জন্য একটি পৃথক নেমস্পেস রয়েছে, যদি একটি স্থানীয় ভেরিয়েবল হতে পারে। কমন লিস্পে, তবে, দুটি বিশেষ প্রতীক রয়েছে যা কীওয়ার্ড প্যাকেজে নেইঃ প্রতীক টি এবং নিল। যখন অভিব্যক্তি হিসাবে মূল্যায়ন করা হয়, তখন তারা নিজেদের মূল্যায়ন করে। এগুলি ফাংশন বা ভেরিয়েবলের নাম হিসাবে ব্যবহার করা যায় না, তাই কার্যত সংরক্ষিত। (লেট (টি 42))) একটি সু-গঠিত অভিব্যক্তি, তবে লেট অপারেটর ব্যবহারের অনুমতি দেবে না। সাধারণত, যখন কোনও প্রোগ্রামার কোনও পরিবর্তনশীল বা ফাংশনের নামের জন্য একটি কীওয়ার্ড ব্যবহার করার চেষ্টা করেন, তখন একটি সংকলন ত্রুটি শুরু হয়। বেশিরভাগ আধুনিক সম্পাদকদের মধ্যে, কীওয়ার্ডগুলি স্বয়ংক্রিয়ভাবে একটি নির্দিষ্ট পাঠ্য রঙে সেট করা হয় যা প্রোগ্রামারদের মনে করিয়ে দেয় বা জানায় যে তারা কীওয়ার্ড। ম্যাক্রো বা অলস মূল্যায়ন সহ ভাষাগুলিতে, নিয়ন্ত্রণ প্রবাহ গঠন যেমন যদি ম্যাক্রো বা ফাংশন হিসাবে প্রয়োগ করা যেতে পারে। এই অভিব্যক্তিপূর্ণ বৈশিষ্ট্যগুলি ছাড়া ভাষাগুলিতে, এগুলি সাধারণত মূল শব্দ। ভাষা দ্বারা তুলনা বিভিন্ন ভাষায় প্রায়শই সংরক্ষিত শব্দের সংখ্যা ব্যাপকভাবে পরিবর্তিত হয়। উদাহরণস্বরূপ, সিওবিওএল-এর প্রায় 400টি রয়েছে। জাভা এবং অন্যান্য সি ডেরিভেটিভগুলির একটি বিরল সেট রয়েছে, প্রায় 50টি। পিওর প্রোলগ এবং পিএল/আই-এর কোনওটিই নেই। অসুবিধাগুলি একটি ভাষায় সংরক্ষিত শব্দের সংজ্ঞা সমস্যা উত্থাপন করে। নতুন ব্যবহারকারীদের জন্য ভাষাটি শেখা কঠিন হতে পারে কারণ মনে রাখার জন্য সংরক্ষিত শব্দের একটি দীর্ঘ তালিকা রয়েছে যা সনাক্তকারী হিসাবে ব্যবহার করা যায় না। ভাষাটি প্রসারিত করা কঠিন হতে পারে কারণ নতুন বৈশিষ্ট্যের জন্য সংরক্ষিত শব্দের সংযোজন বিদ্যমান প্রোগ্রামগুলিকে অকার্যকর করে দিতে পারে বা বিপরীতভাবে, নতুন অর্থ সহ বিদ্যমান সংরক্ষিত শব্দের "ওভারলোডিং" বিভ্রান্তিকর হতে পারে। পোর্টিং প্রোগ্রামগুলি সমস্যাযুক্ত হতে পারে কারণ একটি সিস্টেম বা কম্পাইলার দ্বারা সংরক্ষিত নয় এমন একটি শব্দ অন্য দ্বারা সংরক্ষিত হতে পারে। যেহেতু সংরক্ষিত শব্দগুলি শনাক্তকারী হিসাবে ব্যবহার করা যায় না, তাই ব্যবহারকারীরা পরিবর্তে চিহ্নিতকারী হিসাবে সংরক্ষিত শব্দের ইচ্ছাকৃত ভুল বানান বেছে নিতে পারেন, যেমন জাভা ভেরিয়েবলের জন্য। সংরক্ষিত শব্দ এবং ভাষা স্বাধীনতা মাইক্রোসফ্টের. নেট কমন ল্যাঙ্গুয়েজ ইনফ্রাস্ট্রাকচার (সিএলআই) নির্দিষ্টকরণ 40 + বিভিন্ন প্রোগ্রামিং ভাষায় লিখিত কোডকে একটি চূড়ান্ত পণ্যের সাথে একত্রিত করার অনুমতি দেয়। এই কারণে, শনাক্তকারী/সংরক্ষিত শব্দের সংঘর্ষ ঘটতে পারে যখন একটি ভাষায় প্রয়োগ করা কোড অন্য ভাষায় লেখা কোড কার্যকর করার চেষ্টা করে। উদাহরণস্বরূপ, একটি ভিজ্যুয়াল বেসিক (. NET) লাইব্রেরিতে একটি শ্রেণী সংজ্ঞা থাকতে পারে যেমনঃ 'ক্লাস ডেফিনিশন অফ দিস ইন ভিজ্যুয়াল Basic.NET: পাবলিক ক্লাস এই' ক্লাসটি কিছু করে। শেষ ক্লাস যদি এটি একটি টুলবক্সের অংশ হিসাবে সংকলিত এবং বিতরণ করা হয়, তবে একজন সি #প্রোগ্রামার, "এটি" ধরনের একটি পরিবর্তনশীল সংজ্ঞায়িত করতে চাইলে একটি সমস্যার সম্মুখীন হবেঃ 'এটি' সি #-তে একটি সংরক্ষিত শব্দ। সুতরাং, নিম্নলিখিতগুলি সি #:// সি #-এ এই শ্রেণী ব্যবহার করে সংকলন করবে নাঃ এই এক্স = নতুন এই ();// সংকলন করবে না! সদস্যদের অ্যাক্সেস করার সময়, ভার্চুয়াল পদ্ধতিগুলিকে ওভাররাইড করার সময় এবং নেমস্পেসগুলি সনাক্ত করার সময় একই ধরনের সমস্যা দেখা দেয়। এটি স্ট্রপিংয়ের মাধ্যমে সমাধান করা হয়। এই সমস্যাটি নিয়ে কাজ করার জন্য, নির্দিষ্টকরণটি শনাক্তকারীর সামনে (সি #-এ) স্বাক্ষর স্থাপন করার অনুমতি দেয়, যা এটিকে সংকলক দ্বারা সংরক্ষিত শব্দের পরিবর্তে সনাক্তকারী হিসাবে বিবেচনা করতে বাধ্য করেঃ// সি #-এ এই শ্রেণীটি ব্যবহার করেঃ @this এক্স = নতুন @this ();// সংকলন করবে! ধারাবাহিকতার জন্য, স্থানীয় পরিবর্তনশীল, পরামিতি নাম এবং ব্যক্তিগত সদস্যদের মতো অ-সর্বজনীন সেটিংসেও এই ব্যবহারের অনুমতি রয়েছে। আরও দেখুন সি সংরক্ষিত কীওয়ার্ড জাভা কীওয়ার্ডের তালিকা এসকিউএল সংরক্ষিত শব্দের তালিকা প্রতীক (প্রোগ্রামিং) রেফারেন্স প্রোগ্রামিং কাঠামো প্রোগ্রামিং ভাষার বিষয়