ZuriHac: செயல்பாட்டு நிரலாக்க பயிற்சி

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

ZuriHac: செயல்பாட்டு நிரலாக்க பயிற்சி

எங்களுக்கு பற்றி

செயின்ட் பீட்டர்ஸ்பர்க்: வாசிலி அல்ஃபெரோவ் மற்றும் எலிசவெட்டா வாசிலென்கோ, தேசிய ஆராய்ச்சி பல்கலைக்கழக உயர்நிலைப் பொருளாதாரப் பள்ளியின் “பயன்பாட்டு கணிதம் மற்றும் தகவல்” திட்டத்தின் 3ஆம் ஆண்டு மாணவர்களால் இந்தக் கட்டுரை தயாரிக்கப்பட்டது. எங்கள் இருவருக்கும் செயல்பாட்டு நிரலாக்கத்திற்கான ஆர்வம் பல்கலைக்கழகத்தின் 2 ஆம் ஆண்டில் டி.என். மோஸ்க்வின் தொடர்ச்சியான விரிவுரைகளில் தொடங்கியது. வாசிலி தற்போது கூகுள் சம்மர் ஆஃப் கோட் திட்டத்தில் பங்கேற்கிறார், அதில் அவர் திட்டக் குழுவின் வழிகாட்டுதலின் கீழ் ஹாஸ்கெல்லில் இயற்கணித வரைபடங்களை செயல்படுத்தி வருகிறார். பாசி. எலிசவெட்டா வாங்கிய செயல்பாட்டு நிரலாக்க திறன்களை பாடநெறி வேலைகளில் பயன்படுத்தினார், இது ஒருங்கிணைப்பு-எதிர்ப்பு அல்காரிதத்தை செயல்படுத்துவதற்கு அர்ப்பணித்துள்ளது.

நிகழ்வு வடிவம்

இலக்கு பார்வையாளர்கள் திறந்த மூல திட்டங்களின் உரிமையாளர்கள், அவற்றின் வளர்ச்சியில் பங்கேற்க விரும்பும் புரோகிராமர்கள், செயல்பாட்டு நிரலாக்க ஆராய்ச்சியாளர்கள் மற்றும் ஹாஸ்கெல் மீது ஆர்வமுள்ளவர்கள். இந்த ஆண்டு, உலகம் முழுவதிலுமிருந்து ஐம்பதுக்கும் மேற்பட்ட ஓப்பன் சோர்ஸ் ஹாஸ்கெல் திட்டங்களின் டெவலப்பர்கள், தங்களுடைய தயாரிப்புகளைப் பற்றி பேசவும், புதிய நபர்களை அவர்களின் மேம்பாட்டில் ஆர்வமூட்டவும் - HSR Hochschule für Technik Rapperswil - இல் கூடினர்.

ZuriHac: செயல்பாட்டு நிரலாக்க பயிற்சி

ட்விட்டரில் இருந்து புகைப்படம் ZuriHac

திட்டம் மிகவும் எளிமையானது: உங்கள் திட்டத்தைப் பற்றிய சில முன்மொழிவுகளை நீங்கள் முன்கூட்டியே எழுத வேண்டும் மற்றும் அவற்றை அமைப்பாளர்களுக்கு அனுப்ப வேண்டும், அவர்கள் உங்கள் திட்டத்தைப் பற்றிய தகவல்களை நிகழ்வு பக்கத்தில் இடுகையிடுவார்கள். கூடுதலாக, முதல் நாளில், திட்டங்களின் ஆசிரியர்கள் தாங்கள் என்ன செய்கிறார்கள், என்ன செய்ய வேண்டும் என்பதை மேடையில் இருந்து மிக சுருக்கமாகச் சொல்ல முப்பது வினாடிகள் உள்ளன. பின்னர் ஆர்வமுள்ளவர்கள் ஆசிரியர்களைத் தேடி, பணிகளைப் பற்றி விரிவாகக் கேட்கிறார்கள்.

