Inlinec - පයිතන් ස්ක්‍රිප්ට් වල C කේතය භාවිතා කිරීමට නව ක්‍රමයක්

ව්යාපෘතිය inlinec C කේතය පයිතන් ස්ක්‍රිප්ට් වලට පේළිගත ඒකාබද්ධ කිරීම සඳහා නව ක්‍රමයක් යෝජනා කර ඇත. C ශ්‍රිතයන් "@inlinec" decorator මගින් උද්දීපනය කරන ලද එකම Python කේත ගොනුව තුළ සෘජුවම අර්ථ දක්වා ඇත. සාරාංශ පිටපත පයිතන් පරිවර්තකය විසින් ක්‍රියාත්මක කර ඇති අතර පයිතන් හි සපයා ඇති යාන්ත්‍රණය භාවිතයෙන් විග්‍රහ කෙරේ. කෝඩෙක්ස්, එය පරිවර්තකයා විසින් විග්‍රහ කිරීමට පෙර විග්‍රහය පරිවර්තනය කිරීම සඳහා විග්‍රහයක් සම්බන්ධ කිරීමට හැකි වේ (නීතියක් ලෙස, කෝඩෙක්ස් මොඩියුලය විනිවිද පෙනෙන පෙළ ට්‍රාන්ස්කෝඩිං සඳහා භාවිතා කරයි, නමුත් එය ඔබට අත්තනෝමතික ලෙස ස්ක්‍රිප්ටයේ අන්තර්ගතය පරිවර්තනය කිරීමට ඉඩ සලසයි).

විග්‍රහකය මොඩියුලයක් ලෙස සම්බන්ධ කර ඇත ("ඉන්ලයින් ආනයනය ඉන්ලයින්"), එය මූලික සැකසුම් සිදු කරන අතර පියාසර කරන විට @inlinec විවරණ භාවිතයෙන් උද්දීපනය කරන ලද C ශ්‍රිතවල නිර්වචන ctypes බන්ධන බවට පරිවර්තනය කර C ශ්‍රිතයේ ශරීරය ප්‍රතිස්ථාපනය කරයි. මෙම බැඳීම් සඳහා ඇමතුමක්. එවැනි පරිවර්තනයකින් පසුව, පයිතන් පරිවර්තකයාට ස්ක්‍රිප්ටයේ නිවැරදි පරිවර්තනය කරන ලද මූලාශ්‍ර පාඨය ලැබේ, එහි C ශ්‍රිත භාවිතා කර ඇත. ctypes. ව්යාපෘතියේ දී ද සමාන ක්රමයක් භාවිතා වේ Pyxl4, එය ඔබට HTML සහ Python කේතය එක් ගොනුවකට මිශ්‍ර කිරීමට ඉඩ සලසයි.

# කේතීකරණය: inlinec
inlinec ආනයනය inlinec වෙතින්

@inlinec
def test ():
#ඇතුළත් කරන්න
අවලංගු පරීක්ෂණය () {
printf ("හෙලෝ, ලෝකය");
}

සංවර්ධනය මෙතෙක් ඉදිරිපත් කර ඇත්තේ පර්යේෂණාත්මක මූලාකෘතියක් ලෙස වන අතර, ශ්‍රිතයට පොයින්ටර් (නූල් හැර) පසුකිරීමේ සහය නොමැතිකම, ධාවනය කිරීමේ අවශ්‍යතාවය වැනි අඩුපාඩු අඩංගු වේ.
"gcc -E" කේත පෙර සැකසුම් සඳහා, වත්මන් නාමාවලියෙහි අතරමැදි *.so, *.o සහ *.c ගොනු සුරැකීම, පරිවර්තනය කළ අනුවාදය හැඹිලිගත නොකිරීම සහ අනවශ්‍ය විග්‍රහ කිරීමේ අදියරයන් සිදු කිරීම (එය ක්‍රියාත්මක වන සෑම අවස්ථාවකම දිගු ප්‍රමාදයන්).

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න