گوگل اینڈرائیڈ کے لیے ایک ماڈیولر اسمبلی سسٹم سونگ تیار کر رہا ہے۔

گوگل ایک تعمیراتی نظام تیار کر رہا ہے۔ سونگ, میک یوٹیلیٹی کے استعمال کی بنیاد پر، اینڈرائیڈ پلیٹ فارم کے لیے پرانے بلڈ اسکرپٹس کو تبدیل کرنے کے لیے ڈیزائن کیا گیا ہے۔ سونگ سادہ اعلانیہ استعمال کرنے کی تجویز کرتا ہے۔ وضاحتیں ماڈیولز کو جمع کرنے کے قوانین، دیا ایکسٹینشن ".bp" (بلیو پرنٹس) والی فائلوں میں۔ فائل فارمیٹ JSON کے قریب ہے اور اگر ممکن ہو تو اسمبلی فائلوں کے نحو اور الفاظ کو دہراتا ہے۔ بزل. کوڈ گو میں لکھا گیا ہے اور اپاچی 2.0 لائسنس کے تحت تقسیم کیا گیا ہے۔

سونگ بلڈ فائلز مشروط بیانات اور برانچنگ ایکسپریشنز کو سپورٹ نہیں کرتی ہیں، بلکہ صرف پروجیکٹ ڈھانچہ، ماڈیولز اور انحصار کی وضاحت کرتی ہیں جو تعمیر کرتے وقت استعمال ہوتی ہیں۔ بنائی جانے والی فائلوں کو ماسک کا استعمال کرتے ہوئے بیان کیا گیا ہے اور پیکجوں میں گروپ کیا گیا ہے، جن میں سے ہر ایک منسلک انحصار والی فائلوں کا مجموعہ ہے۔ متغیرات کی وضاحت ممکن ہے۔ متغیرات اور خصوصیات کو سختی سے ٹائپ کیا جاتا ہے (متغیرات کی قسم کو پہلی اسائنمنٹ پر متحرک طور پر منتخب کیا جاتا ہے، اور ماڈیول کی قسم کے لحاظ سے مستحکم طور پر خصوصیات کے لیے)۔ اسمبلی منطق کے پیچیدہ عناصر کو ہینڈلرز میں منتقل کیا جاتا ہے، لکھا ہوا گو زبان میں

سونگ ایک بڑے پروجیکٹ کے ساتھ جڑا ہوا ہے۔ بلیو پرنٹ، جس کے اندر ایک میٹا اسمبلی سسٹم تیار کیا جا رہا ہے جو اینڈرائیڈ سے منسلک نہیں ہے، جو کہ اعلاناتی ماڈیول کی تفصیل والی فائلوں پر مبنی، اسمبلی اسکرپٹ تیار کرتا ہے۔ ننجا (میک کا متبادل)، ان کمانڈز کی وضاحت کرتے ہوئے جن کو بنانے کے لیے چلانے کی ضرورت ہے اور انحصار۔ تعمیراتی منطق کی وضاحت کرنے کے لیے پیچیدہ قواعد یا ڈومین کے لیے مخصوص زبان استعمال کرنے کے بجائے، بلیو پرنٹ Go زبان میں پروجیکٹ کے لیے مخصوص ہینڈلرز کا استعمال کرتا ہے (Soong بنیادی طور پر Android کے لیے ملتے جلتے ہینڈلرز کا ایک سیٹ ہے)۔

یہ نقطہ نظر بڑے اور متفاوت پروجیکٹس، جیسے کہ اینڈرائیڈ، کو اعلی سطحی پروگرامنگ زبان میں کوڈ میں اسمبلی لاجک کے پیچیدہ عناصر کو لاگو کرنے کی اجازت دیتا ہے، جبکہ سادہ اعلانیہ نحو کا استعمال کرتے ہوئے اسمبلی کی تنظیم اور پروجیکٹ کے ڈھانچے سے متعلق ماڈیولز میں تبدیلیاں کرنے کی صلاحیت کو برقرار رکھتا ہے۔ . مثال کے طور پر، سونگ میں، کمپائلر جھنڈوں کا انتخاب ہینڈلر کے ذریعے کیا جاتا ہے۔ llvm.go، اور ہارڈویئر فن تعمیر کے لیے مخصوص ترتیبات کا اطلاق ہینڈلر کے ذریعے کیا جاتا ہے۔ art.goلیکن کوڈ فائلوں کی لنکنگ ".bp" فائل میں کی جاتی ہے۔

cc_library {
...
srcs: ["generic.cpp"]،
محراب: {
بازو: {
srcs: ["arm.cpp"]،
},
x86: {
srcs: ["x86.cpp"]،
},
},
}

ماخذ: opennet.ru

نیا تبصرہ شامل کریں