Հրատարակվում է «Կոդոն»՝ Python-ի կոմպիլյատորը

Exaloop ստարտափը հրապարակել է Codon նախագծի կոդը, որը մշակում է Python լեզվի կոմպիլյատորը, որն ի վիճակի է ստեղծել մաքուր մեքենայի կոդ՝ որպես արդյունք, որը կապված չէ Python գործարկման ժամանակի հետ: Կոմպիլյատորը մշակվում է Python-ի նման Seq լեզվի հեղինակների կողմից և դիրքավորվում է որպես դրա զարգացման շարունակություն։ Նախագիծը նաև առաջարկում է գործարկվող ֆայլերի իր սեփական ժամանակը և գործառույթների գրադարան, որը փոխարինում է Python-ում գրադարանային զանգերին: Կոմպիլյատորի, գործարկման ժամանակի և ստանդարտ գրադարանի սկզբնական կոդերը գրված են C++-ի միջոցով (օգտագործելով LLVM-ի մշակումները) և Python-ը և բաշխվում են BSL-ի (Business Source License) ներքո:

BSL լիցենզիան առաջարկվել է MySQL-ի համահիմնադիրների կողմից՝ որպես Open Core մոդելի այլընտրանք։ BSL-ի էությունն այն է, որ առաջադեմ ֆունկցիոնալ ծածկագիրը ի սկզբանե հասանելի է փոփոխման համար, բայց որոշ ժամանակ կարող է անվճար օգտագործվել միայն լրացուցիչ պայմանների առկայության դեպքում, որոնք պահանջում են առևտրային լիցենզիա գնելը շրջանցելու համար: Codon նախագծի լրացուցիչ լիցենզիայի պայմանները պահանջում են, որ կոդը փոխանցվի Apache 2.0 լիցենզիային 3 տարի հետո (նոյեմբերի 1, 2025): Մինչ այս լիցենզիան թույլ է տալիս պատճենել, տարածել և փոփոխել՝ պայմանով, որ այն օգտագործվում է ոչ առևտրային նպատակներով։

Ելքային գործարկվող ֆայլերի կատարումը ներկայացվում է որպես C լեզվով գրված ծրագրերին մոտ: Համեմատած CPython-ի օգտագործման հետ՝ Codon-ի միջոցով կոմպիլյացիայի ժամանակ կատարողականի ձեռքբերումը գնահատվում է 10-100 անգամ մեկ թելերով կատարման համար: Ավելին, ի տարբերություն Python-ի, Codon-ը լրացուցիչ ներդնում է բազմալեզու օգտագործման հնարավորությունը, ինչը թույլ է տալիս էլ ավելի մեծացնել կատարողականը։ Կոդոնը նաև թույլ է տալիս կոմպիլյացիա կատարել անհատական ​​ֆունկցիայի մակարդակով, որպեսզի օգտագործեք կազմված ներկայացումը գոյություն ունեցող Python նախագծերում:

Կոդոնը կառուցված է մոդուլային ճարտարապետությամբ, որը թույլ է տալիս ավելացնել ֆունկցիոնալությունը պլագինների միջոցով, որոնցով կարող եք ավելացնել նոր գրադարաններ, կատարել օպտիմալացումներ կոմպիլյատորում և նույնիսկ ապահովել լրացուցիչ շարահյուսության աջակցություն: Օրինակ՝ զուգահեռաբար մշակվում են մի քանի պլագիններ՝ կենսաինֆորմատիկայի և ֆինանսական մաթեմատիկայի ոլորտներում օգտագործելու համար։ Boehm աղբահանը օգտագործվում է հիշողությունը կառավարելու համար:

Կոմպիլյատորն աջակցում է Python-ի շարահյուսության մեծամասնությանը, սակայն մեքենայական կոդով կոմպիլյացիան առաջացնում է մի շարք սահմանափակումներ, որոնք թույլ չեն տալիս Codon-ը օգտագործել որպես CPython-ի թափանցիկ փոխարինում: Օրինակ, Codon-ն օգտագործում է 64-բիթանոց int տեսակը ամբողջ թվերի համար, մինչդեռ CPython-ն օգտագործում է անսահմանափակ չափ ամբողջ թվերի համար։ Խոշոր կոդերի բազաները կարող են պահանջել կոդի փոփոխություններ՝ կոդոնների համատեղելիության հասնելու համար: Որպես կանոն, անհամատեղելիություններն առաջանում են Python-ի որոշ մոդուլների Codon-ի համար ներդրման բացակայության և լեզվի որոշ դինամիկ հատկանիշներ օգտագործելու անկարողության պատճառով: Յուրաքանչյուր նման անհամատեղելիության համար կոմպիլյատորը թողարկում է մանրամասն ախտորոշիչ հաղորդագրություն՝ խնդիրը շրջանցելու մասին տեղեկություններով:

Հրատարակվում է «Կոդոն»՝ Python-ի կոմպիլյատորը


Source: opennet.ru

Добавить комментарий