I-Intel ivule ikhodi yesistimu yokufunda yomshini we-ControlFlag ukuze ikhombe iziphazamisi kukhodi

I-Intel ithole intuthuko ehlobene nephrojekthi yocwaningo ye-ControlFlag okuhloswe ngayo ukudala isistimu yokufunda yomshini ukuthuthukisa ikhwalithi yekhodi. Ikhithi yamathuluzi elungiselelwe iphrojekthi ivumela, ngokusekelwe kumodeli eqeqeshwe enanini elikhulu lekhodi ekhona, ukuhlonza amaphutha ahlukahlukene nokudidayo emibhalweni yomthombo ebhalwe ngezilimi ezisezingeni eliphezulu ezifana ne-C/C++. Uhlelo lufanele ukuhlonza izinhlobo ezahlukene zezinkinga ngekhodi, kusukela ekuboneni ama-typos nezinhlanganisela zohlobo olungalungile, kuya ekuhlonzeni ukuhlolwa kwevelu kwe-NULL engekho ezikhombi nasezinkingeni zenkumbulo. Ikhodi ye-ControlFlag ibhalwe ku-C++ futhi ivuliwe itholakala ngaphansi kwelayisensi ye-MIT.

Uhlelo luzifundela ngokwalo ngokwakha imodeli yezibalo yohlu olukhona lwekhodi lwamaphrojekthi avuliwe ashicilelwe ku-GitHub namakhosombe omphakathi afanayo. Esigabeni sokuqeqesha, isistimu inquma amaphethini ajwayelekile okwakhiwa kwezakhiwo kukhodi futhi yakha isihlahla se-syntactic sokuxhumana phakathi kwalawa maphethini, okubonisa ukugeleza kokwenziwa kwekhodi ohlelweni. Ngenxa yalokho, kwakhiwa isihlahla sokuthatha izinqumo esihlanganisa ukuzizwisa kokuthuthukiswa kwawo wonke amakhodi omthombo ahlaziyiwe.

Ikhodi engaphansi kokubuyekezwa ibhekana nenqubo efanayo yokuhlonza amaphethini ahlolwa ngokumelene nesihlahla sesinqumo senkomba. Ukungezwani okukhulu namagatsha angomakhelwane kubonisa ukuba khona kwe-anomaly kuphethini ehlolwayo. Isistimu futhi ikuvumela ukuthi ungagcini nje ngokukhomba iphutha kusifanekiso, kodwa futhi uphakamise ukulungisa. Isibonelo, kukhodi ye-OpenSSL, ukwakhiwa okuthi “(s1 == NULL) ∧ (s2 == NULL)” kukhonjwe, okuvele esihlahleni se-syntax izikhathi ezingu-8 kuphela, kuyilapho igatsha eliseduze elinenani “(s1 == NULL) || (s2 == NULL)” kwenzeka izikhathi ezingaba yizinkulungwane ezingu-7. Uhlelo luphinde lwathola okudidayo “(s1 == NULL) | (s2 == NULL)” eyavela izikhathi ezingu-32 esihlahleni.

I-Intel ivule ikhodi yesistimu yokufunda yomshini we-ControlFlag ukuze ikhombe iziphazamisi kukhodi

Lapho uhlaziya ucezu lwekhodi “uma (x = 7) y = x;” Isistimu inqume ukuthi ukwakhiwa “okuguquguqukayo == inombolo” kuvamise ukusetshenziswa kusisebenzisi esithi “uma” ukuze kuqhathaniswe amanani ezinombolo, ngakho-ke maningi amathuba okuthi inkomba ethi “variable = inombolo” enkulumweni ethi “uma” ibangelwa a thayipha. Abahlaziyi bendabuko be-static ngabe babambe iphutha elinjalo, kodwa ngokungafani nabo, i-ControlFlag ayisebenzisi imithetho esenziwe ngomumo, lapho kunzima ukuhlinzeka ngakho konke okukhethwa kukho, kodwa kusekelwe kwizibalo zokusetshenziswa kwezakhiwo ezihlukahlukene ngenani elikhulu. yamaphrojekthi.

Njengokuhlolwa, kusetshenziswa i-ControlFlag kukhodi yomthombo yensiza ye-cURL, evame ukushiwo njengesibonelo sekhodi ephezulu nehloliwe, iphutha elingazange libonwe abahlaziyi abamile likhonjwe lapho kusetshenziswa isici sesakhiwo esithi “s->keepon”, eyayinohlobo lwezinombolo, kodwa yaqhathaniswa nenani le-Boolean TRUE . Ekhodini ye-OpenSSL, ngaphezu kwenkinga eshiwo ngenhla ethi "(s1 == NULL) ∧ (s2 == NULL)", okudidayo kuphinde kwaphawulwa enkulumweni ethi "(-2 == rv)" (okukhishwayo kwaba a typo) kanye "BIO_puts(bp, ":")

Source: opennet.ru

Engeza amazwana