Inlinec - روشی جدید برای استفاده از کد C در اسکریپت های پایتون

پروژه inlinec روش جدیدی برای ادغام درون خطی کد C در اسکریپت های پایتون پیشنهاد شده است. توابع C مستقیماً در همان فایل کد پایتون تعریف می شوند که توسط دکوراتور "@inlinec" برجسته شده است. اسکریپت خلاصه همانطور که هست توسط مفسر پایتون اجرا شده و با استفاده از مکانیزم ارائه شده در پایتون تجزیه می شود. کدک ها، که اتصال تجزیه کننده را برای تبدیل اسکریپت قبل از تجزیه آن توسط مفسر امکان پذیر می کند (به عنوان یک قاعده، ماژول کدک ها برای رمزگذاری متن شفاف استفاده می شود، اما همچنین به شما امکان می دهد تا محتویات اسکریپت را خودسرانه تغییر دهید).

تجزیه کننده به عنوان یک ماژول ("از inlinec import inlinec") متصل است، که پردازش اولیه را انجام می دهد و تعاریف توابع C برجسته شده با استفاده از حاشیه نویسی inlinec@ را به پیوندهای ctypes تبدیل می کند و بدنه تابع C را با فراخوانی به این الزامات پس از چنین تبدیلی، مفسر پایتون متن مبدأ تبدیل شده صحیح اسکریپت را دریافت می کند که در آن توابع C با استفاده از آن فراخوانی می شوند. ctypes. روش مشابهی نیز در پروژه استفاده می شود Pyxl4، که به شما امکان می دهد کدهای HTML و Python را در یک فایل ترکیب کنید.

# کدگذاری: inlinec
از inlinec import inlinec

@inlinec
def test():
#عبارتند از
void test() {
printf ("سلام، دنیا");
}

این توسعه تا کنون به عنوان یک نمونه آزمایشی ارائه شده است که حاوی کاستی هایی مانند عدم پشتیبانی از انتقال اشاره گر (به جز رشته ها) به تابع، نیاز به اجرا است.
"gcc -E" برای پیش پردازش کد، ذخیره فایل های میانی *.so، *.o و *.c در فهرست فعلی، ذخیره نکردن نسخه تبدیل شده در حافظه پنهان و انجام مراحل تجزیه غیرضروری (تأخیر طولانی در هر بار اجرا).

منبع: opennet.ru

اضافه کردن نظر