எங்களிடம் இன்னும் திறந்த திட்டங்கள் இல்லை, ஆனால் ஏற்கனவே உள்ள திட்டங்களுக்கு நாங்கள் பங்களிக்க விரும்புகிறோம், எனவே நாங்கள் வழக்கமான பங்கேற்பாளர்களாக பதிவு செய்துள்ளோம். மூன்று நாட்களில், டெவலப்பர்களின் இரண்டு குழுக்களுடன் நாங்கள் பணியாற்றினோம். குறியீடு மற்றும் நேரடி தகவல்தொடர்பு பற்றிய கூட்டு ஆய்வு, திட்ட ஆசிரியர்களுக்கும் பங்களிப்பாளர்களுக்கும் இடையிலான தொடர்புகளை மிகவும் பயனுள்ளதாக்குகிறது - ZuriHac இல் எங்களுக்கு புதிய பகுதிகளைப் புரிந்து கொள்ள முடிந்தது மற்றும் இரண்டு முற்றிலும் மாறுபட்ட குழுக்களுக்கு உதவ முடிந்தது, ஒவ்வொன்றிலும் ஒரு பணியை முடித்தது. திட்டங்களின்.

மதிப்புமிக்க பயிற்சிக்கு கூடுதலாக, பல விரிவுரைகள் மற்றும் முதன்மை வகுப்புகளும் ZuriHac இல் வழங்கப்பட்டன. நாம் குறிப்பாக இரண்டு விரிவுரைகளை நினைவில் கொள்கிறோம். அவற்றில் முதலில், நியூகேஸில் பல்கலைக்கழகத்தைச் சேர்ந்த ஆண்ட்ரி மோகோவ் தேர்ந்தெடுக்கப்பட்ட பயன்பாட்டு செயல்பாடுகளைப் பற்றி பேசினார் - பயன்பாட்டு செயல்பாடுகள் மற்றும் மோனாட்களுக்கு இடையில் இடைநிலையாக மாற வேண்டிய வகைகளின் வகை. மற்றொரு விரிவுரையில், ஹாஸ்கலின் நிறுவனர்களில் ஒருவரான சைமன் பெய்டன் ஜோன்ஸ், GHC கம்பைலரில் வகை அனுமானம் எவ்வாறு செயல்படுகிறது என்பதைப் பற்றி பேசினார்.

ZuriHac: செயல்பாட்டு நிரலாக்க பயிற்சி

சைமன் பெய்டன் ஜோன்ஸ் விரிவுரை. ட்விட்டரில் இருந்து புகைப்படம் ZuriHac

ஹேக்கத்தானின் போது நடத்தப்படும் முதன்மை வகுப்புகள் பங்கேற்பாளர்களின் பயிற்சியின் அளவைப் பொறுத்து மூன்று பிரிவுகளாகப் பிரிக்கப்பட்டன. திட்டங்களின் வளர்ச்சியில் இணைந்த பங்கேற்பாளர்களுக்கு வழங்கப்படும் பணிகளும் சிரமமான நிலையுடன் குறிக்கப்பட்டன. செயல்பாட்டு புரோகிராமர்களின் சிறிய ஆனால் நட்பு சமூகம் புதியவர்களை மகிழ்ச்சியுடன் தனது வரிசையில் வரவேற்கிறது. ஆண்ட்ரே மோகோவ் மற்றும் சைமன் பெய்டன் ஜோன்ஸ் ஆகியோரின் விரிவுரைகளைப் புரிந்து கொள்ள, பல்கலைக்கழகத்தில் நாங்கள் எடுத்த செயல்பாட்டு நிரலாக்கப் படிப்பு மிகவும் பயனுள்ளதாக இருந்தது.

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

இப்போது நாம் பங்கேற்ற வளர்ச்சியில் உள்ள திட்டங்களைப் பற்றி பேசுவோம்.

Pandoc

Pandoc உரை ஆவணங்களின் உலகளாவிய மாற்றி, உண்மையில், எந்த வடிவத்தில் இருந்தும். எடுத்துக்காட்டாக, docx இலிருந்து pdf வரை அல்லது Markdown இலிருந்து MediaWiki வரை. அதன் ஆசிரியர், ஜான் மேக்ஃபார்லேன், பெர்க்லியில் உள்ள கலிபோர்னியா பல்கலைக்கழகத்தில் தத்துவப் பேராசிரியராக உள்ளார். பொதுவாக, பாண்டோக் மிகவும் பிரபலமானது, மேலும் எங்கள் நண்பர்கள் சிலர் பாண்டோக் ஹாஸ்கெல்லில் எழுதப்பட்டதை அறிந்ததும் ஆச்சரியப்பட்டனர்.

