V ක්‍රමලේඛන භාෂාව විවෘත මූලාශ්‍රය

පරිවර්තනය කළා සඳහා විවෘත සම්පාදක කාණ්ඩයට භාෂාව V. V යනු ස්ථිතික ලෙස ටයිප් කරන ලද යන්ත්‍ර සම්පාදනය කරන ලද භාෂාවක් වන අතර එය සංවර්ධනය නඩත්තු කිරීමට පහසු කිරීම සහ සම්පාදනය කිරීමට ඉතා වේගවත් කිරීම කෙරෙහි අවධානය යොමු කරයි. සම්පාදක කේතය, පුස්තකාල සහ අදාළ මෙවලම් විවෘතයි MIT බලපත්‍රය යටතේ.

V හි වාක්‍ය ඛණ්ඩය Go ට බෙහෙවින් සමාන ය, Oberon, Rust සහ Swift වෙතින් සමහර ඉදිකිරීම් ණයට ගනී. භාෂාව හැකිතාක් සරල කර ඇති අතර, සංවර්ධකයාට අනුව, මූලික කරුණු ඉගෙන ගැනීමට මිනිත්තු 30 ක අධ්‍යයනයක් ප්‍රමාණවත් වේ. ලියකියවිලි. ඒ අතරම, භාෂාව තරමක් බලවත් වන අතර අනෙකුත් ක්‍රමලේඛන භාෂා භාවිතා කරන විට එම කාර්යයන් ඉටු කිරීමට භාවිතා කළ හැකිය (උදාහරණයක් ලෙස, පුස්තකාල 2D / 3D ග්‍රැෆික්ස්, GUIs සහ වෙබ් යෙදුම් නිර්මාණය කිරීම සඳහා තිබේ).

Go භාෂාවේ වාක්‍ය ඛණ්ඩයේ සරල බව, සම්පාදන වේගය, මෙහෙයුම් සමාන්තරකරණය කිරීමේ පහසුව, C/C++ කාර්ය සාධනය සමඟ කේත අතේ ගෙන යා හැකි සහ නඩත්තු කිරීමේ හැකියාව, රස්ට් වල ආරක්ෂාව සහ Zig සම්පාදන අදියරේදී යන්ත්‍ර කේතය ජනනය කිරීම. බාහිර පරායත්තතාවයකින් තොරව ක්‍රියා කළ හැකි, ගෝලීය විෂය පථය (ගෝලීය විචල්‍යයන්) ඉවත් කර කේතය "උණුසුම්" නැවත පූරණය කිරීමේ හැකියාව ලබා දිය හැකි සංයුක්ත සහ වේගවත් සම්පාදකයක් ලබා ගැනීමට මට අවශ්‍ය විය.

C++ හා සසඳන විට, නව භාෂාව සැලකිය යුතු ලෙස සරල ය, වේගවත් සම්පාදන වේගය (400 වාරයක් දක්වා) සපයයි, ආරක්ෂිත ක්‍රමලේඛන ශිල්පීය ක්‍රම භාවිතා කරයි, නිර්වචනය නොකළ හැසිරීම් සමඟ ගැටළු වලින් තොර වේ, සහ සමාන්තර මෙහෙයුම් සඳහා ගොඩනඟන ලද මෙවලම් සපයයි. Python හා සසඳන විට, V වේගවත්, සරල, ආරක්ෂිත සහ වඩා නඩත්තු කළ හැකි ය. Go හා සසඳන විට, V හට ගෝලීය විචල්‍ය නොමැත, ශුන්‍ය නැත, සියලු විචල්‍ය අගයන් සැමවිටම නිර්වචනය කළ යුතුය, සියලු වස්තූන් පෙරනිමියෙන් වෙනස් කළ නොහැක, එක් ආකාරයක පැවරුමකට පමණක් සහය දක්වයි (“a := 0”), සැලකිය යුතු ලෙස වඩා සංයුක්ත වේ ධාවන කාලය සහ එහි ප්‍රතිඵලයක් ලෙස ක්‍රියාත්මක කළ හැකි ගොනු වල ප්‍රමාණය, C වෙතින් සෘජු අතේ ගෙන යා හැකි හැකියාව, කසළ එකතු කරන්නෙකු නොමැති වීම, වේගවත් අනුක්‍රමිකකරණය, නූල් අන්තර් හුවමාරු කිරීමේ හැකියාව ("println('$foo: $bar.baz')").

