.bss
کمپیوٹر پروگرامنگ میں، بلاک اسٹارٹنگ علامت (مختصر طور پر. bss یا bss) ایک آبجیکٹ فائل، قابل عمل، یا اسمبلی زبان کے کوڈ کا وہ حصہ ہے جس میں مستحکم طور پر مختص کردہ متغیرات ہوتے ہیں جن کا اعلان کیا جاتا ہے لیکن ابھی تک انہیں کوئی قدر تفویض نہیں کی گئی ہے۔ اسے اکثر "بی ایس ایس سیکشن" یا "بی ایس ایس سیگمنٹ" کہا جاتا ہے۔ عام طور پر صرف بی ایس ایس سیکشن کی لمبائی، لیکن کوئی ڈیٹا، آبجیکٹ فائل میں محفوظ نہیں ہوتا ہے۔ پروگرام لوڈر جب پروگرام کو لوڈ کرتا ہے تو بی ایس ایس سیکشن کے لیے میموری مختص کرتا ہے۔ . bss سیکشن میں ایسے متغیرات کو رکھنے سے جن کی کوئی قیمت نہیں ہے،. ڈیٹا یا. روڈاٹا سیکشن کے بجائے جس میں ابتدائی ویلیو ڈیٹا کی ضرورت ہوتی ہے، آبجیکٹ فائل کا سائز کم ہو جاتا ہے۔ کچھ پلیٹ فارمز پر، کچھ یا تمام بی ایس ایس سیکشن کو صفر سے شروع کیا جاتا ہے۔ یونکس جیسے سسٹمز اور ونڈوز بی ایس ایس سیکشن کو صفر پر شروع کرتے ہیں، جس سے سی اور سی + + کو مستحکم طور پر مختص کردہ متغیرات کو تمام بٹس صفر کے ساتھ نمائندگی کی گئی اقدار کو بی ایس ایس سیگمنٹ میں ڈالنے کی اجازت ملتی ہے۔ آپریٹنگ سسٹم بی ایس ایس سیگمنٹ کو مؤثر طریقے سے نافذ کرنے کے لیے زیرو فل آن ڈیمانڈ نامی تکنیک کا استعمال کر سکتے ہیں۔ سرایت شدہ سافٹ ویئر میں، بی ایس ایس سیگمنٹ کو میموری میں نقشہ بنایا جاتا ہے جسے مین () داخل کرنے سے پہلے سی رن ٹائم سسٹم کے ذریعے صفر پر شروع کیا جاتا ہے۔ کچھ سی رن ٹائم سسٹم بی ایس ایس سیگمنٹ کے کچھ حصے کو شروع نہ کرنے کی اجازت دے سکتے ہیں۔ سی متغیرات کو واضح طور پر بی ایس ایس سیگمنٹ کے اس حصے میں رکھا جانا چاہیے۔ کچھ کمپیوٹر آرکیٹیکچرز پر، ایپلیکیشن بائنری انٹرفیس "چھوٹے ڈیٹا" کے لیے ایس بی ایس ایس سیگمنٹ کو بھی سپورٹ کرتا ہے۔ عام طور پر، ان ڈیٹا آئٹمز تک مختصر ہدایات کا استعمال کرتے ہوئے رسائی حاصل کی جا سکتی ہے جو صرف پتے کی ایک مخصوص حد تک رسائی حاصل کر سکتی ہیں۔ تھریڈ-لوکل اسٹوریج کی حمایت کرنے والے آرکیٹیکچرز تھریڈ-لوکل کے طور پر نشان زد غیر ابتدائی، جامد ڈیٹا کے لیے ٹی بی ایس ایس سیکشن کا استعمال کر سکتے ہیں۔ اصل تاریخی طور پر، بی ایس ایس (بلاک اسٹارٹڈ بائی سمبل سے) یو اے-ایس اے پی (یونائیٹڈ ایرکرافٹ سمبولک اسمبلی پروگرام) میں ایک فرضی آپریشن ہے، یہ اسمبلر 1950 کی دہائی کے وسط میں آئی بی ایم 704 کے لیے یونائیٹڈ ایرکرافٹ کارپوریشن میں رائے نٹ، والٹر رامشا اور دیگر کے ذریعے تیار کیا گیا تھا۔ بی ایس ایس کلیدی لفظ کو بعد میں فورٹرن اسمبلی پروگرام (ایف اے پی) اور میکرو اسمبلی پروگرام (ایم اے پی) میں شامل کیا گیا، جو آئی بی ایم کے 709 اور 7090/94 کمپیوٹرز کے لیے معیاری اسمبلرز ہیں۔ اس نے ایک لیبل کی وضاحت کی (یعنی۔ علامت) اور الفاظ کی دی گئی تعداد کے لیے غیر ابتدائی جگہ کا ایک بلاک محفوظ کیا۔ اس صورت حال میں بی ایس ایس نے انفرادی طور پر متعدد علیحدہ چھوٹے ڈیٹا مقامات کو محفوظ کرنے کی جگہ شارٹ ہینڈ کے طور پر کام کیا۔ کچھ اسمبلرز ایک تکمیلی یا متبادل ہدایت بی ای ایس کی حمایت کرتے ہیں، بلاک اینڈڈ بائی سمبل کے لیے، جہاں مخصوص علامت مخصوص بلاک کے اختتام سے مطابقت رکھتی ہے۔ سی میں بی ایس ایس، ایک واضح ابتدائی کے بغیر مستحکم طور پر مختص کردہ اشیاء کو صفر (ریاضی کی اقسام کے لیے) یا نیل پوائنٹر (پوائنٹر کی اقسام کے لیے) پر شروع کیا جاتا ہے۔ سی کے نفاذ عام طور پر صفر ویلیوز اور نیل پوائنٹر ویلیوز کی نمائندگی کرتے ہیں جو صرف صفر ویلیوڈ بٹس پر مشتمل بٹ پیٹرن کا استعمال کرتے ہیں (بی ایس ایس کو صفر سے بھرنے کے باوجود سی اسٹینڈرڈ کی ضرورت نہیں ہے،. بی ایس ایس میں موجود تمام متغیرات کو انفرادی طور پر سی آئی ایس او اسٹینڈرڈ 9899:1999 کے سیکشن 6.7.8 یا نئے معیارات کے سیکشن 6.7.9 کے مطابق کسی قسم کے صفر پر شروع کرنے کی ضرورت ہے)۔ لہذا، بی ایس ایس کے حصے میں عام طور پر فائل کے دائرہ کار (یعنی کسی بھی فنکشن سے باہر) پر اعلان کردہ تمام غیر ابتدائی اشیاء (متغیرات اور مستقل دونوں) کے ساتھ ساتھ غیر ابتدائی جامد مقامی متغیرات (جامد کلیدی لفظ کے ساتھ اعلان کردہ مقامی متغیرات) شامل ہوتے ہیں۔ جامد مقامی متغیرات کو اعلامیے پر شروع کیا جانا چاہیے، تاہم، کیونکہ ان کا کوئی علیحدہ اعلامیہ نہیں ہوتا ہے، اور اس طرح وہ عام طور پر بی ایس ایس کے حصے میں نہیں ہوتے ہیں، حالانکہ وہ مضمر یا واضح طور پر صفر پر شروع کیے جا سکتے ہیں۔ ایک نفاذ بی ایس ایس سیکشن کو صرف صفر قدر والے بٹس پر مشتمل قدر کے ساتھ شروع کیے گئے جامد طور پر مختص متغیرات اور مستقلات بھی تفویض کر سکتا ہے۔ سی پروگرامر اور مصنف پیٹر وین ڈیر لنڈن کہتے ہیں، "کچھ لوگ اسے 'بیٹر سیو اسپیس' کے طور پر یاد رکھنا پسند کرتے ہیں۔ چونکہ بی ایس ایس طبقہ صرف ایسے متغیرات رکھتا ہے جن کی ابھی تک کوئی قیمت نہیں ہے، اس لیے اسے اصل میں ان متغیرات کی تصویر کو محفوظ کرنے کی ضرورت نہیں ہے۔ رن ٹائم پر بی ایس ایس کو جس سائز کی ضرورت ہوگی وہ آبجیکٹ فائل میں ریکارڈ کیا جاتا ہے، لیکن بی ایس ایس (ڈیٹا سیگمنٹ کے برعکس) آبجیکٹ فائل میں کوئی حقیقی جگہ نہیں لیتا ہے۔ فورٹرن میں بی ایس ایس، اس حصے میں عام بلاک متغیرات مختص کیے گئے ہیں۔ کچھ مرتب، 64 بٹ انسٹرکشن سیٹوں کے لیے، آفسیٹس کو محدود کر سکتے ہیں، ان ہدایات میں جو اس حصے تک رسائی حاصل کرتے ہیں، 32 بٹس تک، اس کے سائز کو 2 جی بی یا 4 جی بی تک محدود کر سکتے ہیں۔ اس کے علاوہ، نوٹ کریں کہ فورٹرن کو صفر پر شروع کرنے کے لیے جامد ڈیٹا کی ضرورت نہیں ہے۔ ان سسٹمز پر جہاں بی ایس ایس سیگمنٹ کو صفر پر شروع کیا جاتا ہے، عام بلاک متغیرات اور دیگر جامد ڈیٹا کو اس حصے میں ڈالنا اس بات کی ضمانت دیتا ہے کہ یہ صفر ہوگا، لیکن پورٹیبلٹی کے لیے، پروگرامرز کو اس پر انحصار نہیں کرنا چاہیے۔ لنکر (کمپیوٹنگ) ڈیٹا سیگمنٹ کوڈ سیگمنٹ شروع سے متغیر حوالہ جات قابل عمل فائل فارمیٹس میموری مینجمنٹ اسمبلی زبان پروگرامنگ زبان کا نفاذ بھی دیکھیں۔