ZuriHac: செயல்பாட்டு நிரலாக்க பயிற்சி

Pandoc ஆல் ஆதரிக்கப்படும் ஆவண வடிவங்களின் பட்டியல். தளத்தில் ஒரு முழு வரைபடமும் உள்ளது, ஆனால் இந்த படம் கட்டுரையில் பொருந்தாது.

நிச்சயமாக, Pandoc ஒவ்வொரு ஜோடி வடிவங்களுக்கும் நேரடி மாற்றத்தை வழங்காது. இத்தகைய பல்வேறு வகையான மாற்றங்களை ஆதரிக்க, ஒரு நிலையான கட்டடக்கலை தீர்வு பயன்படுத்தப்படுகிறது: முதலில், முழு ஆவணமும் ஒரு சிறப்பு உள் இடைநிலை பிரதிநிதித்துவமாக மொழிபெயர்க்கப்படுகிறது, பின்னர் இந்த உள் பிரதிநிதித்துவத்திலிருந்து வேறு வடிவத்தில் ஒரு ஆவணம் உருவாக்கப்படுகிறது. டெவலப்பர்கள் அக பிரதிநிதித்துவத்தை "AST" என்று அழைக்கிறார்கள், இது சுருக்க தொடரியல் மரத்தை குறிக்கிறது, அல்லது சுருக்க தொடரியல் மரம். நீங்கள் இடைநிலைப் பிரதிநிதித்துவத்தை மிகவும் எளிமையாகப் பார்க்கலாம்: நீங்கள் செய்ய வேண்டியது வெளியீட்டு வடிவமைப்பை "சொந்தம்" என அமைக்க வேண்டும்.

$ cat example.html
<h1>Hello, World!</h1>

$ pandoc -f html -t native example.html
[Header 1 ("hello-world",[],[]) [Str "Hello,",Space,Str "World!"]]

ஹாஸ்கெல்லுடன் சிறிதளவாவது பணியாற்றிய வாசகர்கள், இந்த சிறிய உதாரணத்திலிருந்து பாண்டோக் ஹாஸ்கெல்லில் எழுதப்பட்டிருப்பதை ஏற்கனவே யூகிக்க முடியும்: இந்தக் கட்டளையின் வெளியீடு என்பது பாண்டோக்கின் உள் கட்டமைப்புகளின் சரம் பிரதிநிதித்துவம் ஆகும், இது வழக்கமாக எவ்வாறு செய்யப்படுகிறது என்பதைப் போன்றது. ஹாஸ்கெல்லில், எடுத்துக்காட்டாக, நிலையான நூலகத்தில்.

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

நீங்கள் பார்க்க முடியும் என, உள் பிரதிநிதித்துவம் HTML இலிருந்து மிகவும் வேறுபட்டதல்ல. ஒவ்வொரு உள் முனையும் அதன் சந்ததியினரின் வடிவமைப்பைப் பற்றிய சில தகவல்களை வழங்கும் ஒரு மரமாகும், மேலும் இலைகளில் ஆவணத்தின் உண்மையான உள்ளடக்கங்கள் உள்ளன.

செயல்படுத்தல் நிலைக்குச் சென்றால், முழு ஆவணத்திற்கான தரவு வகை பின்வருமாறு வரையறுக்கப்படுகிறது:

data Pandoc = Pandoc Meta [Block]

இங்கே பிளாக் என்பது மேலே குறிப்பிட்டுள்ள உள் முனைகளாகும், மேலும் Meta என்பது தலைப்பு, உருவாக்கிய தேதி, ஆசிரியர்கள் போன்ற ஆவணத்தைப் பற்றிய மெட்டெய்ன்ஃபர்மேஷன் ஆகும் - இது வெவ்வேறு வடிவங்களுக்கு வேறுபட்டது, மேலும் வடிவமைப்பிலிருந்து மொழிபெயர்க்கும்போது அத்தகைய தகவலைப் பாதுகாக்க Pandoc முயற்சிக்கிறது. வடிவம்.

