Inlinec - Python اسڪرپٽ ۾ سي ڪوڊ استعمال ڪرڻ جو نئون طريقو

پروجيڪٽ inlinec Python اسڪرپٽ ۾ سي ڪوڊ جي ان لائن انٽيگريشن لاءِ هڪ نئون طريقو تجويز ڪيو ويو آهي. C فنڪشن سڌو سنئون ساڳئي Python ڪوڊ فائل ۾ بيان ڪيا ويا آهن، "@inlinec" سينگار پاران نمايان ٿيل. خلاصو اسڪرپٽ تي عمل ڪيو ويو آهي جيئن Python مترجم طرفان آهي ۽ Python ۾ مهيا ڪيل ميڪانيزم کي استعمال ڪندي پارس ڪيو ويو آهي ڪوڊيڪس، جيڪو ممڪن بڻائي ٿو هڪ پارسر کي ڳنڍڻ لاءِ اسڪرپٽ کي تبديل ڪرڻ کان پهريان ان کي مترجم طرفان پارس ڪرڻ (قاعدي طور تي، ڪوڊيڪس ماڊل شفاف ٽيڪسٽ ٽرانسڪوڊنگ لاءِ استعمال ڪيو ويندو آهي، پر اهو پڻ توهان کي اجازت ڏئي ٿو ته ترتيب سان اسڪرپٽ جي مواد کي تبديل ڪرڻ).

parser هڪ ماڊل جي طور تي ڳنڍيل آهي ("inlinec import inlinec")، جيڪو ابتدائي پروسيسنگ انجام ڏئي ٿو ۽ اڏامڻ تي سي فنڪشن جي وصفن کي ترجمو ڪري ٿو جيڪو نمايان ٿيل @inlinec annotations استعمال ڪندي ctypes bindings ۾ ۽ C فنڪشن جي جسم کي تبديل ڪري ٿو. انهن پابندين لاء هڪ ڪال. اهڙي تبديليءَ کان پوءِ، پٿون مترجم اسڪرپٽ جو صحيح بدليل ماخذ ٽيڪسٽ وصول ڪري ٿو، جنهن ۾ C افعال کي استعمال ڪندي سڏيو ويندو آهي. قسمون. پروجيڪٽ ۾ به ساڳيو طريقو استعمال ڪيو ويندو آهي Pyxl4، جيڪو توهان کي هڪ فائل ۾ HTML ۽ Python ڪوڊ گڏ ڪرڻ جي اجازت ڏئي ٿو.

# ڪوڊنگ: inlinec
ان لائن کان درآمد ڪريو inlinec

@inlinec
def test():
#شامل ڪريو
باطل ٽيسٽ() {
printf ("هيلو، دنيا")؛
}

ترقي اڃا تائين هڪ تجرباتي پروٽوٽائپ جي طور تي پيش ڪيو ويو آهي، جنهن ۾ اهڙيون خاميون شامل آهن جيئن ته پوائنٽن کي پاس ڪرڻ لاء سپورٽ جي کوٽ (سواء اسٽرنگ) فنڪشن ڏانهن، هلائڻ جي ضرورت آهي.
"gcc -E" ڪوڊ جي اڳڀرائي لاءِ، موجوده ڊاريڪٽري ۾ وچولي *.so، *.o ۽ *.c فائلن کي محفوظ ڪرڻ، تبديل ٿيل ورجن کي ڪيش نه ڪرڻ ۽ غير ضروري پارسنگ مرحلن کي انجام ڏيڻ (ڊگهي دير هر وقت هلندي آهي).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو