Inlinec - በ Python ስክሪፕቶች ውስጥ C ኮድን ለመጠቀም አዲስ መንገድ

ፕሮጀክት inlinec የ C ኮድን ወደ Python ስክሪፕቶች በመስመር ውስጥ ለማዋሃድ አዲስ ዘዴ ቀርቧል። የ C ተግባራት በቀጥታ በተመሳሳዩ የፓይዘን ኮድ ፋይል ውስጥ ይገለፃሉ፣ በ"@inlinec" ማስጌጫ ይደምቃል። የማጠቃለያው ስክሪፕት በፓይዘን አስተርጓሚ እንደ ተሰራ እና በፓይዘን ውስጥ የቀረበውን ዘዴ በመጠቀም ይተነተናል ኮዴኮች, ይህም በአስተርጓሚው ከመተንተኑ በፊት ስክሪፕቱን ለመቀየር ተንታኝን ማገናኘት ያስችላል (እንደ ደንቡ የኮዴክስ ሞጁል ለግልጽ ጽሑፍ ጽሑፍ መገልበጥ ጥቅም ላይ ይውላል፣ ነገር ግን የስክሪፕቱን ይዘቶች በዘፈቀደ ለመለወጥ ያስችልዎታል)።

ተንታኙ እንደ ሞጁል ተያይዟል ("ከኢንላይን ኢምፖርት ኢንሊንክ") የመጀመሪያ ሂደትን የሚያከናውን እና በበረራ ላይ የ C ተግባራትን ትርጓሜዎች @inlinec ማብራሪያዎችን በመጠቀም ወደ ctypes bindings ይተረጉመዋል እና የ C ተግባርን አካል በ ለእነዚህ ማሰሪያዎች ጥሪ. ከእንደዚህ ዓይነት ለውጥ በኋላ የፓይዘን አስተርጓሚው ትክክለኛውን የተለወጠውን የስክሪፕት ጽሑፍ ይቀበላል ፣ በዚህ ውስጥ የ C ተግባራትን በመጠቀም ይባላሉ ctypes. በፕሮጀክቱ ውስጥ ተመሳሳይ ዘዴም ጥቅም ላይ ይውላል Pyxl4, ይህም HTML እና Python ኮድ በአንድ ፋይል ውስጥ እንዲቀላቀሉ ያስችልዎታል.

# ኮድ ማድረግ: inlinec
ከመስመር አስመጪ inlinec

@inlinec
የመከላከያ ሙከራ()
#ያካትቱ
ባዶ ሙከራ() {
printf ("ሄሎ, ዓለም");
}

ልማቱ እስካሁን ድረስ እንደ የሙከራ ፕሮቶታይፕ ቀርቧል፣ እሱም እንደ ድክመቶች ያሉ ድክመቶችን የሚያካትት ጠቋሚዎችን ለማለፍ (ከሕብረቁምፊዎች በስተቀር) ወደ ተግባሩ ድጋፍ አለመኖር ፣ የመሮጥ አስፈላጊነት።
“gcc -E” ለኮድ ቅድመ ዝግጅት፣ መካከለኛ * .so፣ *.o እና *.c ፋይሎችን አሁን ባለው ማውጫ ውስጥ በማስቀመጥ፣ የተለወጠውን እትም አለመሸጎጥ እና አላስፈላጊ የመተንተን ደረጃዎችን (በእያንዳንዱ ጊዜ ረጅም ጊዜ ይዘገያል)።

ምንጭ: opennet.ru

አስተያየት ያክሉ