பிளாக் வகையின் கிட்டத்தட்ட அனைத்து கட்டமைப்பாளர்களும் - எடுத்துக்காட்டாக, தலைப்பு அல்லது பாரா (பத்தி) - பண்புக்கூறுகள் மற்றும் கீழ்-நிலை முனைகளின் பட்டியலை வாதங்களாக எடுத்துக் கொள்ளுங்கள் - இன்லைன், ஒரு விதியாக. எடுத்துக்காட்டாக, Space அல்லது Str என்பது இன்லைன் வகையின் கட்டமைப்பாளர்கள், மேலும் HTML குறிச்சொல் அதன் சொந்த சிறப்பு இன்லைனாக மாறும். இந்த வகைகளின் முழுமையான வரையறையை வழங்குவதில் எந்த அர்த்தமும் இல்லை, ஆனால் அதை இங்கே காணலாம் என்பதை நினைவில் கொள்க இங்கே.

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

LaTeX இலிருந்து HTML க்கு மாற்றும் போது, ​​முதலில் LaTeXReader எனப்படும் ஒரு சிறப்பு தொகுதி உள்ளீட்டு ஆவணத்தை AST ஆக மாற்றுகிறது, பின்னர் HTMLWriter எனப்படும் மற்றொரு தொகுதி AST ஐ HTML ஆக மாற்றுகிறது. இந்த கட்டிடக்கலைக்கு நன்றி, இருபடி எண்ணிக்கையிலான மாற்றங்களை எழுத வேண்டிய அவசியமில்லை - ஒவ்வொரு புதிய வடிவமைப்பிற்கும் ரீடர் மற்றும் ரைட்டர் என எழுதினால் போதும், மேலும் சாத்தியமான அனைத்து ஜோடி மாற்றங்களும் தானாகவே ஆதரிக்கப்படும்.

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

ஹாஸ்கெல் மொழி தேர்ந்தெடுக்கப்பட்டது, ஏனெனில் செயல்பாட்டு நிரலாக்கத்தின் மீது ஆசிரியர்களின் மிகுந்த அன்பினால் மட்டுமல்ல. ஹாஸ்கெல் அதன் விரிவான உரை செயலாக்க திறன்களுக்காக அறியப்படுகிறது. ஒரு உதாரணம் நூலகம் பார்செக் தன்னிச்சையான பாகுபடுத்திகளை எழுத, செயல்பாட்டு நிரலாக்கத்தின் - monoids, monads, applicative மற்றும் மாற்று செயல்பாடுகளின் கருத்துகளை தீவிரமாகப் பயன்படுத்தும் நூலகம் ஆகும். பார்செக்கின் முழு சக்தியையும் இதில் காணலாம் உதாரணமாக HaskellWiki இலிருந்து, ஒரு எளிய கட்டாய நிரலாக்க மொழியின் முழுமையான பாகுபடுத்தி பாகுபடுத்தப்படுகிறது. நிச்சயமாக, பார்செக் பாண்டோக்கிலும் தீவிரமாகப் பயன்படுத்தப்படுகிறது.

சுருக்கமாக விவரிக்கப்பட்டது, மொனாட்கள் வரிசைமுறை பாகுபடுத்தலுக்குப் பயன்படுத்தப்படுகின்றன, ஒன்று முதலில் வரும்போது, ​​பின்னர் மற்றொன்று. உதாரணமாக, இந்த எடுத்துக்காட்டில்:

whileParser :: Parser Stmt
whileParser = whiteSpace >> statement

முதலில் நீங்கள் இடத்தை எண்ண வேண்டும், பின்னர் அறிக்கை - இது பார்சர் Stmt வகையையும் கொண்டுள்ளது.

பாகுபடுத்துதல் தோல்வியுற்றால், மாற்றியமைக்க மாற்று செயல்பாடுகள் பயன்படுத்தப்படுகின்றன. உதாரணத்திற்கு,

