ප්රශස්තිකරණය පිළිබඳ අමතක වූ දෙයක් මෙහි තිබේ.
සී. ෆෝට්රාන් අභිබවා යාම පිළිබඳ දීර් debate විවාදයක් පැවතුනි. විකෘති විවාදය පසෙකට දැමීම: එකම කේතය සී සහ ෆෝට්රාන් හි ලියා ඇත (පරීක්ෂකයින් සිතූ පරිදි) සහ එකම දත්ත මත පදනම්ව කාර්ය සාධනය පරීක්ෂා කරන ලදී. ගැටළුව වන්නේ, මෙම භාෂාවන් එකිනෙකට වෙනස් වන අතර, සී විසින් දර්ශකයන්ට අන්වර්ථකරණය කිරීමට ඉඩ දෙන අතර, ෆෝට්රාන් එසේ නොකරයි.
එබැවින් කේත එක හා සමාන නොවීය, සී පරීක්ෂා කරන ලද ලිපිගොනු වල __ අවහිරතා නොතිබුණි, එය වෙනස්කම් ලබා දුන්නේය, ගොනු නැවත ලිවීමෙන් පසු එය සම්පාදකයාට දර්ශක ප්රශස්තිකරණය කළ හැකි බව පැවසීමට, ධාවන වේලාවන් සමාන වේ.
මෙහි ඇති කාරණය නම්, අලුතින් සාදන ලද භාෂාවෙන් සමහර ප්රශස්තිකරණ ක්රම පහසුය (හෝ නීතිමය වීමට පටන් ගනී).
x
දෙවනුව VM හට ධාවනය වන විට පීඩන පරීක්ෂණයක් සිදු කළ හැකි අතර එමඟින් පීඩන කේතයක් ගෙන එය ප්රශස්තිකරණය කිරීමට හෝ ධාවන වේලාවේදී එය පූර්ව ගණනය කිරීමට පවා හැකිය. කල්තියා සම්පාදනය කරන ලද සී වැඩසටහන මඟින් පීඩනය කොතැනද යන්න හෝ (බොහෝ විට) සාමාන්ය පවුලේ යන්ත්ර සඳහා ක්රියාත්මක කළ හැකි අනුවාදයන් තිබේ.
මෙම පරීක්ෂණයෙහි JS ද ඇත, V8 ට වඩා වේගවත් VM ඇත, සමහර පරීක්ෂණ වලදී එය C ට වඩා වේගයෙන් ක්රියා කරයි.
මම එය පරික්ෂා කර ඇති අතර, සී සම්පාදකයින් තුළ අද්විතීය ප්රශස්තිකරණ ක්රම තවමත් නොමැත.
සී සම්පාදකයාට එකවරම සම්පූර්ණ කේතය ස්ථිතික විශ්ලේෂණයක් කිරීමට සිදු වන අතර, ලබා දී ඇති වේදිකාව මතට ගොස් මතක පෙළගැස්වීමේ ගැටළු මඟහරවා ගත යුතුය.
වීඑම් විසින් කේතයේ කොටසක් ප්රශස්තිකරණය කළ එකලස් කිරීමකට පරිවර්තනය කර එය ක්රියාත්මක කරන්න.
ජූලියා ගැන - මා පරීක්ෂා කර බැලූ විට එය ක්රියාත්මක වන්නේ AST කේතයක් මත ය, උදාහරණයක් ලෙස GCC මෙම පියවර මඟ හැරියේ මෑතකදී එතැන් සිට යම් තොරතුරු ලබා ගැනීමට පටන් ගත් බැවිනි. මෙම ප්ලස් වෙනත් අවහිරතා සහ වීඑම් ශිල්පීය ක්රම ටිකක් පැහැදිලි කළ හැකිය.
උදාහරණය: අපි සරල ලූපයක් ගනිමු, එය විචල්යයන්ගෙන් ආරම්භක අවසානය දක්වා ගෙන විචල්යයන්හි කොටසක් ගණනය කිරීම් වලට පටවනු ලැබේ.
සී සම්පාදකයා රෙජිස්ටරයෙන් පැටවීමේ විචල්යයන් ජනනය කරයි.
නමුත් ක්රියාත්මක වන විට මෙම විචල්යයන් ක්රියාත්මක කිරීම හරහා නියතයන් ලෙස හැඳින්වේ.
එබැවින් රෙජිස්ටර වලින් විචල්යයන් පැටවීම වෙනුවට (සහ එය වෙනස් විය හැකි නිසා හැඹිලි සිදු නොකිරීම සහ ස්ථිතික විශ්ලේෂණයෙන් එය පැහැදිලි නැත) ඒවා නියතයන් ලෙස සලකනු ලබන අතර ඒවා නැමුණු, ප්රචාරණය වේ.