Protel
پروٹیل کا مطلب ہے "طریقہ کار پر مبنی قسم نافذ کرنے والی زبان"۔ یہ ایک پروگرامنگ زبان ہے جو نورٹل نیٹ ورکس نے بنائی ہے اور ڈی ایم ایس-100 جیسے ٹیلی کمیونیکیشنز سوئچنگ سسٹمز پر استعمال ہوتی ہے۔ پروٹیل-2 پروٹیل کا آبجیکٹ پر مبنی ورژن ہے۔ پروٹل زبان کو ڈیجیٹل ٹیلی فونی کی ضروریات کو پورا کرنے کے لیے ڈیزائن کیا گیا تھا اور یہ ڈی ایم ایس-100 لائن آف سوئچنگ سسٹمز کی بنیاد ہے۔ پروٹل ایک مضبوط ٹائپ شدہ، بلاک ساخت والی زبان ہے جو بہت زیادہ پاسکل اور ALGOL 68 پر مبنی ہے جس میں بائیں سے دائیں انداز میں متغیر تفویض، متغیر سائز کی صفوں اور توسیعی ڈھانچے ہیں۔ پروٹیل کے ڈیزائنرز نے بیرونی تالیف کو شامل کرکے اور زبان میں دستیاب ڈیٹا ڈھانچے کو بڑھا کر دن کے پاسکل کو نمایاں طور پر بڑھایا۔ پروٹل مرتب آپریٹنگ سسٹم (ایس او ایس)، ایپلی کیشن (سی اے ایل ایل پی)، ترقیاتی ماحول (پی ایل ایس) اور اصل میں پروسیسر (این ٹی 40) کے ساتھ مضبوطی سے مربوط ہے۔ پی ایل ایس، ایس او ایس، سی اے ایل ایل پی اور خود مرتب کرنے والا سبھی پروٹیل میں لکھے گئے ہیں۔ پروٹل زبان کی کوئی بھی تفصیل مدد نہیں کر سکتی لیکن اس میں دوسرے اجزاء کے کچھ پہلو شامل ہیں۔ پروٹیل میں بہت سخت قسم کا نفاذ ہوتا ہے لیکن اجزاء کا سخت جوڑا اندرونی مرتب کرنے والی خصوصیات کو براہ راست استعمال کرکے ہنر مند کوڈرز کے لیے کسی قسم کی جانچ کو بائی پاس کرنے کے مواقع پیدا کرتا ہے۔ پروٹیل کو 'لفظی' سمجھا جاتا ہے، جس میں بڑی تعداد میں مخصوص الفاظ ہوتے ہیں جن میں کچھ بیانات انگریزی کی طرح پڑھتے ہیں۔ پروٹل سورس کوڈ کیس غیر حساس ہے لیکن روایت کے مطابق اپر کیس ریزروڈ الفاظ کے لیے استعمال ہوتا ہے۔ متغیرات اور تفویض زیادہ تر عالمی اور تمام مقامی متغیرات کو ڈی ای سی ایل ریزرو ورڈ کا استعمال کرتے ہوئے اعلان کیا جاتا ہے۔ ڈی ای سی ایل مائور آئی این ٹی ؛ متغیرات کو آئی این آئی ٹی مطلوبہ الفاظ کا استعمال کرتے ہوئے شروع کیا جا سکتا ہے۔ DECL مائور INT INIT 42 ؛ مستقل IS کلیدی لفظ استعمال کرتے ہیں، ہیکساڈیسیمل #استعمال کرتا ہے۔ ڈی سی ایل مائی کانسٹ آئی این ٹی آئی ایس #F00D ؛ عالمی متغیرات بالترتیب تحریری محفوظ ڈیٹا یا تھریڈ مقامی ڈیٹا کی وضاحت کے لیے پروٹیکٹڈ، یا پرائیویٹ ڈیکلریشنز کا بھی استعمال کر سکتے ہیں۔ محفوظ ڈیٹا پر لکھنے کے لیے بلٹ ان پرائمیٹوز کے استعمال کی ضرورت ہوتی ہے جو محفوظ ڈیٹا کو محفوظ طریقے سے تبدیل کرتے ہیں۔ محفوظ ڈیٹا سسٹم امیج کے دوبارہ لوڈ ہونے سے پہلے تمام دوبارہ شروع ہونے پر زندہ رہتا ہے۔ پروٹیکٹڈ مائی پروٹیکٹڈ ڈیٹا INT ؛ رائٹ _ پروٹیکٹڈ _ اسٹور (مائی پروٹیکٹڈ ڈیٹا، ویلیو) ؛ نوٹ WRITE _ PROTECTED _ STORE دلائل اس وقت تک اگنوسٹک ٹائپ کے ہوتے ہیں جب تک کہ دونوں دلائل کی اقسام مماثل ہوں۔ پرائیویٹ اس کا استعمال کرنے والے ہر عمل کے لیے ڈیٹا کی ایک نجی کاپی فراہم کرتا ہے۔ کوئی سی او ڈبلیو فعالیت نہیں ہے، ہر عمل کو اس کی اپنی کاپی مختص کی جاتی ہے اور اختیاری طور پر اسے تخلیق کرتے وقت شروع کیا جاتا ہے۔ پرائیویٹ مائی پرائیویٹیڈا آئی این ٹی ؛ نوٹ کریں کہ ڈی ای سی ایل کا استعمال کرتے ہوئے بیان کردہ مقامی متغیرات قدرتی طور پر پرائیویٹ ہیں۔ GAZINTA Gazinta اسائنمنٹ آپریٹر '->' کے لیے استعمال ہونے والا بول چال کا نام ہے۔ اس کا نام 'اندر جاتا ہے' سے آتا ہے جس کا مطلب ہے اظہار گزینٹا (اندر جاتا ہے) متغیر۔ اظہارات کا اندازہ بغیر کسی آپریٹر کی ترجیح کے سخت بائیں سے دائیں ترتیب میں کیا جاتا ہے۔ آپریٹر کی ترجیح کی کمی این ٹی 40 پروسیسر کی میراث ہے جس نے آر پی این منطق کا استعمال کرتے ہوئے اسٹیک پر مبنی اے ایل یو کا استعمال کیا۔ پیرانتھیسز کا استعمال ذیلی تاثرات کو ترجیح دینے کے لیے کیا جاتا ہے۔ ایکسپریشن-> مائور ؛ پوائنٹرز پوائنٹر آپریٹر @ہے اور پی ٹی آر کے بعد رکھا گیا ہے۔ ایک این یو ایل ایل پوائنٹر ایک پہلے سے طے شدہ قیمت ہے جس کی ضمانت دی جاتی ہے کہ وہ نقشہ شدہ پتے کی طرف اشارہ نہیں کرے گا۔ یہ نہ تو 0 ہے اور نہ ہی-1 اور نہ ہی کوئی اور پہلے سے طے شدہ غیر ابتدائی میموری پیٹرن (#FDFD) ہے۔ دوسرے لفظوں میں، پوائنٹر ڈیفالٹ طور پر این یو ایل ایل نہیں ہوتا، اسے کوڈ میں سیٹ ہونا چاہیے۔ پوائنٹر ریاضی کی حمایت نہیں ہے۔ ڈی سی ایل مائی پی ٹی آر کو انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹیٹ انٹی ڈسکریپٹر 'ڈی ای ایس سی' ایک مرتب کی وضاحت شدہ ساخت ہے جس میں ایک صف اور صف کے اوپری حصے پر ایک پوائنٹر ہوتا ہے۔ ایک وضاحتی صف کو سادہ صف نحو 'MY _ DESC [I]' کا استعمال کرتے ہوئے ترتیب دیا جاتا ہے اور یو پی بی آپریٹر کو اوپری باؤنڈ 'یو پی بی MYDESC' تک رسائی کے لیے استعمال کیا جا سکتا ہے۔ ایک ٹی ڈی ایس آئی زیڈ آپریٹر این ٹی 40: ٹی ڈی ایس آئی زیڈ = یو پی بی + 1 پر ڈسکرپٹر کے نفاذ کی میراث کے طور پر بھی موجود ہے۔ وضاحتیں متحرک طور پر مختص صفوں کی جانچ کرنے کے لیے خودکار رن ٹائم باؤنڈ رکھتی ہیں۔ کسی ڈسکریپٹر کو حد سے باہر انڈیکس کرنا یا این یو ایل ایل ڈسکریپٹر کو انڈیکس کرنا ڈسکریپٹر رینج چیک ٹریپ کا سبب بنے گا۔ یو پی بی عام طور پر ایپلیکیشن سافٹ ویئر کے ذریعے انڈیکس کو حد سے باہر زیادہ خوبصورتی سے سنبھالنے کے لیے استعمال کیا جاتا ہے۔ ڈی سی ایل مائی _ انٹ _ ایرے ڈی ای ایس سی آف انٹ انٹ این یو ایل ایل ؛ نوٹ این یو ایل ایل کو پوائنٹرز اور ڈسکرپٹرز کے لیے استعمال کیا جا سکتا ہے۔ سٹرنگز تفصیل کا بڑے پیمانے پر استعمال کرتے ہیں۔ تار ایک متعین لمبائی کے ہوتے ہیں جن میں کوئی این یو ایل ایل کردار ٹرمینیٹر نہیں ہوتا ہے۔ ڈی سی ایل فو ڈیسک آف چار "میری سٹرنگ نامی فو" ہے ؛ بلاکس بلاک کے دائرہ کار کی تعریف بلاک اور اینڈ بلاک کے بیانات سے کی جاتی ہے، جو پاسکل میں بیگن اینڈ یا سی میں {} کے مترادف ہیں۔ بلاکس کو اختیاری طور پر بہتر مرتب کی جانچ اور فعالیت کے لیے لیبل کیا جا سکتا ہے۔ [لیبل:] کچھ کوڈ EXIT [لیبل] کو بلاک کریں ؛ مزید کوڈ ENDBLOCK [لیبل] طریقہ کار اور افعال میں صرف ریٹرنز شق کی موجودگی اور ریٹرن بیان شامل کرنے کی ضرورت سے فرق ہوتا ہے۔ واپسی کا بیان کسی فنکشن یا طریقہ کار میں کہیں بھی داخل کیا جا سکتا ہے۔ اعلامیہ PROC میرا نام (دلیل کی فہرست) آگے ہے ؛ PROC میرا نام (دلیل کی فہرست) واپسی کی قسم آگے ہے ؛ نفاذ PROC میرا نام (دلیل کی فہرست) واپسی کی قسم بلاک ہے۔ کوڈ۔ کچھ _ قدر واپس کریں ؛ اینڈ بلاک ڈھانچے ٹیبل بنیادی صف کا ڈھانچہ ہے۔ ٹیبل صرف ان صفوں کے لیے استعمال ہوتا ہے جن کا سائز مرتب کرنے کے وقت معلوم ہوتا ہے۔ وضاحتیں صفوں کا حوالہ دینے کا ترجیحی طریقہ ہیں۔ ٹیبل کو رینج سے باہر انڈیکس کرنا ٹیبل رینج چیک ٹریپ کا سبب بنے گا۔ یو پی بی اور ٹی ڈی ایس آئی زیڈ آپریٹرز بھی ٹیبلز پر لاگو ہوتے ہیں۔ یونینز اوورلے یونین کا بنیادی ڈھانچہ ہے۔ اس کا اعلان اور استعمال پاسکل کی نسل کی زبانوں کی طرح کیا جاتا ہے۔ اے آر ایز ایریا میموری بلاکس ہیں جنہیں ٹیبلز اور اوورلیز میں ڈالا جا سکتا ہے۔ انہیں بائٹس میں اعلان کیا جاتا ہے اور عام طور پر مستقبل میں توسیع کی اجازت دینے کے لیے کافی بڑا قرار دیا جاتا ہے۔ یہ دوبارہ شروع کرنے کی ضرورت کے بغیر ڈی ایم ایس سافٹ ویئر 'لائیو' کو اپ گریڈ کرنے کی خواہش کی وجہ سے ہے۔ پروٹل کی ماڈیولر نوعیت کوڈ کے نسبتا چھوٹے حصوں کو لوڈ میں تبدیل کرنے کی اجازت دیتی ہے۔ اگر اے آر ای اے کو چالاکی سے منصوبہ بنایا گیا تھا، تو اس سے میموری میں ماڈیولز کی جگہ پر اثر نہیں پڑے گا، اس طرح دوبارہ شروع ہونے سے بچا جائے گا۔ سب سسٹمز، ماڈیولز، اور سیکشن ایک ٹیکسٹ فائل ہے جس میں سورس کوڈ اور ہدایات ہوتی ہیں تاکہ مختلف سیکشن کی اقسام اور ماڈیول کے درجہ بندی میں ان کی پوزیشن کا انتظام کیا جا سکے۔ سیکشن تالیف کی سب سے چھوٹی اکائی ہے۔ ماڈیول ربط اور لوڈنگ کی سب سے چھوٹی اکائی ہے اور اس میں ایک یا زیادہ حصے ہوتے ہیں۔ سبسسٹم پیکیجنگ کی سب سے چھوٹی اکائی ہے اور اس میں ایک یا زیادہ ماڈیول ہوتے ہیں۔ کنٹرول فلو کیس (سوئچ) بیان کی 2 شکلیں ہیں۔ کیس کلیدی لفظ کا استعمال جمپ ٹیبل کا استعمال کرتا ہے اور سلیکٹ ترتیب وار اگر پھر دوسری منطق کا استعمال کرتا ہے۔ معاملات خصوصی ہیں، وہ 20 ویں صدی میں تخلیق کردہ سی حوالہ جات پروسیجرل پروگرامنگ زبانوں نورٹل پروگرامنگ زبانوں کی طرح نہیں آتے ہیں۔