Codon คอมไพเลอร์สำหรับ Python เผยแพร่แล้ว

Startup Exaloop ได้เผยแพร่รหัสของโครงการ Codon ซึ่งพัฒนาคอมไพเลอร์สำหรับภาษา Python ซึ่งสามารถสร้างรหัสเครื่องบริสุทธิ์เป็นเอาต์พุตได้ โดยไม่ได้เชื่อมโยงกับรันไทม์ของ Python คอมไพเลอร์ได้รับการพัฒนาโดยผู้เขียน Seq ภาษาคล้าย Python และอยู่ในตำแหน่งที่ต่อเนื่องจากการพัฒนา โครงการยังมีรันไทม์ของตัวเองสำหรับไฟล์เรียกทำงานและไลบรารีของฟังก์ชันที่มาแทนที่การเรียกใช้ไลบรารีในภาษา Python ซอร์สโค้ดของคอมไพเลอร์ รันไทม์ และไลบรารีมาตรฐานเขียนขึ้นโดยใช้ C++ (โดยใช้การพัฒนาจาก LLVM) และ Python และเผยแพร่ภายใต้ BSL (ใบอนุญาตแหล่งที่มาของธุรกิจ)

BSL ถูกเสนอโดยผู้ร่วมก่อตั้ง MySQL เพื่อเป็นทางเลือกแทนโมเดล Open Core สาระสำคัญของ BSL คือรหัสของฟังก์ชันเพิ่มเติมนั้นพร้อมให้แก้ไขในขั้นต้น แต่บางครั้งสามารถใช้งานได้ฟรีภายใต้เงื่อนไขเพิ่มเติม ซึ่งจำเป็นต้องซื้อใบอนุญาตเชิงพาณิชย์เพื่อหลีกเลี่ยง ข้อกำหนดสิทธิ์การใช้งานเพิ่มเติมของโครงการ Codon กำหนดให้โอนรหัสไปยังสิทธิ์การใช้งาน Apache 2.0 หลังจาก 3 ปี (1 พฤศจิกายน 2025) จนกว่าจะถึงเวลานั้น ใบอนุญาตจะอนุญาตให้คัดลอก แจกจ่าย และแก้ไขได้ โดยมีเงื่อนไขว่าต้องใช้เพื่อวัตถุประสงค์ที่ไม่ใช่เชิงพาณิชย์

ประสิทธิภาพของโปรแกรมเรียกทำงานเอาต์พุตนั้นใกล้เคียงกับโปรแกรมที่เขียนด้วยภาษาซี เมื่อเปรียบเทียบกับการใช้ CPython ประสิทธิภาพที่เพิ่มขึ้นเมื่อคอมไพล์โดยใช้ Codon นั้นประมาณ 10-100 เท่าสำหรับการดำเนินการแบบเธรดเดียว ในขณะเดียวกัน Codon ยังใช้ความเป็นไปได้ของการใช้มัลติเธรดซึ่งแตกต่างจาก Python ซึ่งแตกต่างจาก Python ซึ่งช่วยให้คุณเพิ่มประสิทธิภาพได้มากขึ้น Codon ยังอนุญาตให้คุณคอมไพล์ในระดับฟังก์ชันเพื่อใช้มุมมองที่คอมไพล์แล้วในโครงการ Python ที่มีอยู่

Codon สร้างขึ้นโดยใช้สถาปัตยกรรมโมดูลาร์ที่ช่วยให้คุณสามารถขยายการทำงานผ่านปลั๊กอินที่สามารถเพิ่มไลบรารีใหม่ ใช้การปรับให้เหมาะสมของคอมไพเลอร์ และแม้แต่ให้การสนับสนุนสำหรับไวยากรณ์เพิ่มเติม ตัวอย่างเช่น ปลั๊กอินหลายตัวได้รับการพัฒนาควบคู่กันไปเพื่อใช้ในชีวสารสนเทศศาสตร์และคณิตศาสตร์ทางการเงิน ตัวรวบรวมขยะ Boehm ใช้สำหรับการจัดการหน่วยความจำ

คอมไพเลอร์รองรับไวยากรณ์ Python ส่วนใหญ่ แต่การคอมไพล์เป็นโค้ดเนทีฟมีข้อจำกัดหลายประการที่ทำให้ไม่สามารถใช้ Codon แทน CPython แบบโปร่งใสได้ ตัวอย่างเช่น Codon ใช้ประเภท 64 บิต int สำหรับจำนวนเต็ม ในขณะที่ CPython มีจำนวนเต็มไม่จำกัด ความเข้ากันได้ของ Codon สำหรับ codebases ขนาดใหญ่อาจต้องมีการเปลี่ยนแปลงรหัส โดยทั่วไป ความเข้ากันไม่ได้เกิดจากการขาดการนำไปใช้สำหรับ Codon ของโมดูล Python บางโมดูล และการไม่สามารถใช้คุณสมบัติไดนามิกบางอย่างของภาษาได้ สำหรับความเข้ากันไม่ได้แต่ละอย่าง คอมไพลเลอร์จะออกข้อความวินิจฉัยโดยละเอียดพร้อมข้อมูลเกี่ยวกับวิธีแก้ไขปัญหา

Codon คอมไพเลอร์สำหรับ Python เผยแพร่แล้ว


ที่มา: opennet.ru

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