Reserved word
کمپیوٹر زبان میں، ایک مخصوص لفظ (جسے مخصوص شناخت کنندہ بھی کہا جاتا ہے) ایک ایسا لفظ ہے جسے شناخت کنندہ کے طور پر استعمال نہیں کیا جا سکتا، جیسے کہ متغیر، فنکشن، یا لیبل کا نام-یہ "استعمال سے محفوظ" ہے۔ یہ ایک نحو تعریف ہے، اور ایک مخصوص لفظ کا کوئی صارف سے متعین معنی نہیں ہو سکتا ہے۔ ایک قریب سے متعلق اور اکثر متصل تصور ایک کلیدی لفظ ہے، جو ایک خاص سیاق و سباق میں خاص معنی والا لفظ ہے۔ یہ ایک بامعنی تعریف ہے۔ اس کے برعکس، ایک معیاری لائبریری میں نام لیکن جو کسی زبان میں نہیں بنائے گئے ہیں انہیں مخصوص الفاظ یا کلیدی الفاظ نہیں سمجھا جاتا ہے۔ اصطلاحات "ریزرو ورڈ" اور "کلیدی لفظ" اکثر ایک دوسرے کے متبادل کے طور پر استعمال ہوتے ہیں-کوئی یہ کہہ سکتا ہے کہ ایک ریزروڈ لفظ "بطور کلیدی لفظ استعمال کے لیے ریزروڈ" ہے-اور رسمی استعمال زبان سے زبان میں مختلف ہوتا ہے۔ اس مضمون کے لیے، ہم اوپر کے طور پر فرق کرتے ہیں۔ عام طور پر محفوظ الفاظ اور کلیدی الفاظ کو موافق ہونے کی ضرورت نہیں ہے، لیکن زیادہ تر جدید زبانوں میں کلیدی الفاظ محفوظ الفاظ کا ایک ذیلی مجموعہ ہوتے ہیں، کیونکہ اس سے تجزیہ کرنا آسان ہو جاتا ہے، کیونکہ کلیدی الفاظ کو شناخت کاروں کے ساتھ الجھایا نہیں جا سکتا۔ کچھ زبانوں میں، جیسے سی یا ازگر میں، مخصوص الفاظ اور مطلوبہ الفاظ ایک ساتھ ملتے ہیں، جبکہ دوسری زبانوں میں، جیسے جاوا میں، تمام مطلوبہ الفاظ مخصوص الفاظ ہیں، لیکن کچھ مخصوص الفاظ مطلوبہ الفاظ نہیں ہیں، جو مستقبل میں استعمال کے لیے مخصوص ہیں۔ ابھی تک دوسری زبانوں میں، جیسے کہ پرانی زبانیں ALGOL، FORTRAN، اور PL/I، مطلوبہ الفاظ موجود ہیں لیکن کوئی مخصوص الفاظ نہیں ہیں، جس میں مطلوبہ الفاظ کو دوسرے ذرائع سے شناخت کاروں سے ممتاز کیا جاتا ہے۔ تفریق کسی زبان میں مخصوص الفاظ اور کلیدی الفاظ کے سیٹ اکثر موافق ہوتے ہیں یا تقریبا برابر ہوتے ہیں، اور فرق ٹھیک ٹھیک ہوتا ہے، اس لیے اصطلاحات اکثر ایک دوسرے کے متبادل کے طور پر استعمال ہوتی ہیں۔ تاہم، محتاط استعمال میں وہ ممتاز ہیں۔ مطلوبہ الفاظ کو محفوظ الفاظ بنانا لیکسنگ کو آسان بنا دیتا ہے، کیونکہ حروف کی ایک سٹرنگ غیر واضح طور پر سیاق و سباق پر منحصر کیے بغیر یا تو مطلوبہ الفاظ یا شناخت کنندہ ہوگی۔ اس طرح مطلوبہ الفاظ عام طور پر محفوظ الفاظ کا ایک ذیلی مجموعہ ہوتے ہیں۔ تاہم، مخصوص الفاظ کلیدی الفاظ ہونے کی ضرورت نہیں ہے۔ مثال کے طور پر، جاوا میں، گوٹو ایک مخصوص لفظ ہے، لیکن اس کا کوئی مطلب نہیں ہے اور یہ گرائمر میں کسی بھی پروڈکشن رولز میں ظاہر نہیں ہوتا ہے۔ یہ عام طور پر آگے کی مطابقت کے لیے کیا جاتا ہے، لہذا ایک مخصوص لفظ موجودہ پروگراموں کو توڑے بغیر مستقبل کے ورژن میں کلیدی لفظ بن سکتا ہے۔ اس کے برعکس، مطلوبہ الفاظ کو محفوظ الفاظ ہونے کی ضرورت نہیں ہے، ان کے کردار کو سیاق و سباق سے سمجھا جائے، یا انہیں دوسرے طریقے سے ممتاز کیا جا سکتا ہے، جیسے کہ ٹپکنا۔ مثال کے طور پر، فقرہ اگر = 1 زیادہ تر گرائمرز میں غیر واضح ہے، کیونکہ ایک اگر شق کا کنٹرول بیان an = سے شروع نہیں ہو سکتا، اور اس طرح کچھ زبانوں میں اس کی اجازت ہے، جیسے کہ فورٹرن۔ متبادل طور پر، ALGOL 68 میں، کلیدی الفاظ کو سخت زبان میں بولڈ میں درج کرکے-کسی طرح سے ممتاز کرنے کے لیے نشان زد کیا جانا چاہیے، اور اس طرح وہ مخصوص الفاظ نہیں ہیں۔ اس طرح سخت زبان میں درج ذیل اظہار قانونی ہے، کیونکہ بولڈ کلیدی لفظ اگر عام شناخت کنندہ سے متصادم نہیں ہے اگر: اگر eq 0 تو 1 فائی تاہم، ALGOL 68 میں ایک ٹپکنے والا نظام بھی ہے جس میں کلیدی الفاظ محفوظ الفاظ ہیں، اس کی ایک مثال ہے کہ یہ الگ الگ تصورات اکثر کیسے موافق ہوتے ہیں۔ اس کی پیروی بہت سی جدید زبانوں میں کی جاتی ہے۔ مخصوص لفظ وہ ہوتا ہے جو ایک عام لفظ کی طرح لگتا ہے، لیکن اسے عام لفظ کے طور پر استعمال کرنے کی اجازت نہیں ہے۔ رسمی طور پر اس کا مطلب یہ ہے کہ یہ شناخت کاروں کے معمول کے لفظی نحو (الفاظ کے نحو) کو مطمئن کرتا ہے-مثال کے طور پر، حروف کی ترتیب ہونے کی وجہ سے-لیکن جہاں شناخت کار استعمال ہوتے ہیں وہاں استعمال نہیں کیا جا سکتا۔ مثال کے طور پر، لفظ اگر عام طور پر ایک مخصوص لفظ ہوتا ہے، جبکہ x عام طور پر نہیں ہوتا ہے، اس لیے x = 1 ایک درست تفویض ہے، لیکن اگر = 1 نہیں ہے۔ مطلوبہ الفاظ کے مختلف استعمال ہوتے ہیں، لیکن بنیادی طور پر چند کلاسوں میں آتے ہیں: فقرے گرائمر کا حصہ (خاص طور پر غیر ٹرمینل علامتوں کے ساتھ ایک پروڈکشن رول)، مختلف معانی کے ساتھ، اکثر کنٹرول فلو کے لیے استعمال ہوتا ہے، جیسے کہ لفظ اگر زیادہ تر طرز عمل کی زبانوں میں، جو ایک مشروط کی نشاندہی کرتا ہے اور شقوں (غیر ٹرمینل علامتوں) کو لیتا ہے ؛ کسی ایسی زبان میں قدیم اقسام کے نام جو ٹائپ سسٹم کی حمایت کرتے ہیں، جیسے کہ انٹ ؛ ابتدائی لفظی اقدار جیسے کہ بولین ٹرو کے لیے سچ ؛ یا بعض اوقات خصوصی کمانڈز جیسے ایگزٹ۔ جملے میں مطلوبہ الفاظ کے دیگر استعمال ان پٹ/آؤٹ پٹ کے لیے ہوتے ہیں، جیسے پرنٹ۔ واضح تعریفیں اس وقت واضح ہوتی ہیں جب کسی زبان کا تجزیہ لیکسر اور پارسر کے امتزاج سے کیا جاتا ہے، اور زبان کا نحو الفاظ کے لیے لیکسیکل گرائمر، اور فقروں کے لیے پروڈکشن قوانین کے سیاق و سباق سے پاک گرائمر سے پیدا ہوتا ہے۔ جدید زبانوں کا تجزیہ کرنے میں یہ عام ہے، اور اس معاملے میں کلیدی الفاظ مخصوص الفاظ کا ایک ذیلی مجموعہ ہیں، کیونکہ جملے کی سطح (بطور کلیدی الفاظ) پر نحو طور پر تجزیہ کرنے کے لیے انہیں لفظ کی سطح (اس لیے مخصوص الفاظ) پر شناخت کاروں سے ممتاز کیا جانا چاہیے۔ اس صورت میں مخصوص الفاظ کو لفظی گرائمر کے حصے کے طور پر بیان کیا جاتا ہے، اور ہر ایک کو شناخت کاروں سے الگ، ایک الگ قسم کے طور پر نشان زد کیا جاتا ہے۔ روایتی اشارے میں، مخصوص الفاظ اگر اور پھر مثال کے طور پر بالترتیب IF اور ThEN اقسام کے طور پر ٹوکنائز کیے جاتے ہیں، جبکہ x اور y دونوں کو ٹائپ آئیڈینٹیفائر کے طور پر ٹوکنائز کیا جاتا ہے۔ کلیدی الفاظ، اس کے برعکس، نحو طور پر فقرے کے گرائمر میں، آخری علامتوں کے طور پر ظاہر ہوتے ہیں۔ مثال کے طور پر، مشروط اظہار کے لیے پیداوار کا اصول آئی ایف ایکسپریشن تھین ایکسپریشن ہو سکتا ہے۔ اس صورت میں آئی ایف اور تھین ٹرمینل علامتیں ہیں، جس کا مطلب ہے "بالترتیب آئی ایف یا تھین قسم کا ایک نشان"-اور لیکسیکل گرامر کی وجہ سے، اس کا مطلب ہے سٹرنگ اگر یا پھر اصل ماخذ میں ہے۔ ابتدائی مستقل قدر کی مثال کے طور پر، سچ بولین قدر "سچ" کی نمائندگی کرنے والا کلیدی لفظ ہو سکتا ہے، اس صورت میں اسے گرامر میں پیداوار بائنری ایکسپریشن کی ممکنہ توسیع کے طور پر ظاہر ہونا چاہیے، مثال کے طور پر۔ مخصوص الفاظ کی فہرستوں کو محفوظ کرنے کے علاوہ، کچھ زبانیں الفاظ کی پوری حدود کو محفوظ کرتی ہیں، مستقبل کی زبان کے ورژن، مختلف بولیوں، مرتب کرنے والے وینڈر کے لیے مخصوص ایکسٹینشنز، یا مرتب کرنے والے کے اندرونی استعمال کے لیے، خاص طور پر نام بدلنے کے لیے۔ یہ اکثر سابقہ کا استعمال کرتے ہوئے کیا جاتا ہے، اکثر ایک یا زیادہ انڈر اسکور۔ سی اور سی + + اس سلسلے میں قابل ذکر ہیں: سی 99 ایسے شناخت کاروں کو محفوظ کرتا ہے جو دو انڈر اسکور یا ایک انڈر اسکور کے ساتھ شروع ہوتے ہیں اور اس کے بعد ایک بڑے حرف کے ساتھ، اور مزید شناخت کاروں کو محفوظ کرتا ہے جو فائل کے دائرہ کار میں استعمال کے لیے ایک انڈر اسکور (عام اور ٹیگ خالی جگہوں میں) سے شروع ہوتے ہیں۔ سی + + 03 کے ساتھ مزید شناخت کاروں کو محفوظ کرتا ہے جن میں کہیں بھی ڈبل انڈر سکور ہوتا ہے-یہ مثال کے طور پر (صارف شناخت کاروں کو جوڑنے کے لیے) جداکار کے طور پر ڈبل انڈر سکور کے استعمال کی اجازت دیتا ہے۔ ازگر میں اندرونی شناخت کاروں میں ڈبل انڈر اسکور کے کثرت سے استعمال نے مخفف ڈنڈر کو جنم دیا۔ یہ مارک جیکسن اور آزادانہ طور پر ٹم ہوچبرگ نے ایک دوسرے کے منٹوں کے اندر، 2002 میں ایک ہی سوال کے جواب میں وضع کیا تھا۔ کسی زبان میں مخصوص الفاظ اور کلیدی الفاظ کی فہرست کی وضاحت اس وقت کی جاتی ہے جب کوئی زبان تیار کی جاتی ہے، اور دونوں زبان کی رسمی وضاحت کا حصہ بنتے ہیں۔ عام طور پر کوئی شخص محفوظ کردہ الفاظ کی تعداد کو کم کرنا چاہتا ہے، تاکہ درست شناخت کنندہ کے ناموں کو محدود کرنے سے بچ سکے۔ مزید برآں، نئے مخصوص الفاظ کو متعارف کرانا موجودہ پروگراموں کو توڑ دیتا ہے جو اس لفظ کو استعمال کرتے ہیں (یہ پیچھے کی طرف مطابقت نہیں رکھتا ہے)، لہذا اس سے گریز کیا جاتا ہے۔ اس کی روک تھام اور آگے کی مطابقت فراہم کرنے کے لیے، بعض اوقات الفاظ کو موجودہ استعمال کے بغیر محفوظ کیا جاتا ہے (ایک مخصوص لفظ جو کلیدی لفظ نہیں ہے)، کیونکہ اس سے موجودہ پروگراموں کو توڑے بغیر مستقبل میں لفظ کو استعمال کرنے کی اجازت ملتی ہے۔ متبادل طور پر، زبان کی نئی خصوصیات کو پہلے سے طے شدہ کے طور پر لاگو کیا جا سکتا ہے، جنہیں اوور رائڈ کیا جا سکتا ہے، اس طرح موجودہ پروگراموں کو نہیں توڑا جا سکتا۔ لچک کی وجوہات میں مرتب کرنے والے دکانداروں کو غیر معیاری خصوصیات، اسے بڑھانے کے لیے زبان کی مختلف معیاری بولیوں، یا اضافی خصوصیات کو شامل کرنے کے لیے زبان کے مستقبل کے ورژن کو شامل کرکے تفصیلات کو بڑھانے کی اجازت دینا شامل ہے۔ مثال کے طور پر، ایک طرز عمل کی زبان مستقبل کے ورژن یا کسی بولی میں آبجیکٹ پر مبنی صلاحیتوں کو شامل کرنے کی توقع کر سکتی ہے، جس مقام پر کوئی کلاس یا آبجیکٹ جیسے مطلوبہ الفاظ شامل کر سکتا ہے۔ اس امکان کو ایڈجسٹ کرنے کے لیے، موجودہ تفصیلات ان مخصوص الفاظ کو بنا سکتی ہیں، چاہے وہ فی الحال استعمال نہ ہوئے ہوں۔ ایک قابل ذکر مثال جاوا میں ہے، جہاں کانسٹ اور گوٹو مخصوص الفاظ ہیں-جاوا میں ان کا کوئی مطلب نہیں ہے لیکن انہیں شناخت کاروں کے طور پر بھی استعمال نہیں کیا جا سکتا۔ شرائط کو محفوظ کرکے، اگر چاہیں تو، پرانے جاوا سورس کوڈ کو توڑے بغیر، انہیں جاوا کے مستقبل کے ورژن میں لاگو کیا جا سکتا ہے۔ مثال کے طور پر، 1999 میں زبان میں C + + جیسے کانسٹ کو شامل کرنے کی تجویز تھی، جو کانسٹ لفظ کا استعمال کرتے ہوئے ممکن تھا، کیونکہ یہ محفوظ تھا لیکن فی الحال غیر استعمال شدہ تھا۔ تاہم، اس تجویز کو مسترد کر دیا گیا تھا-خاص طور پر اس وجہ سے کہ اگرچہ اس خصوصیت کو شامل کرنے سے کوئی موجودہ پروگرام نہیں ٹوٹے گا، اسے معیاری لائبریری (خاص طور پر مجموعوں میں) میں استعمال کرنے سے مطابقت ختم ہو جائے گی۔ جاوا اسکرپٹ میں خصوصی فعالیت کے بغیر متعدد مخصوص الفاظ بھی شامل ہیں۔ درست فہرست ورژن اور موڈ کے لحاظ سے مختلف ہوتی ہے۔ زبانیں اس بات میں نمایاں طور پر مختلف ہوتی ہیں کہ وہ نئے مخصوص الفاظ یا مطلوبہ الفاظ کو کتنی بار متعارف کراتی ہیں اور انہیں کس طرح نام دیتی ہیں، کچھ زبانیں بہت قدامت پسند ہوتی ہیں اور موجودہ پروگراموں کو توڑنے سے بچنے کے لیے شاذ و نادر ہی یا کبھی نہیں نئے مطلوبہ الفاظ متعارف کراتی ہیں، جبکہ دیگر زبانیں نئے مطلوبہ الفاظ کو زیادہ آزادانہ طور پر متعارف کراتی ہیں، موجودہ پروگراموں کو موجودہ شناخت کاروں کو تبدیل کرنے کی ضرورت ہوتی ہے جو اس سے متصادم ہیں۔ C11 میں C + + 11 کے مقابلے میں نئے مطلوبہ الفاظ کے ذریعے ایک کیس اسٹڈی دی جاتی ہے، دونوں 2011 سے-یاد رکھیں کہ C اور C + + میں، شناخت کنندگان جو ایک انڈر اسکور سے شروع ہوتے ہیں اور اس کے بعد ایک بڑے حرف کے ساتھ محفوظ ہوتے ہیں: یعنی، C11 نے مطلوبہ الفاظ _ تھریڈ _ لوکل کو مخصوص الفاظ کے موجودہ سیٹ کے اندر متعارف کرایا (جن میں ایک خاص سابقہ ہوتا ہے)، اور پھر اس کے استعمال کی اجازت دینے کے لیے ایک علیحدہ سہولت (میکرو پروسیسنگ) کا استعمال کیا گویا کہ یہ کوئی نیا مطلوبہ الفاظ ہے جس میں کوئی سابقہ نہیں ہے، جبکہ C + + 11 مطلوبہ الفاظ تھریڈ _ لوکل متعارف کراتا ہے حالانکہ یہ موجودہ مخصوص لفظ نہیں ہے، اس کے باوجود کہ اس میں استعمال ہونے والے کسی بھی پروگرام کو توڑتا ہے، لیکن میکرو پروسیسنگ کی ضرورت نہیں ہوتی ہے۔ پہلے سے متعین نام محفوظ الفاظ سے متعلق ایک تصور پہلے سے طے شدہ افعال، طریقے، ذیلی روٹین، اقسام، یا متغیرات، خاص طور پر معیاری لائبریری سے لائبریری کے معمولات ہیں۔ یہ اس لحاظ سے ایک جیسے ہیں کہ وہ بنیادی زبان کا حصہ ہیں، اور اسی طرح کے مقاصد کے لیے استعمال کیے جا سکتے ہیں۔ تاہم، یہ اس لحاظ سے مختلف ہیں کہ ان میں سے کسی ایک وجود کے نام کو عام طور پر مخصوص لفظ کے بجائے شناخت کنندہ کے طور پر درجہ بند کیا جاتا ہے، اور اسے نحو تجزیہ میں خاص طور پر نہیں سمجھا جاتا ہے۔ مزید برآں، محفوظ شدہ الفاظ کو پروگرامر کے ذریعہ نئی شکل نہیں دی جا سکتی ہے، لیکن پہلے سے طے شدہ الفاظ کو اکثر کسی حد تک نظر انداز کیا جا سکتا ہے۔ زبانیں اس بارے میں مختلف ہوتی ہیں کہ مطلوبہ الفاظ کے طور پر کیا فراہم کیا گیا ہے اور پہلے سے طے شدہ کیا ہے۔ مثال کے طور پر کچھ زبانیں ان پٹ/آؤٹ پٹ آپریشنز کے لیے مطلوبہ الفاظ فراہم کرتی ہیں جبکہ دیگر میں یہ لائبریری کے معمولات ہیں۔ ازگر (3 سے پہلے کے ورژن) اور بہت سی بنیادی بولیوں میں، پرنٹ ایک کلیدی لفظ ہے۔ اس کے برعکس، C، Lisp، اور ازگر 3.0 مساوی پرنٹ ایف، فارمیٹ، اور پرنٹ معیاری لائبریری میں افعال ہیں۔ اسی طرح، پائیتھن میں 3.0 سے پہلے، کوئی نہیں، سچ اور غلط پہلے سے طے شدہ متغیر تھے، لیکن مخصوص الفاظ نہیں تھے، لیکن پائیتھن 3.0 میں انہیں مخصوص الفاظ میں بنایا گیا تھا۔ تعریف کچھ لوگ "کلیدی لفظ" اور "مخصوص لفظ" کی اصطلاحات کو ایک دوسرے کے متبادل کے طور پر استعمال کرتے ہیں، جبکہ دوسرے استعمال میں فرق کرتے ہیں، جیسے کہ "کلیدی لفظ" کا استعمال کرتے ہوئے ایک ایسے لفظ کا مطلب ہے جو صرف مخصوص سیاق و سباق میں خاص ہے لیکن "مخصوص لفظ" کا مطلب ایک خاص لفظ ہے جسے صارف کے متعین نام کے طور پر استعمال نہیں کیا جا سکتا۔ کلیدی الفاظ کے معنی، اور کلیدی لفظ کے تصور کے معنی، زبان سے زبان میں وسیع پیمانے پر مختلف ہوتے ہیں۔ خاص طور پر، ALGOL 68 میں، کلیدی الفاظ ٹپکائے جاتے ہیں (سخت زبان میں، بولڈ میں لکھے جاتے ہیں) اور محفوظ الفاظ نہیں ہوتے ہیں-غیر ٹپکائے ہوئے لفظ کو عام شناخت کے طور پر استعمال کیا جا سکتا ہے۔ "جاوا زبان کی وضاحت" میں "کلیدی لفظ" کی اصطلاح استعمال ہوتی ہے۔ سی زبان کے لیے آئی ایس او 9899 معیار "کلیدی لفظ" کی اصطلاح استعمال کرتا ہے۔ بہت سی زبانوں میں، جیسے سی اور اسی طرح کے ماحول جیسے سی + + میں، کلیدی لفظ ایک مخصوص لفظ ہے جو نحو کی شکل کی شناخت کرتا ہے۔ کنٹرول فلو تعمیرات میں استعمال ہونے والے الفاظ، جیسے کہ اگر، تب، اور دیگر کلیدی الفاظ ہیں۔ ان زبانوں میں مطلوبہ الفاظ کو متغیرات یا افعال کے ناموں کے طور پر بھی استعمال نہیں کیا جا سکتا۔ کچھ زبانوں میں، جیسے کہ ALGOL اور ALGOL 68، کلیدی الفاظ کو لفظی طور پر نہیں لکھا جا سکتا، لیکن انہیں گرایا جانا چاہیے۔ اس کا مطلب یہ ہے کہ مطلوبہ الفاظ کو کسی نہ کسی طرح نشان زد کیا جانا چاہیے۔ ای۔ جی۔ ان کا حوالہ دے کر یا انہیں کسی خاص کردار سے پہلے لگا کر۔ نتیجے کے طور پر، مطلوبہ الفاظ مخصوص الفاظ نہیں ہوتے ہیں، اور اس طرح ایک ہی لفظ کو عام شناخت کے طور پر استعمال کیا جا سکتا ہے۔ تاہم، ایک ٹالنے والا نظام یہ تھا کہ مطلوبہ الفاظ کو نہ چھوڑا جائے، اور اس کے بجائے انہیں صرف محفوظ الفاظ بنایا جائے۔ کچھ زبانیں، جیسے پوسٹ اسکرپٹ، اس نقطہ نظر میں انتہائی آزاد ہیں، جس سے بنیادی مطلوبہ الفاظ کو مخصوص مقاصد کے لیے نئی شکل دی جا سکتی ہے۔ کامن لیسپ میں، اصطلاح "مطلوبہ الفاظ" (یا "مطلوبہ الفاظ کی علامت") ایک خاص قسم کی علامت، یا شناخت کے لیے استعمال ہوتی ہے۔ دیگر علامتوں کے برعکس، جو عام طور پر متغیرات یا افعال کے لیے کھڑے ہوتے ہیں، کلیدی الفاظ خود حوالہ دیتے ہیں اور خود تشخیص کرتے ہیں: 98 اور کلیدی پیکیج میں اندرونی ہوتے ہیں۔ مطلوبہ الفاظ عام طور پر نامزد دلائل کو افعال پر لیبل لگانے اور علامتی اقدار کی نمائندگی کرنے کے لیے استعمال ہوتے ہیں۔ کامن-LISP نامی پیکیج میں وہ علامتیں جو افعال، متغیرات، خصوصی شکلیں اور میکرو کا نام دیتی ہیں، بنیادی طور پر مخصوص الفاظ ہیں۔ ان کی از سر نو تعریف کا اثر اے این ایس آئی کامن لیسپ میں غیر متعین ہے۔ انہیں باندھنا ممکن ہے۔ مثال کے طور پر اظہار (اگر صورت میں یا) ممکن ہے، جب اگر مقامی متغیر ہے۔ سب سے بائیں طرف اگر آئی ایف آپریٹر سے مراد ہے ؛ باقی علامتوں کی تشریح متغیر ناموں کے طور پر کی جاتی ہے۔ چونکہ افعال اور متغیرات کے لیے ایک علیحدہ نیم اسپیس ہے، اگر مقامی متغیر ہو سکتا ہے۔ کامن لیسپ میں، تاہم، دو خاص علامتیں ہیں جو مطلوبہ الفاظ کے پیکیج میں نہیں ہیں: علامتیں ٹی اور نیل۔ جب اظہار کے طور پر اندازہ لگایا جاتا ہے، تو وہ خود اندازہ لگاتے ہیں۔ انہیں افعال یا متغیرات کے ناموں کے طور پر استعمال نہیں کیا جا سکتا، اس لیے ڈی فیکٹو ریزرو ہوتے ہیں۔ (لیٹ ((ٹی 42))) ایک اچھی طرح سے تشکیل شدہ اظہار ہے، لیکن لیٹ آپریٹر استعمال کی اجازت نہیں دے گا۔ عام طور پر، جب کوئی پروگرامر کسی متغیر یا فنکشن کے نام کے لیے مطلوبہ الفاظ استعمال کرنے کی کوشش کرتا ہے، تو تالیف کی غلطی شروع ہو جائے گی۔ زیادہ تر جدید ایڈیٹرز میں، پروگرامرز کو یاد دلانے یا مطلع کرنے کے لیے کہ وہ مطلوبہ الفاظ ہیں، مطلوبہ الفاظ خود بخود ایک مخصوص متن کے رنگ کے لیے سیٹ ہو جاتے ہیں۔ میکرو یا سست تشخیص والی زبانوں میں، کنٹرول فلو تعمیرات جیسے کہ اگر میکرو یا افعال کے طور پر لاگو کیا جا سکتا ہے۔ ان تاثراتی خصوصیات کے بغیر زبانوں میں، وہ عام طور پر کلیدی الفاظ ہوتے ہیں۔ زبانوں کے لحاظ سے موازنہ مختلف زبانوں میں اکثر مخصوص الفاظ کی وسیع پیمانے پر مختلف تعداد ہوتی ہے۔ مثال کے طور پر، کوبول میں تقریبا 400 ہیں۔ جاوا، اور دیگر سی مشتقات، ایک نسبتا کم سیٹ رکھتے ہیں، تقریبا 50۔ خالص پرولاگ اور پی ایل/آئی کے پاس کوئی نہیں ہے۔ نقصانات کسی زبان میں مخصوص الفاظ کی تعریف مسائل پیدا کرتی ہے۔ نئے صارفین کے لیے زبان سیکھنا مشکل ہو سکتا ہے کیونکہ حفظ کرنے کے لیے مخصوص الفاظ کی ایک لمبی فہرست ہے جسے شناخت کے طور پر استعمال نہیں کیا جا سکتا۔ زبان کو بڑھانا مشکل ہو سکتا ہے کیونکہ نئی خصوصیات کے لیے مخصوص الفاظ کا اضافہ موجودہ پروگراموں کو کالعدم قرار دے سکتا ہے یا اس کے برعکس، موجودہ مخصوص الفاظ کو نئے معانی کے ساتھ "اوورلوڈنگ" کرنا الجھن کا باعث بن سکتا ہے۔ پورٹنگ پروگرام پریشانی کا باعث بن سکتے ہیں کیونکہ ایک لفظ جو ایک سسٹم یا مرتب کے ذریعہ محفوظ نہیں ہے وہ دوسرے کے ذریعہ محفوظ کیا جا سکتا ہے۔ چونکہ مخصوص الفاظ کو شناخت کاروں کے طور پر استعمال نہیں کیا جا سکتا، اس لیے صارفین مخصوص الفاظ کی جان بوجھ کر غلط ہجے کو شناخت کاروں کے طور پر منتخب کر سکتے ہیں، جیسے کہ قسم کے جاوا متغیرات کے لیے۔ محفوظ شدہ الفاظ اور زبان کی آزادی مائیکروسافٹ کی. NET کامن لینگویج انفراسٹرکچر (CLI) تفصیلات 40 + مختلف پروگرامنگ زبانوں میں لکھے گئے کوڈ کو حتمی پروڈکٹ میں جوڑنے کی اجازت دیتی ہیں۔ اس کی وجہ سے، شناخت کنندہ/ریزرو ورڈ کے تصادم اس وقت ہو سکتے ہیں جب ایک زبان میں نافذ کردہ کوڈ دوسری زبان میں لکھے ہوئے کوڈ کو انجام دینے کی کوشش کرتا ہے۔ مثال کے طور پر، ایک بصری بنیادی (. NET) لائبریری کلاس کی تعریف پر مشتمل ہو سکتی ہے جیسے: 'بصری میں اس کی کلاس کی تعریف Basic.NET: عوامی کلاس یہ' یہ کلاس کچھ کرتی ہے۔ اختتامی کلاس اگر اسے مرتب کیا جاتا ہے اور ٹول باکس کے حصے کے طور پر تقسیم کیا جاتا ہے، تو ایک C #پروگرامر، جو "اس" قسم کے متغیر کی وضاحت کرنا چاہتا ہے، کو ایک مسئلہ درپیش ہوگا: 'یہ' C #میں ایک مخصوص لفظ ہے۔ اس طرح، مندرجہ ذیل C #میں مرتب نہیں ہوں گے:// اس کلاس کو C #میں استعمال کرتے ہوئے: یہ x = نیا یہ () ؛// مرتب نہیں کریں گے! اسی طرح کا مسئلہ اس وقت پیدا ہوتا ہے جب اراکین تک رسائی، ورچوئل طریقوں کو ختم کرنا، اور نیم اسپیس کی شناخت کرنا۔ اسے چھلانگ لگا کر حل کیا جاتا ہے۔ اس مسئلے پر کام کرنے کے لیے، تفصیلات شناخت کنندہ کے سامنے (C #میں) دستخط رکھنے کی اجازت دیتی ہیں، جو اسے مرتب کنندہ کے ذریعہ مخصوص لفظ کے بجائے شناخت کنندہ سمجھنے پر مجبور کرتی ہے:// اس کلاس کو C #میں استعمال کرنا: @this x = نیا @this () ؛// مرتب کرے گا! مستقل مزاجی کے لیے، اس استعمال کی اجازت غیر عوامی ترتیبات جیسے مقامی متغیرات، پیرامیٹر کے نام، اور نجی اراکین میں بھی ہے۔ یہ بھی دیکھیں C ریزروڈ مطلوبہ الفاظ جاوا مطلوبہ الفاظ کی فہرست SQL ریزروڈ الفاظ کی فہرست علامت (پروگرامنگ) حوالہ جات پروگرامنگ کی تعمیر پروگرامنگ زبان کے موضوعات