Inlinec - วิธีใหม่ในการใช้โค้ด C ในสคริปต์ Python

โครงการ อินไลน์ มีการเสนอวิธีการใหม่สำหรับการรวมโค้ด C แบบอินไลน์เข้ากับสคริปต์ Python ฟังก์ชัน C ถูกกำหนดโดยตรงในไฟล์โค้ด Python เดียวกัน ซึ่งไฮไลต์โดยเครื่องมือตกแต่ง “@inlinec” สคริปต์สรุปจะดำเนินการตามที่เป็นโดยล่าม Python และแยกวิเคราะห์โดยใช้กลไกที่มีให้ใน Python ตัวแปลงสัญญาณซึ่งทำให้สามารถเชื่อมต่อ parser เพื่อแปลงสคริปต์ก่อนที่จะแยกวิเคราะห์โดยล่าม (ตามกฎแล้ว โมดูลตัวแปลงสัญญาณใช้สำหรับการแปลงรหัสข้อความแบบโปร่งใส แต่ยังช่วยให้คุณแปลงเนื้อหาของสคริปต์โดยพลการ)

ตัวแยกวิเคราะห์เชื่อมต่อเป็นโมดูล (“จาก inlinec import inlinec”) ซึ่งดำเนินการประมวลผลเริ่มต้นและแปลคำจำกัดความของฟังก์ชัน C ได้ทันทีที่ไฮไลต์โดยใช้คำอธิบายประกอบ @inlinec เป็นการผูก ctypes และแทนที่เนื้อความของฟังก์ชัน C ด้วย การเรียกร้องให้มีการผูกมัดเหล่านี้ หลังจากการแปลงดังกล่าว ล่าม Python จะได้รับข้อความต้นฉบับที่แปลงแล้วของสคริปต์ที่ถูกต้อง ซึ่งฟังก์ชัน C ถูกเรียกใช้โดยใช้ ประเภท. โปรเจ็กต์ก็ใช้วิธีการที่คล้ายกันเช่นกัน Pyxl4ซึ่งช่วยให้คุณสามารถผสมโค้ด HTML และ Python ไว้ในไฟล์เดียวได้

# การเข้ารหัส: อินไลน์
จาก inlinec นำเข้า inlinec

@อินไลน์
การทดสอบ Def ():
#รวม
การทดสอบเป็นโมฆะ () {
printf("สวัสดีชาวโลก");
}

จนถึงขณะนี้การพัฒนาถูกนำเสนอเป็นต้นแบบการทดลองซึ่งมีข้อบกพร่องเช่นขาดการสนับสนุนในการส่งพอยน์เตอร์ (ยกเว้นสตริง) ไปยังฟังก์ชันความจำเป็นในการรัน
“gcc -E” สำหรับการประมวลผลโค้ดล่วงหน้า บันทึกไฟล์ระดับกลาง *.so, *.o และ *.c ในไดเร็กทอรีปัจจุบัน ไม่แคชเวอร์ชันที่แปลงแล้ว และดำเนินการขั้นตอนการแยกวิเคราะห์ที่ไม่จำเป็น (ดีเลย์นานในแต่ละครั้งที่รัน)

ที่มา: opennet.ru

เพิ่มความคิดเห็น