Ukukhutshwa kwe-ControlFlag 1.0, isixhobo sokuchonga iimpazamo kwikhowudi ye-C

I-Intel iye yapapasha ukukhutshwa kokuqala kwesixhobo se-ControlFlag 1.0, ekuvumela ukuba uchonge iimpazamo kunye ne-anomalies kwikhowudi yomthombo usebenzisa inkqubo yokufunda ngomatshini oqeqeshwe kwisixa esikhulu sekhowudi ekhoyo. Ngokungafaniyo nabahlalutyi bemveli be-static, i-ControlFlag ayisebenzisi imithetho esele yenziwe, apho kunzima ukubonelela zonke iinketho ezinokwenzeka, kodwa isekelwe kwizibalo zokusetyenziswa kolwakhiwo lweelwimi ezahlukeneyo kwinani elikhulu leeprojekthi ezikhoyo. Ikhowudi ye-ControlFlag ibhalwe kwi-C ++ kwaye ivuliwe ivuliwe phantsi kwelayisensi ye-MIT.

Inkqubo iqeqeshwa ngokwakha imodeli yamanani yekhowudi ekhoyo uluhlu lweeprojekthi ezivulekileyo ezipapashwe kwi-GitHub kunye neendawo zokugcina zoluntu ezifanayo. Kwinqanaba loqeqesho, inkqubo imisela iipatheni eziqhelekileyo zokwakha izakhiwo kwikhowudi kwaye yakha umthi we-syntactic wokudibanisa phakathi kwezi patheni, ebonisa ukuhamba kokusetyenziswa kwekhowudi kwinkqubo. Ngenxa yoko, kuqulunqwe umthi wokwenza isigqibo odibanisa amava ophuhliso azo zonke iikhowudi zomthombo ohlalutyiweyo. Ikhowudi ephantsi koqwalaselo iqhuba inkqubo efanayo yokuchonga iipateni ezithi zihlolwe ngokuchasene nomthi wesigqibo sereferensi. Ukungangqinelani okukhulu kunye namasebe angabamelwane kubonisa ubukho be-anomaly kwipatheni ehlolwayo.

Ukukhutshwa kwe-ControlFlag 1.0, isixhobo sokuchonga iimpazamo kwikhowudi ye-C

Njengomzekelo wezakhono ze-ControlFlag, abaphuhlisi bahlalutya iikhowudi zemvelaphi ye-OpenSSL kunye neeprojekthi ze-cURL:

  • Ulwakhiwo olungaqhelekanga “(s1 == NULL) ∧ (s2 == NULL)” kunye “(s1 == NULL) | (s2 == NULL)" , engahambelaniyo nepateni esetyenziswa ngokuqhelekileyo "(s1 == NULL) || (s2 == NULL)". Ikhowudi kwakhona ichonge iziphazamiso kumagama “(-2 == rv)” (uthabatha ibiyitypo) kunye “BIO_puts(bp, “:”) <= 0)” (kumxholo wokutshekisha ukugqitywa ngempumelelo umsebenzi bekufanele ukuba ngu "== 0").
  • Kwi-cURL, impazamo yafunyanwa engazange ibonwe ngabahlalutyi be-static xa kusetyenziswa i-element element "s->keepon", eyayinodidi lwamanani, kodwa yathelekiswa nexabiso le-boolean TRUE.

Phakathi kweempawu zenguqulo ye-ControlFlag 1.0, kukho inkxaso epheleleyo yeetemplates eziqhelekileyo zolwimi lwe-C kunye nokukwazi ukubona ukungahambi kakuhle kwiimpawu "ukuba". Umzekelo, xa uhlalutya ikhowudi yeqhekeza "ukuba (x = 7) y = x;" Inkqubo iya kugqiba ukuba inkcazo "ukuba" idla ngokusebenzisa "i-variable == number" ulwakhiwo ukuthelekisa amanani amanani, ngoko ke kunokwenzeka ukuba "i-variable = inombolo" kwintetho ethi "ukuba" ibangelwa yitypo. Ikhithi iquka iscript esikuvumela ukuba ukhuphele iindawo zokugcina ulwimi ezikhoyo kwi-GitHub kwaye uzisebenzise ukwakha imodeli. Iimodeli esele zenziwe ziyafumaneka, zikuvumela ukuba uqalise kwangoko ukujonga ikhowudi.

umthombo: opennet.ru

Yongeza izimvo