statement :: Parser Stmt
statement = parens statement <|> sequenceOfStmt

நீங்கள் அறிக்கையை அடைப்புக்குறிக்குள் படிக்க முயற்சிக்க வேண்டும் அல்லது பல அறிக்கைகளை தொடர்ச்சியாக படிக்க முயற்சிக்க வேண்டும் என்று அர்த்தம்.

பயன்பாட்டு செயல்பாடுகள் முதன்மையாக மோனாட்களுக்கான குறுக்குவழிகளாகப் பயன்படுத்தப்படுகின்றன. எடுத்துக்காட்டாக, டோக் செயல்பாடு சில டோக்கனைப் படிக்கட்டும் (இது LaTeXReader இன் உண்மையான செயல்பாடு). இந்த கலவையைப் பார்ப்போம்

const <$> tok <*> tok

இது ஒரு வரிசையில் இரண்டு டோக்கன்களைப் படித்து முதல் ஒன்றைத் திருப்பித் தரும்.

இந்த அனைத்து வகுப்புகளுக்கும், ஹாஸ்கெல் அழகான குறியீட்டு ஆபரேட்டர்களைக் கொண்டுள்ளது, இது ரீடர் நிரலாக்கத்தை ASCII கலை போல தோற்றமளிக்கிறது. இந்த அற்புதமான குறியீட்டைப் பாராட்டுங்கள்.

எங்கள் பணிகள் LaTeXReader உடன் தொடர்புடையவை. LaTeX இல் தொகுப்புகளை எழுதுவதற்கு பயனுள்ள mbox மற்றும் hbox கட்டளைகளை ஆதரிப்பதே வாசிலியின் பணி. எலிசபெத் எபிகிராஃப் கட்டளையை ஆதரிப்பதற்கு பொறுப்பானவர், இது LaTeX ஆவணங்களில் கல்வெட்டுகளை உருவாக்க உங்களை அனுமதிக்கிறது.

ஹேட்ரேஸ்

யுனிக்ஸ் போன்ற இயக்க முறைமைகள் பெரும்பாலும் ptrace அமைப்பு அழைப்பை செயல்படுத்துகின்றன. நிரல் சூழல்களை பிழைத்திருத்துவதற்கும் உருவகப்படுத்துவதற்கும் இது பயனுள்ளதாக இருக்கும், இது நிரல் செய்யும் கணினி அழைப்புகளைக் கண்டறிய உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, மிகவும் பயனுள்ள ஸ்ட்ரேஸ் பயன்பாடு உள்நாட்டில் ptrace ஐப் பயன்படுத்துகிறது.

ஹாட்ரேஸ் என்பது ஹாஸ்கெல்லில் ப்ரேஸ் செய்வதற்கான இடைமுகத்தை வழங்கும் ஒரு நூலகமாகும். உண்மை என்னவென்றால், ptrace மிகவும் நுட்பமானது மற்றும் அதை நேரடியாகப் பயன்படுத்துவது மிகவும் கடினம், குறிப்பாக செயல்பாட்டு மொழிகளில் இருந்து.

ஹேட்ரேஸ் தொடக்கத்தில் ஸ்ட்ரேஸ் போல் இயங்குகிறது மற்றும் இதே போன்ற வாதங்களை ஏற்றுக்கொள்கிறது. இது ஸ்ட்ரேஸிலிருந்து வேறுபடுகிறது, இது ஒரு நூலகமாகும், இது வெறும் ptrace ஐ விட எளிமையான இடைமுகத்தை வழங்குகிறது.

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

நாங்கள் கணினி அழைப்பு இடைமுகங்களை நூலகத்தில் சேர்த்துள்ளோம் - எலிசவெட்டா brk ஐச் சேர்த்தது, மற்றும் Vasily mmap ஐச் சேர்த்தது. எங்கள் பணியின் முடிவுகளின் அடிப்படையில், நூலகத்தைப் பயன்படுத்தும் போது இந்த கணினி அழைப்புகளின் வாதங்களை மிகவும் எளிமையாகவும் துல்லியமாகவும் பயன்படுத்த முடியும்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்