fn ප්‍රධාන() {
ක්ෂේත්‍ර := ['ක්‍රීඩාව', 'වෙබ්', 'මෙවලම්', 'විද්‍යාව', 'පද්ධති', 'GUI', 'ජංගම'] a := 10
සත්‍ය නම් {
වෙත := 20
}
ප්‍රදේශ සඳහා {
println ('ආයුබෝවන්, $ප්‍රදේශ සංවර්ධකයින්!')
}
}

ව්යාපෘති විශේෂාංග:

  • සංයුක්ත සහ වේගවත් සම්පාදකය, සම්මත පුස්තකාලය සමඟ එක්ව 400 KB පමණ ගනී. යන්ත්‍ර කේත සෘජු උත්පාදනය සහ මොඩියුලරිටි හරහා ඉහළ සම්පාදන වේගයක් ලබා ගනී. සම්පාදන වේගය එක් CPU හරයක් මත තත්පරයට ආසන්න වශයෙන් කේත පේළි මිලියන 1.2 ක් වේ (ක්‍රියා කිරීමේදී V හට C භාවිතා කළ හැකි බව සටහන් වේ, එවිට වේගය තත්පරයට රේඛා 100 දක්වා පහත වැටේ). V භාෂාවෙන් ද ලියා ඇති සම්පාදකයේ ස්වයං-එකලස් කිරීම (Go හි විමර්ශන අනුවාදයක් ද ඇත), ආසන්න වශයෙන් තත්පර 0.4 ක් ගතවේ. වසර අවසානය වන විට, අතිරේක ප්‍රශස්තිකරණය පිළිබඳ වැඩ නිම කිරීමට අපේක්ෂා කරන අතර, එය සම්පාදක ගොඩනැගීමේ කාලය තත්පර 0.15 දක්වා අඩු කරනු ඇත. සංවර්ධකයා විසින් සිදු කරන ලද පරීක්ෂණ අනුව විනිශ්චය කිරීම, Go හි ස්වයං-එකලස් කිරීම සඳහා 512 MB තැටි ඉඩක් අවශ්‍ය වන අතර මිනිත්තු එකහමාරකින් ක්‍රියාත්මක වේ, Rust සඳහා 30 GB සහ විනාඩි 45 ක්, GCC - 8 GB සහ විනාඩි 50 ක්, Clang - 90 GB සහ විනාඩි 25,
    Swift - 70 GB සහ විනාඩි 90;

  • වැඩසටහන් බාහිර පරායත්තතාවයකින් තොරව ක්‍රියාත්මක කළ හැකි ගොනු බවට සම්පාදනය කෙරේ. එකලස් කිරීමෙන් පසු සරල http සේවාදායකයක ක්‍රියාත්මක කළ හැකි ගොනු ප්‍රමාණය 65 KB පමණි;
  • සම්පාදනය කරන ලද යෙදුම්වල කාර්ය සාධනය C වැඩසටහන් වල එකලස් කිරීමේ මට්ටමේ පවතී;
  • අමතර බරක් නොමැතිව C කේතය සමඟ බාධාවකින් තොරව අන්තර් ක්‍රියා කිරීමේ හැකියාව. C භාෂාවේ ශ්‍රිතයන් V භාෂාවේ ඇති කේතයෙන් හැඳින්විය හැකි අතර, V භාෂාවේ ඇති කේතය C සමඟ ගැළපෙන ඕනෑම භාෂාවකින් හැඳින්විය හැක;
  • C/C++ ව්‍යාපෘති V භාෂාවෙන් නිරූපණයකට පරිවර්තනය කිරීම සඳහා සහය දක්වයි. පරිවර්තනය සඳහා Clang වෙතින් විග්‍රහයක් භාවිත කෙරේ. C ප්‍රමිතියේ සියලුම විශේෂාංග තවමත් සහය නොදක්වයි, නමුත් පරිවර්තකයාගේ වර්තමාන හැකියාවන් දැනටමත් ප්‍රමාණවත් වේ පරිවර්තනය V ක්‍රීඩාව DOOM භාෂාවෙන්. C++ පරිවර්තකය තවමත් සංවර්ධනයේ මුල් අවධියේ පවතී;
  • ධාවන කාලයට සම්බන්ධ නොවී, ගොඩනඟන ලද අනුක්‍රමික සහාය;
  • මතකය වෙන් කිරීමේ මෙහෙයුම් අවම කිරීම;
  • ආරක්ෂාව සහතික කිරීම: NULL නැත, ගෝලීය විචල්‍යයන්, නිර්වචනය නොකළ අගයන් සහ විචල්‍ය නැවත අර්ථ දැක්වීම. බිල්ට් බෆරය ඉක්මවා පරීක්ෂා කිරීම. සාමාන්‍ය ශ්‍රිත සඳහා සහාය (සාමාන්‍ය). පෙරනිමියෙන් වෙනස් කළ නොහැකි වස්තූන් සහ ව්යුහයන්;
  • "උණුසුම්" කේතය නැවත පූරණය කිරීමේ හැකියාව (නැවත සම්පාදනය නොකර පියාසර කිරීමේදී කේතයේ වෙනස්කම් පිළිබිඹු කිරීම);
  • බහු නූල් කිරීම සහතික කිරීම සඳහා මෙවලම්. Go භාෂාවේ මෙන්, "run foo()" වැනි ඉදිකිරීම් නව ක්‍රියාත්මක කිරීමේ නූල් ආරම්භ කිරීමට භාවිතා කරයි ("go foo()" ට සමාන). අනාගතයේදී, goroutines සඳහා සහය සහ නූල් උපලේඛනය සැලසුම් කර ඇත;
  • Windows, macOS, Linux, *BSD මෙහෙයුම් පද්ධති සඳහා සහය. වසර අවසානය වන විට Android සහ iOS සඳහා සහය එක් කිරීමට සැලසුම් කර ඇත;
  • කසළ එකතු කරන්නෙකු භාවිතා නොකර සම්පාදනය කරන වේලාවේදී මතක කළමනාකරණය (රස්ට් මෙන්);
  • විදැහුම්කරණය සඳහා GDI+/Cocoa සහ OpenGL භාවිතා කරමින් චිත්‍රක ප්‍රතිදානය සඳහා බහු-වේදිකා මෙවලම් කට්ටලයක් තිබීම (DirectX, Vulkan සහ Metal API සඳහා සහය සැලසුම් කර ඇත). ත්‍රිමාණ වස්තු, ඇටසැකිලි සජීවිකරණය සහ කැමරා පාලනය සමඟ වැඩ කිරීම සඳහා මෙවලම් තිබේ;
  • එක් එක් මෙහෙයුම් පද්ධතියට ආවේණික නිර්මාණ මූලද්‍රව්‍ය සමඟ චිත්‍රක අතුරුමුහුණත් ජනනය කිරීම සඳහා පුස්තකාලයක් තිබීම. වින්ඩෝස් WinAPI/GDI+ භාවිතා කරයි, macOS Cocoa භාවිතා කරයි, සහ Linux තමන්ගේම විජට් කට්ටලයක් භාවිතා කරයි. පුස්තකාලය දැනටමත් සංවර්ධනය සඳහා භාවිතා කර ඇත වෝල්ට් - Slack, Skype, Gmail, Twitter සහ Facebook සඳහා සේවාදායකයා;

    සැලසුම වන්නේ ඩෙල්ෆි වැනි අතුරුමුහුණත් නිර්මාණ යෙදුමක් නිර්මාණය කිරීම, SwiftUI සහ React Native ට සමාන ප්‍රකාශන API සැපයීම සහ iOS සහ Android සඳහා ජංගම යෙදුම් නිර්මාණය කිරීම සඳහා සහාය ලබා දීමයි;

    V ක්‍රමලේඛන භාෂාව විවෘත මූලාශ්‍රය

  • ව්‍යාපෘති සංවර්ධකයින් සඳහා වෙබ් අඩවියක්, සංසදයක් සහ බ්ලොගයක් නිර්මාණය කිරීමට භාවිතා කරන බිල්ට් වෙබ් රාමුවක් තිබීම. එක් එක් ඉල්ලීම මත ඒවා සැකසීමෙන් තොරව, HTML සැකිලි පූර්ව සම්පාදනය සඳහා සහය දක්වයි;
  • හරස් සම්පාදන සහාය. වින්ඩෝස් සඳහා ක්‍රියාත්මක කළ හැකි ගොනුව තැනීමට, “v -os windows” ධාවනය කරන්න, සහ Linux සඳහා - “v -os linux” (macOS සඳහා හරස් සම්පාදන සහාය පසුව බලාපොරොත්තු වේ). හරස් සම්පාදනය චිත්‍රක යෙදුම් සඳහා ද ක්‍රියා කරයි;
  • ගොඩනඟන ලද පරායත්ත කළමනාකරු, පැකේජ කළමනාකරු සහ ගොඩනැගීමේ මෙවලම්. වැඩසටහන ගොඩනැගීම සඳහා, නිෂ්පාදනය හෝ බාහිර උපයෝගිතා භාවිතා නොකර “v.” ධාවනය කරන්න. අතිරේක පුස්තකාල ස්ථාපනය කිරීම සඳහා, ධාවනය කරන්න, උදාහරණයක් ලෙස, "v get sqlite";
  • සංස්කාරකවරුන් තුළ V භාෂාවෙන් සංවර්ධනය සඳහා ප්ලගීන තිබීම VS කේතය и විම්.

