ML/I
ایم ایل/1 (میکرو لینگویج/ون) ایک طاقتور عام مقصد کا میکرو پروسیسر ہے۔ ایم ایل/1 کے عام استعمال میں شامل ہیں: ٹیکسٹ فائلوں میں ترمیم، ترمیم، اصلاح، یا اصلاح کرنا جو سورس کوڈ کو ایک پروگرامنگ زبان سے دوسری زبان میں ترجمہ کرتا ہے جو سورس کوڈ پری پروسیسر کے طور پر کام کرتا ہے تاکہ صارف کو موجودہ پروگرامنگ زبان میں نئی نحو شکلیں شامل کرنے کی اجازت دی جا سکے جو پروگرام سورس کوڈ پیرامیٹرائزیشن کی حمایت کرتا ہے (مثال کے طور پر۔ ایک پیرامیٹر اس بات کا تعین کر سکتا ہے کہ آیا ڈیبگنگ بیانات کو پروگرام سورس کوڈ میں شامل کیا جانا ہے جو مرتب کرنے والے کو منتقل کیا جاتا ہے) ایم ایل/1 کو 1966 میں پیٹر جے نے تیار کیا تھا۔ براؤن انگلینڈ کی کیمبرج یونیورسٹی میں پی ایچ ڈی ریسرچ کے حصے کے طور پر۔ 1984 میں، کینٹ یونیورسٹی میں پیٹر براؤن کے ساتھیوں میں سے ایک، رابرٹ ڈی ایگر نے ایم ایل/آئی کو دوبارہ لکھا، پہلے 1981 میں بی سی پی ایل میں، اور بعد میں 1984 میں سی میں، جس سے اس کی پورٹیبلٹی میں اضافہ ہوا۔ نوٹ کریں کہ زبان کے لیے پیٹر براؤن کا اصل نام ایم ایل/آئی تھا، جہاں (جیسا کہ آئی بی ایم کے پی ایل/آئی میں) آخری حرف رومن عدد "آئی" ہے، نہ کہ عربی عدد "1"۔ تاہم اس کے بعد کے زیادہ تر نفاذ کو ایم ایل/1 کہا گیا ہے (جہاں آخری حرف عربی عدد "1" ہے)۔ اس کے بعد سے، ایم ایل/1 کو بہت سے پلیٹ فارمز اور آپریٹنگ سسٹمز پر پورٹ کیا گیا ہے، جن میں وی ایم ایس، ایم وی ایس، ایم ایس-ڈاس، او ایس/2، اور یونکس شامل ہیں۔ ایم ایل/1 کے نفاذ میں، باب ایگر نے ان خصوصیات اور صلاحیتوں کو شامل کیا ہے جو اصل میں پیٹر براؤن کے مقالے میں بیان کی گئی ہیں۔ یہ ورژن ایم ایل/1 ویب سائٹ، http://www.ml1.org.uk کے ذریعے متعدد پلیٹ فارمز کے لیے دستیاب ہے۔ ایم ایل/1 ویب سائٹ ایم ایل/1 کے بارے میں مزید معلومات کے ساتھ ساتھ دستاویزات (بشمول ٹیوٹوریل، سادہ تعارفی گائیڈ، اور مکمل صارف دستی) فراہم کرتی ہے۔ اگرچہ دنیا میں ایم ایل/1 صارفین کی کل تعداد کم ہے، لیکن پوری دنیا میں ایم ایل/1 صارفین ہیں، اور باب نے ریاستہائے متحدہ، کینیڈا، آسٹریلیا، نیوزی لینڈ، جرمنی، ہالینڈ اور ہندوستان میں ایم ایل/1 صارفین کے ساتھ خط و کتابت کیا ہے۔ 1976 کے ایک مقالے میں، اینڈریو ایس ٹینن بوم نے ایم ایل/آئی کو مرتب کنندہ کے طور پر استعمال کرنے کی وضاحت کی ہے۔ جائزہ ایم ایل/آئی ان پٹ کو مکمل طور پر مفت شکل میں قبول کرتا ہے، ڈیٹا کو لائنوں یا ریکارڈز کے سلسلے کے بجائے بائٹس کے سلسلے کے طور پر مانتا ہے۔ میکرو توسیع کی نشاندہی کرنے کے لیے اسے کسی خاص پرچم کی ضرورت نہیں ہے، جو اسے صوابدیدی متن کی پروسیسنگ کے لیے خاص طور پر مفید بناتا ہے۔ متن کی تبدیلی آسان ہو سکتی ہے (مثال کے طور پر۔ پی آئی جی کو ڈی او جی سے تبدیل کیا جانا ہے) یا کمپلیکس (جیسے۔ آخری فل اسٹاپ کے بعد تیسرے اور چوتھے کوما کے درمیان آئٹم کو کسی کاؤنٹر کے مواد سے تبدیل کریں)۔ ایم ایل/آئی کو پورٹیبل سافٹ ویئر کی کئی اشیاء کو نافذ کرنے کے لیے استعمال کیا گیا تھا، بشمول خود۔ یہ اصل میں ایک خاص وضاحتی زبان میں لکھا گیا تھا، پھر ہر ہدف کے نظام کے لیے ایک مناسب زبان میں نقشہ بنایا گیا تھا۔ یہ نقشہ سازی خود ایم ایل/آئی کا استعمال کرتے ہوئے کی گئی تھی۔ اس وضاحتی زبان کی دو مختلف شکلیں تھیں ؛ اعلی سطح اور نچلی سطح۔ اس نقشہ سازی کے بعد ایم ایل/آئی کو اکثر 16 بٹ آرکیٹیکچر منی کمپیوٹرز کی نئی نسل کے لیے ایس آئی ایل (سسٹم کے نفاذ کی زبانیں، جیسے سی) کو نافذ کرنے کے لیے استعمال کیا جاتا تھا۔ ایم ایل/1 کیسے کام کرتا ہے سب سے بنیادی اصطلاحات میں، یہ ہے کہ ایم ایل/1 کیسے کام کرتا ہے۔ صارف ان پٹ ٹیکسٹ پر مشتمل فائل کے ساتھ ایم ایل/1 فراہم کرتا ہے۔ دوسری فائل میں (یا، اختیاری طور پر، اسی فائل میں) صارف ایم ایل/1 میکرو کا ایک سیٹ فراہم کرتا ہے۔ میکرو ایم ایل/1 مترجم کو بتاتے ہیں کہ صارف ان پٹ ٹیکسٹ میں کیا اندراج، حذف، توسیع، ترجمے اور دیگر تبدیلیاں کرنا چاہتا ہے۔ جب ان پٹ ٹیکسٹ پر ایم ایل/1 چلایا جاتا ہے، تو ایم ایل/1 ایم ایل/1 میکرو میں دی گئی ہدایات پر عمل کرتا ہے، ٹیکسٹ کو تبدیل کرتا ہے، اور ترمیم شدہ ٹیکسٹ پر مشتمل ایک نئی فائل لکھتا ہے۔ ایم ایل/1 کی مخصوص خصوصیات کئی طریقے ہیں جن میں ایم ایل/1 سادہ "اسکین اینڈ ریپلیس" افادیت سے زیادہ طاقتور ہے۔ ایم ایل/1 حروف کی تار کی بنیاد پر متن پر عمل نہیں کرتا ؛ یہ لفظ بہ لفظ (یا، ایم ایل/1 کی اصطلاح میں، "ایٹم بہ ایٹم" کی بنیاد پر) متن پر عمل کرتا ہے۔ بہت سی ایپلی کیشنز کے لیے، کسی متن کو حروف کی ترتیب کے بجائے ایٹموں کی ترتیب کے طور پر عمل کرنے کے قابل ہونا انتہائی مفید ہے۔ مثال کے طور پر، فرض کریں کہ ہم کسی پروگرام کا ترجمہ کسی ایسی پروگرامنگ زبان سے کرنا چاہتے ہیں جس میں ڈو۔ اینڈ نحو ہو، اس زبان میں جس میں بیگن۔ اینڈ نحو ہو۔ اس لیے ہم "ڈو" کو "بیگن" سے تبدیل کرنا چاہتے ہیں۔ اگر ہم ایک عام اسکین-اینڈ-ریپلیس یوٹیلیٹی کے ساتھ تبدیلی کرتے ہیں، تو سٹرنگ "ڈو" کے تمام واقعات کو "شروع کریں" میں تبدیل کر دیا جائے گا، بشمول کوئی بھی "ڈو" جو الفاظ میں سرایت کر چکے ہوں جیسے "دستاویز" (جو "شروع" ہو جائے گا)۔ ایم ایل/1 کے ساتھ، اس کے برعکس، ایسا نہیں ہوگا کیونکہ سٹرنگ "ڈی او" متن کی تبدیلی کو صرف اس وقت متحرک کرے گا جب یہ ایک لفظ کے طور پر آتا ہے (یعنی، جب اس سے پہلے اور اس کے بعد حد بندی جیسے خالی جگہیں، ٹیب، نئی لائنیں، یا پنکچوایشن حروف)۔ ایم ایل/1، لائن بہ لائن کی بنیاد پر کام کرنے کے بجائے، متن کے ایسے نمونوں کو پہچانتا ہے جو کافی پیچیدہ، گھونسلے دار، متعدد حد بندی کے ساتھ، اور بہت سی لائنوں پر پھیلے ہوئے ہو سکتے ہیں۔ مثال کے طور پر، ایم ایل/1 عام پروگرامنگ زبان آئی ایف۔ تھین جیسے پیٹرن پر کارروائی کر سکتا ہے۔ ELSE. ENDIF ڈھانچہ جو متعدد لائنوں پر پھیلا ہوا ہے، اور سرایت شدہ متن پر مشتمل ہے جس میں خود ایک نیسٹڈ IF شامل ہو سکتا ہے۔ ELSE. ENDIF ڈھانچہ۔ ایم ایل/1 سرایت شدہ تبصروں اور لفظی حوالوں کو پہچان سکتا ہے، اور انہیں تبدیلی سے بچا سکتا ہے۔ عام اسکین اور تبدیلی کی افادیت سٹرنگ کو اندھا دھند تبدیل کرتی ہے، چاہے وہ پروگرام کے متن میں مطلوبہ الفاظ کے طور پر ہوں یا متغیر نام کے طور پر، تبصرہ میں سرایت شدہ، یا حوالہ شدہ لفظی طور پر۔ اس طرح کے پیچیدہ نمونوں سے نمٹنے کے لیے، ایم ایل/1 کو اپنے طور پر ایک پروگرامنگ زبان ہونا ضروری ہے۔ دیگر پروگرامنگ زبانوں کی طرح، ایم ایل/1 متغیرات اور تفویض کے بیانات، جی او ٹی اوز اور لیبلز، آئی ایف۔ تھین ٹیسٹ اور لوپس کی حمایت کرتا ہے۔ یہ خصوصیات ایم ایل/1 کو غیر معمولی حد تک طاقت اور لچک دیتی ہیں۔ حدود ایم ایل/1 کیس حساس ہے، لہذا یہ کیس غیر حساس ٹیکسٹ پروسیسنگ کی حمایت نہیں کرتا ہے۔ حوالہ جات بیرونی لنکس http://www.ml1.org.uk میکرو پروگرامنگ زبانیں