منصوبے کے بارے میں
PB-Compiler (`pbc`) PowerBASIC خاندان کے کمپائلروں کی ایک صاف ستھری دوبارہ تشکیل ہے، جو جدید C# میں لکھی گئی ہے۔ اس کا بنیادی مقصد یہ ہے کہ DOS دور کے ونٹیج BASIC سورس کوڈ کو جدید 64-bit ہارڈویئر پر حقیقی، چلنے کے قابل 16-bit MS-DOS `.EXE` بائنریز میں کمپائل کیا جا سکے۔ یہ پروجیکٹ تاریخی بولیوں کے ساتھ سخت وفاداری پر زور دیتا ہے، اس بات کو یقینی بناتا ہے کہ پروگرام اصل ملکیتی کمپائلروں کے تیار کردہ پروگراموں کی طرح برتاؤ کریں، بشمول دستاویزی bugs۔
اہم صلاحیتیں شامل ہیں:
**بولی کی معاونت**: کمپائلر `--dialect` فلیگ کے ذریعے بولیوں کی وسیع رینج کی معاونت کرتا ہے، جس میں Borland نسب (Turbo Basic, PowerBASIC 2.0-3.5) اور Microsoft نسب (BASICA, GW-BASIC, QuickBASIC 1.0-4.5, QBasic, BASIC PDS) شامل ہیں۔ ہر بولی نئی خصوصیات کو محدود کرتی ہے اور ورژن کے مخصوص رویوں کو فعال کرتی ہے۔
**وفاداری کا معاہدہ**: تاریخی بولیوں کے لیے، آؤٹ پٹ کو اصل بائنریز کے خلاف oracle-driven differential harness کے ذریعے تصدیق کیا جاتا ہے۔ یہ اس بات کو یقینی بناتا ہے کہ تیار کردہ کوڈ byte-identical پروگرام آؤٹ پٹ پیدا کرتا ہے، legacy سافٹ ویئر ماحولیاتی نظام کے ساتھ مطابقت برقرار رکھتا ہے۔
**آپٹیمائزیشن پائپ لائن**: تمام بولیوں میں `--optimize` فلیگ کے ذریعے ایک جدید SSA پر مبنی آپٹیمائزیشن بیک اینڈ دستیاب ہے۔ اس پائپ لائن میں constant folding، dead-code elimination، common-subexpression elimination، strength reduction، اور مزید شامل ہیں۔ یہ قابل مشاہدہ رویے کو تبدیل کیے بغیر بائنری سائز کو نمایاں طور پر کم کر سکتی ہے (مثلاً، Hello World پروگرام کو 25 bytes تک سکیڑنا)۔
**PowerBASIC 3.6 سپر سیٹ**: ایک مستقبل کی طرف دیکھنے والی بولی (`pb36`) جدید زبان کی خصوصیات شامل کرتی ہے جیسے expression-bodied functions، tuples، overloading، default parameters، lambdas/closures، generics، coroutines (`YIELD`)، اور structured exception handling (`TRY/CATCH`)۔ یہ opt-in ہیں اور موجودہ PB 3.5 کوڈ کو متاثر نہیں کرتیں۔
**آؤٹ پٹ فارمیٹس**: معیاری DOS MZ `.EXE` فائلیں، کمپائل شدہ units (`.PBU`)، اور unit libraries (`.PBL`) تیار کرتا ہے۔ یہ مزید پروسیسنگ کے لیے پورٹیبل C99 یا LLVM IR جاری کرنے کی بھی معاونت کرتا ہے۔
**تنصیب اور استعمال**: .NET کا استعمال کرتے ہوئے بنایا گیا، یہ کسی بھی OS پر چلتا ہے جو .NET 6+ کی معاونت کرتا ہے۔ صارفین repository clone کرتے ہیں، `dotnet` کے ساتھ build کرتے ہیں، اور `pbc` CLI ٹول کا استعمال کرتے ہوئے BASIC سورسز کو کمپائل کرتے ہیں۔ نتائج کو DOSBox یا حقیقی DOS ہارڈویئر پر ٹیسٹ کیا جا سکتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.