ட்ரூ டெவால்ட் ஹரே சிஸ்டம் புரோகிராமிங் மொழியை அறிமுகப்படுத்தினார்

ஸ்வே பயனர் சூழல், ஏர்க் மின்னஞ்சல் கிளையன்ட் மற்றும் சோர்ஸ்ஹட் கூட்டு மேம்பாட்டு தளத்தின் ஆசிரியரான ட்ரூ டெவால்ட், ஹேர் நிரலாக்க மொழியை வழங்கினார், இதை அவரும் அவரது குழுவும் கடந்த இரண்டரை ஆண்டுகளாக உருவாக்கி வருகின்றனர். ஹேர் ஒரு சிஸ்டம்ஸ் நிரலாக்க மொழியாகக் கருதப்படுகிறது, இது C ஐப் போன்றது ஆனால் C ஐ விட எளிமையானது. ஹேரின் முக்கிய வடிவமைப்புக் கொள்கைகளில் எளிமைப்படுத்தல் மற்றும் புரோகிராமரின் செயல்களில் முழுமையான நம்பிக்கை (எந்தவொரு தன்னிச்சையான அல்லது மறைமுகமான நடத்தை இல்லாமல், குறிப்பிடப்பட்டதைச் சரியாகச் செய்தல்) ஆகியவை அடங்கும், பொதுவான பிழைகள் மற்றும் சிக்கல்களைக் கண்டறிவதற்கான துணை கருவிகளை வழங்குவதன் மூலம்.

தொகுப்பி மற்றும் கருவித்தொகுப்பின் மூலக் குறியீடு GPLv3 உரிமத்தின் கீழும், தரநிலை நூலகக் குறியீடு MPL (மொஸில்லா பொது உரிமம்) உரிமத்தின் கீழும் உரிமம் பெற்றுள்ளன. அறிவிக்கப்பட்ட முதல் பொது வெளியீட்டில் இயக்க முறைமைகளுக்கான ஆதரவும் அடங்கும். Linux மேலும் x86_64, aarch64, மற்றும் riscv64 தளங்களில் FreeBSD, அத்துடன் பேர்மட்டல் செயல்பாட்டிற்கான ஒரு தனித்த செயலாக்கமும் உள்ளது. NetBSD, OpenBSD, Illumos, Haiku, மற்றும் Plan 9 இயக்க முறைமைகள் மற்றும் ppc64le, i686, மற்றும் arm32 தளங்களுக்கான ஆதரவும் திட்டங்களில் அடங்கும்.

இந்த மொழி கையேடு நினைவக மேலாண்மை மற்றும் ஒரு நிலையான வகை அமைப்பைப் பயன்படுத்துகிறது, ஒவ்வொரு மாறிக்கும் ஒரு குறிப்பிட்ட வகையை வெளிப்படையாக ஒதுக்க வேண்டும். பயன்பாட்டு செயலாக்கத்திற்கு குறைந்தபட்ச இயக்க நேரம் ஒதுக்கப்படுகிறது. அதிகபட்ச செயல்திறன் மற்றும் முழு செயல்பாட்டுக் கட்டுப்பாடு தேவைப்படும் இயக்க முறைமைகள், தொகுப்பிகள், நெட்வொர்க் பயன்பாடுகள் மற்றும் கணினி பயன்பாடுகளை உருவாக்குதல் போன்ற குறைந்த-நிலை பணிகளுக்கு மொழி உகந்ததாக உள்ளது.

அடிப்படை இயக்க முறைமை இடைமுகங்கள், வழக்கமான வழிமுறைகள் மற்றும் நெறிமுறைகள் மற்றும் வடிவங்களின் செயல்படுத்தல்களுக்கான அணுகலை வழங்கும் ஒரு நிலையான செயல்பாடு நூலகம் டெவலப்பர்களுக்காகத் தயாரிக்கப்பட்டுள்ளது. உள்ளீடு/வெளியீடு, கோப்பு கையாளுதல், வழக்கமான வெளிப்பாடுகள், குறியாக்கம், நெட்வொர்க்கிங், நேரம் மற்றும் தேதி செயல்பாடுகள், நிலையான யூனிக்ஸ் முதன்மையானவற்றுக்கான அணுகல் (கணிப்பு, fnmatch மற்றும் glob போன்றவை), பாகுபடுத்துதல் மற்றும் வகை சரிபார்ப்பு போன்ற பகுதிகளை நூலகம் உள்ளடக்கியது. OpenGL, SDL2 மற்றும் libui திறன்களை அணுகுவதற்கு தனி பிணைப்புகள் வழங்கப்பட்டுள்ளன.

ஹேர் மொழியில் எழுதப்பட்ட திட்டங்களின் எடுத்துக்காட்டுகளில் ஹீலியோஸ் மைக்ரோகர்னல், ஹிமிட்சு கடவுச்சொல் மேலாளர், ரேட்ரேசிங் அமைப்பு, பாக்ஸ் குறியாக்க நிரல், btqd பிட்டோரண்ட் டீமான், ஷெட்யூல்டு (ஒரு க்ரான் போன்ற அமைப்பு), டூத்பிரஷ் (ஒரு கிளையன்ட் மற்றும் சர்வர் (ஃபிங்கர் புரோட்டோகாலுக்காக). எதிர்காலத் திட்டங்களில், மொழி விவரக்குறிப்பு மற்றும் தரநிலை நூலகத்தை நிலைப்படுத்துதல், விடுபட்ட இயங்குதளங்கள் மற்றும் கட்டமைப்புகளுக்கான ஆதரவைச் செயல்படுத்துதல், மற்றும் TLS 1.2 மற்றும் 1.3-ஐ ஆதரிக்கும் நூலகச் செயல்பாடுகளைச் சேர்த்தல் ஆகியவை அடங்கும்.

ஹேரில் உள்ள எடுத்துக்காட்டு குறியீடு: use crypto::sha256; use encoding::hex; use fmt; use hash; useio; use os; export fn main() void = { const hash = sha256::sha256(); const file = os::open("main.ha")!; defer io::close(file); io::copy(&hash, file)!; let sum: [sha256::SIZE]u8 = [0...]; hash::sum(&hash, sum); hex::encode(os::stdout, sum)!; fmt::println()!; const வாழ்த்துக்கள் = [ “வணக்கம், உலகம்!”, “ஹலோ முண்டோ!”, “உண்மையில் நான்!”, “வணக்கம், உலகம்!”, “こんにちは世界!”, ]; (let i = 0z; i < len(வாழ்த்துக்கள்); i += 1) { fmt::println(வாழ்த்துக்கள்[i])!; }; let x: *int = alloc(42); fmt::printfln(" x: {}", x)!; fmt::printfln("*x: {}", *x)!; free(x); const கோப்பு = os::open(os::args[1])!; defer io::close(file)!; let buffer: *[65535]u8 = alloc([0...]); defer free(buffer); const n = io::read(file, buffer)! as size; io::write(os::stdout, buffer[..n])!; }; fn sort(items: []int) void = { ... }; @test fn sort() void = { let items = [5, 4, 3, 2, 1]; sort(items); for (let i = 1z; i < len(items); i += 1) { assert(items[i - 1] <= items[i], “list is unsorted”); }; };

ஆதாரம்: opennet.ru

DDoS பாதுகாப்பு, VPS VDS சர்வர்கள் கொண்ட தளங்களுக்கு நம்பகமான ஹோஸ்டிங் வாங்கவும் 🔥 DDoS பாதுகாப்புடன் கூடிய நம்பகமான இணையதள ஹோஸ்டிங், VPS, VDS சர்வர்களை வாங்குங்கள் | ProHoster