සංවර්ධනය අවබෝධ විය සමඟ ප්රජාව සංශයවාදය, ප්‍රකාශිත කේතයෙන් පෙන්නුම් කළේ සියලුම ප්‍රකාශිත හැකියාවන් තවමත් ක්‍රියාත්මක කර නොමැති බවත් සියලු සැලසුම් ක්‍රියාත්මක කිරීම සඳහා ඉතා විශාල වැඩ ප්‍රමාණයක් අවශ්‍ය බවත්ය.
මීට අමතරව, මුලින් ගබඩාව තිබුණා තබා ඇත එකලස් කිරීම සහ ක්‍රියාත්මක කිරීමේදී ගැටළු ඇති බිඳුණු කේතය. කතුවරයා ඔවුන් දැකීමට පටන් ගන්නා වේදිකාවට තවමත් පැමිණ නැති බව උපකල්පනය කෙරේ පැරේටෝගේ නීතිය, ඒ අනුව උත්සාහයෙන් 20%ක් ප්‍රතිඵලයෙන් 80%ක් නිපදවන අතර ඉතිරි 80% උත්සාහයෙන් ප්‍රතිඵලයෙන් 20%ක් පමණක් නිපදවයි.

මේ අතර, Project V හි දෝෂ ලුහුබැඳීම පෝස්ට් 10 ක් පමණ ඉවත් කර ඇත නිරූපණය අඩු ගුණාත්මක කේතය, උදාහරණයක් ලෙස, C-ඇතුළු කිරීම් භාවිතය සහ os.system ("rm -rf $path") ඇමතුම හරහා rm විධානයේ බහලුම මකා දැමීම සඳහා ශ්‍රිත පුස්තකාලයේ භාවිතා කිරීම පෙන්නුම් කරයි. ව්යාපෘතියේ කර්තෘ ප්රකාශ කලේයඔහු පණිවිඩ මකා දැමූ බව, ප්රකාශයට පත් කරන ලදි ට්රොල් (විවේචනයේ වලංගුභාවය තහවුරු කරන වෙනස්කම් සහිතව, නැවතිලා в ඉතිහාසය සංස්කරණය කරන්න).

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

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