Lenaneo le feta ho khouta

Lenaneo le feta ho khouta

Sengoliloeng sena ke phetolelo Seminara ea Stanford. Empa ka pel'a hae selelekela se senyenyane. Li-zombies li thehoa joang? E mong le e mong o ile a kena boemong boo a batlang ho hula motsoalle kapa mosebetsi-'moho ho ea boemong ba bona, empa ha ho sebetse. 'Me ha ho joalo le uena joaloka eena hore "ha e sebetse": ka lehlakoreng le leng la tekanyo ke moputso o tloaelehileng, mesebetsi, joalo-joalo,' me ka lehlakoreng le leng, tlhokahalo ea ho nahana. Ho nahana ha ho monate ebile ho bohloko. O inehela ka potlako mme a tswela pele ho ngola khoutu ntle le ho bulela boko ho hang. U ka inahanela hore na ho hlokahala boiteko bo bokae ho hlōla mokoallo oa ho hloka thuso ho ithutoang, 'me ha u etse joalo. Ena ke tsela eo li-zombies li thehoang ka eona, eo ho bonahalang eka e ka phekoloa, empa ho bonahala eka ha ho motho ea tla e etsa.

Ha ke bona seo Leslie Lamport (ee, motsoalle ea tšoanang ho tsoa libukeng tsa thuto) e fihla Russia mme ha e etse tlaleho, empa nako ya dipotso le dikarabo, ke ne ke le hlokolosi hanyane. Leha ho le joalo, Leslie ke rasaense ea tsebahalang lefatšeng ka bophara, mongoli oa mesebetsi ea mantlha ea likhomphutha tse ajoang, hape o ka mo tseba ka litlhaku La ka lentsoe LaTeX - "Lamport TeX". Ntlha ea bobeli e tšosang ke tlhokahalo ea hae: e mong le e mong ea tlang o tlameha (ka ho feletseng ntle ho tefo) a mamele litlaleho tsa hae tse 'maloa esale pele, a tle le bonyane potso e le' ngoe ho tsona, ebe o tla feela. Ke nkile qeto ea ho bona seo Lamport a neng a se phatlalatsa moo - mme ho monate! Ke eona ntho eo, pilisi ea boselamose ea ho phekola Zombies. Kea u lemosa: ho tsoa sengolong, barati ba mekhoa e feto-fetohang haholo le ba sa rateng ho leka se ngotsoeng ba ka chesa haholo.

Ka mor'a habrokat, ha e le hantle, phetolelo ea seminar e qala. Natefeloa ke ho bala!

Ho sa tsotellehe hore na u etsa mosebetsi ofe, kamehla u lokela ho feta mehato e meraro:

  • etsa qeto ea hore na u batla ho finyella sepheo sefe;
  • etsa qeto ea hore na u tla finyella sepheo sa hau joang;
  • tloho sepheo sa hao.

Sena se sebetsa le ho mananeo. Ha re ngola khoutu, re hloka ho:

  • etsa qeto ea hore na lenaneo le lokela ho etsa eng;
  • tseba hore na e lokela ho etsa mosebetsi oa eona joang;
  • ngola khoutu e tsamaellanang.

Mohato oa ho qetela, ehlile, ke oa bohlokoa haholo, empa nke ke ka bua ka oona kajeno. Ho e-na le hoo, re tla tšohla tse peli tsa pele. Moqapi e mong le e mong oa li etsa pele a qala ho sebetsa. Ha u lule fatše ho ngola ntle le haeba u entse qeto ea hore na u ngola sebatli kapa database. Khopolo e itseng ea sepheo e tlameha ho ba teng. 'Me ka sebele u nahana ka seo lenaneo le tla se etsa hantle,' me u se ke ua ngola ka tsela e itseng ka tšepo ea hore khoutu e tla fetoha sebatli ka tsela e itseng.

Khoutu ee ea ho nahana esale pele e etsahala joang? Re lokela ho etsa boiteko bo bokae tabeng ee? Ho itšetlehile ka hore na bothata boo re bo rarollang bo rarahane hakae. Ha re re re batla ho ngola sistimi e ajoang e mamellang liphoso. Tabeng ena, re lokela ho nahana ka lintho ka hloko pele re lula fatše ho etsa khoutu. Ho thoe'ng haeba re hloka feela ho eketsa palo e felletseng ka 1? Ha u sheba ka lekhetlo la pele, ntho e 'ngoe le e' ngoe e nyenyane mona, 'me ha ho na mohopolo o hlokahalang, empa joale re hopola hore ho ka ba le ho phalla. Ka hona, esita le e le hore u utloisise hore na bothata bo bonolo kapa bo rarahane, u lokela ho qala ho nahana.

Haeba u nahana ka tharollo e ka khonehang ea bothata esale pele, u ka qoba liphoso. Empa sena se hloka hore monahano oa hau o hlake. Ho finyella sena, ho hlokahala hore u ngole maikutlo a hao fatše. Ke rata mantsoe a Dick Guindon a reng: “Ha u ngola, tlhaho e u bontša kamoo monahano oa hao o leng bohlasoa kateng.” Haeba u sa ngole, u nahana feela hore u ntse u nahana. 'Me u lokela ho ngola maikutlo a hau ka mokhoa oa litlhaloso.

Litlhaloso li etsa mesebetsi e mengata, haholo-holo mererong e meholo. Empa ke tla bua feela ka e 'ngoe ea tsona: li re thusa ho nahana hantle. Ho nahana ka ho hlaka ho bohlokoa haholo ebile ho thata haholo, ka hona mona re hloka thuso efe kapa efe. Re lokela ho ngola litlhaloso ka puo efe? Ka kakaretso, ena ke potso ea pele bakeng sa baetsi ba mananeo: re tla ngola ka puo efe. Ha ho na karabo e nepahetseng ho eona: mathata ao re a rarollang a fapane haholo. Ho ba bang, TLA+ ke puo e ikhethileng eo ke e hlahisitseng. Ho ba bang, ho bonolo ho sebelisa Sechaena. Ntho e 'ngoe le e' ngoe e itšetlehile ka boemo.

Habohlokoa le ho feta ke potso e 'ngoe: mokhoa oa ho fihlela monahano o hlakileng haholoanyane? Karabo: Re tlameha ho nahana joaloka bo-rasaense. Ena ke mokhoa oa ho nahana o ipakileng lilemong tse 500 tse fetileng. Ho saense, re haha ​​mehlala ea lipalo ea 'nete. Ho ka etsahala hore ebe thuto ea linaleli e bile eona saense ea pele ka kutloisiso e thata ea lentsoe lena. Moetsong oa lipalo o sebelisoang thutong ea linaleli, lihloliloeng tsa leholimo li hlaha e le lintlha tse nang le boima, boemo le lebelo, le hoja bonneteng e le lintho tse rarahaneng haholo tse nang le lithaba le maoatle, maqhubu le maqhubu. Mohlala ona, joalo ka o mong, o etselitsoe ho rarolla mathata a itseng. Ho molemo ho tseba hore na u ka supa sebonela-hōle hokae haeba u hloka ho fumana polanete. Empa haeba u batla ho bolela esale pele boemo ba leholimo lefatšeng lena, mohlala ona o ke ke oa sebetsa.

Lipalo li re fa monyetla oa ho tseba hore na mohlala ke ofe. 'Me saense e bontša kamoo thepa ena e amanang le' nete kateng. Ha re bueng ka mahlale a rona, mahlale a khomphutha. 'Nete eo re sebetsang ka eona ke lisebelisoa tsa lik'homphieutha tsa mefuta e sa tšoaneng: li-processors, lipapali tsa lipapali, lik'homphieutha, mananeo a phethang, joalo-joalo. Ke tla bua ka ho tsamaisa lenaneo khomphuteng, empa ka kakaretso, liqeto tsena kaofela li sebetsa ho sistimi efe kapa efe ea komporo. Mahlaleng a rona, re sebelisa mefuta e mengata e fapaneng: mochini oa Turing, lihlopha tsa liketsahalo tse laetsoeng hanyane, le tse ling tse ngata.

Lenaneo ke eng? Ena ke khoutu efe kapa efe e ka nahanoang ka boikemelo. A re re re hloka ho ngola sebatli. Re etsa mesebetsi e meraro: re qapa pono ea mosebedisi ea lenaneo, ebe re ngola setšoantšo sa boemo bo phahameng ba lenaneo, 'me qetellong re ngola khoutu. Ha re ntse re ngola khoutu, rea hlokomela hore re hloka ho ngola sebopeho sa mongolo. Mona re boetse re hloka ho rarolla mathata a mararo: fumana hore na sesebelisoa sena se tla khutla joang; khetha algorithm bakeng sa ho fomata; ngola khoutu. Mosebetsi ona o na le mosebetsi o monyenyane: ka nepo kenya lehokelo mantsoeng. Hape re rarolla mosebetsi o monyane ka mehato e meraro - joalo ka ha u bona, e phetoa maemong a mangata.

A re hlahlobeng ka ho qaqileng mohato oa pele: hore na lenaneo le rarolla bothata bofe. Mona, hangata re etsa mohlala oa lenaneo joalo ka ts'ebetso e nkang tlhahiso e itseng mme e hlahisa sephetho se itseng. Lipalong, tšebetso hangata e hlalosoa e le sete e hlophisitsoeng ea lipara. Mohlala, ts'ebetso ea squaring bakeng sa linomoro tsa tlhaho e hlalosoa e le sete {<0,0>, <1,1>, <2,4>, <3,9>, ...}. Sebaka sa ts'ebetso e joalo ke sete ea likarolo tsa pele tsa para ka 'ngoe, ke hore, linomoro tsa tlhaho. Ho hlalosa tšebetso, re hloka ho hlakisa boholo ba eona le foromo ea eona.

Empa mesebetsi ea lipalo ha e tšoane le mesebetsi ea lipuo tsa mananeo. Lipalo li bonolo haholo. Kaha ha ke na nako ea mehlala e rarahaneng, ha re nahaneng e bonolo: ts'ebetso ho C kapa mokhoa o tsitsitseng ho Java o khutlisetsang karolo e kholo ka ho fetisisa e tloaelehileng ea likarolo tse peli. Ka tlhaloso ea mokhoa ona, re tla ngola: lipalo GCD(M,N) bakeng sa likhang M и Nkae GCD(M,N) - tshebetso eo domain ya yona e leng sete ya dipara tsa dinomoro, mme boleng ba kgutliso ke palo e kgolo ka ho fetisisa e arolwang ka M и N. Mohlala ona o amana joang le 'nete? Mohlala o sebetsa ka lipalo tse felletseng, athe C kapa Java re na le 32-bit int. Mohlala ona o re lumella ho etsa qeto ea hore na algorithm e nepahetse GCD, empa e ke ke ea thibela liphoso tse khaphatsehang. Sena se ne se tla hloka mohlala o rarahaneng haholoanyane, oo ho seng nako ea oona.

Ha re bue ka mefokolo ea ts'ebetso e le mohlala. Mananeo a mang (joalo ka sistimi ea ts'ebetso) ha a khutlise feela boleng bo itseng bakeng sa likhang tse itseng, a ka sebetsa a sa khaotse. Ho phaella moo, mosebetsi oa mohlala ha o tšoanelehe hantle bakeng sa mohato oa bobeli: ho rera mokhoa oa ho rarolla bothata. Mofuta o potlakileng le oa mofuta oa bubble o kopanya ts'ebetso e ts'oanang, empa ke li-algorithms tse fapaneng ka ho felletseng. Ka hona, ho hlalosa hore na sepheo sa lenaneo se finyelloa joang, ke sebelisa mohlala o fapaneng, a re o bitseng mokhoa o tloaelehileng oa boitšoaro. Lenaneo le ho lona le emeloa e le letoto la mekhoa eohle e lumelletsoeng, eo e 'ngoe le e' ngoe e leng tatellano ea linaha, 'me mmuso ke kabelo ea boleng ho mefuta e fapaneng.

Ha re boneng hore na mohato oa bobeli oa algorithm ea Euclid o ne o tla shebahala joang. Re lokela ho bala GCD(M, N). Re qala M kamoo xle N kamoo y, ebe khafetsa o tlosa tse nyenyane tsa mefuta ena ho tse kholo ho fihlela li lekana. Ka mohlala, haeba M = 12le N = 18, re ka hlalosa boitšoaro bo latelang:

[x = 12, y = 18] → [x = 12, y = 6] → [x = 6, y = 6]

Mme haeba M = 0 и N = 0? Zero e aroloa ka linomoro tsohle, kahoo ha ho na karohano e kholo tabeng ena. Boemong bona, re hloka ho khutlela mohato oa pele mme re botse: na re hlile re hloka ho bala GCD bakeng sa linomoro tse seng ntle? Haeba sena se sa hlokahale, joale o hloka feela ho fetola tlhaloso.

Mona re lokela ho etsa phallo e nyane mabapi le tlhahiso. Hangata e lekantsoe ka palo ea mela ea khoutu e ngotsoeng ka letsatsi. Empa mosebetsi oa hau o na le thuso haholo haeba o tlosa mela e itseng, hobane o na le sebaka se fokolang sa likokoana-hloko. 'Me tsela e bonolo ka ho fetisisa ea ho tlosa khoutu ke mohato oa pele. Ho ka etsahala hore ebe ha u hloke litloloko tsohle le liloli tseo u lekang ho li sebelisa. Mokhoa o potlakileng oa ho nolofatsa lenaneo le ho boloka nako ke ho se etse lintho tse sa lokelang ho etsoa. Mohato oa bobeli ke monyetla oa bobeli oa ho boloka nako. Haeba u lekanya tlhahiso ho latela mela e ngotsoeng, joale ho nahana ka mokhoa oa ho phethahatsa mosebetsi ho tla u etsa tlhahiso e fokolang, hobane o ka rarolla bothata bo tšoanang ka khoutu e nyane. Ha ke khone ho fana ka lipalo-palo tse tobileng mona, hobane ha ke na mokhoa oa ho bala palo ea mela eo ke sa kang ka e ngola ka lebaka la hore ke ile ka qeta nako ka ho hlaka, ke hore, mehatong ea pele le ea bobeli. Hape teko e ke ke ea thehoa mona, hobane tekong ha re na tokelo ea ho qeta mohato oa pele, mosebetsi o reriloe esale pele.

Ho bonolo ho hlokomoloha mathata a mangata ka litlhaloso tse sa reroang. Ha ho letho le thata ho ngola lintlha tse thata tsa mesebetsi, nke ke ka bua ka sena. Ho e-na le hoo, re tla bua ka ho ngola litlhaloso tse matla tsa boitšoaro bo tloaelehileng. Ho na le theorem e bolelang hore mekhoa leha e le efe ea boitšoaro e ka hlalosoa ho sebelisoa thepa ea tšireletso (tšireletseho) le thepa ea ho phela (bophelo). Tšireletso e bolela hore ha ho letho le lebe le tla etsahala, lenaneo le ke ke la fana ka karabo e fosahetseng. Ho pholoha ho bolela hore kapele kapa hamorao ho tla etsahala ntho e ntle, ke hore, lenaneo le tla fana ka karabo e nepahetseng kapele kapa hamorao. E le molao, ts'ireletso ke letšoao la bohlokoa ho feta, liphoso hangata li etsahala mona. Ka hona, ho boloka nako, nke ke ka bua ka ho pholoha, le hoja ho le joalo, ho bohlokoa hape.

Re fihlela ts'ireletseho ka ho laela, pele, sehlopha sa maemo a pele a ka bang teng. 'Me ea bobeli, likamano le linaha tsohle tse ka khonehang tse latelang bakeng sa naha ka' ngoe. Ha re sebetseng joalo ka bo-ramahlale 'me re hlalose linaha ka lipalo. Sehlopha sa linaha tsa pele se hlalosoa ka foromo, mohlala, tabeng ea algorithm ea Euclid: (x = M) ∧ (y = N). Bakeng sa litekanyetso tse itseng M и N ho na le boemo bo le bong feela ba pele. Kamano le naha e latelang e hlalosoa ka mokhoa oo mefuta-futa ea boemo bo latelang e ngotsoeng ka sehlooho, 'me mefuta e fapaneng ea boemo ba hona joale e ngotsoe ntle le sehlooho. Tabeng ea algorithm ea Euclid, re tla sebetsana le ho arohana ha liforomo tse peli, ho e 'ngoe ea tsona. x ke boleng bo boholo, 'me ea bobeli - y:

Lenaneo le feta ho khouta

Tabeng ea pele, boleng bo bocha ba y bo lekana le boleng bo fetileng ba y, 'me re fumana boleng bo bocha ba x ka ho tlosa phapang e nyenyane ho tloha ho e kholoanyane. Tabeng ea bobeli, re etsa se fapaneng.

Ha re khutleleng ho algorithm ea Euclid. Ha re nahaneng hape hoo M = 12, N = 18. Sena se hlalosa boemo bo le bong ba pele, (x = 12) ∧ (y = 18). Ebe re kenya litekanyetso tseo ka foromong e kaholimo ebe re fumana:

Lenaneo le feta ho khouta

Tharollo feela ke ena: x' = 18 - 12 ∧ y' = 12'me re fumana boitšoaro: [x = 12, y = 18]. Ka mokhoa o ts'oanang, re ka hlalosa linaha tsohle boitšoarong ba rona: [x = 12, y = 18] → [x = 12, y = 6] → [x = 6, y = 6].

Boemong ba ho qetela [x = 6, y = 6] likarolo ka bobeli tsa polelo e tla ba leshano, kahoo ha e na boemo bo latelang. Kahoo, re na le tlhaloso e feletseng ea mohato oa bobeli - kamoo u ka bonang kateng, sena ke lipalo tse tloaelehileng, joalo ka baenjiniere le bo-rasaense, 'me ha ho makatse, joaloka saense ea k'homphieutha.

Liforomo tsena tse peli li ka kopanngoa hore e be mokhoa o le mong oa logic ea nakoana. O motle ebile o bonolo ho hlalosa, empa ha ho na nako ea hae hona joale. Re ka 'na ra hloka logic ea nakoana feela bakeng sa thepa ea boipheliso, ha e hlokehe bakeng sa tšireletso. Ha ke rate logic ea nakoana joalo, ha se lipalo tse tloaelehileng, empa tabeng ea bophelo bo botle ke bobe bo hlokahalang.

Ho algorithm ea Euclid, bakeng sa boleng bo bong le bo bong x и y e na le litekanyetso tse ikhethang x' и y', tse etsang hore kamano le mmuso o latelang e be nnete. Ka mantsoe a mang, algorithm ea Euclid ke deterministic. Ho etsa mohlala oa algorithm e sa tsitsang, naha ea hajoale e hloka ho ba le linaha tse ngata tse ka bang teng nakong e tlang, le hore boleng bo bong le bo bong bo sa fetoheng bo na le boleng bo fapaneng ba maemo a fapaneng hoo kamano le naha e latelang e leng 'nete. Sena se bonolo ho se etsa, empa nke ke ka fana ka mehlala hona joale.

Ho etsa sesebelisoa sa ho sebetsa, o hloka lipalo tse hlophisitsoeng. Mokhoa oa ho etsa hore setifikeiti se be molaong? Ho etsa sena, re hloka puo e hlophisitsoeng, mohlala, TLA+. Tlhaloso ea algorithm ea Euclid e ka shebahala tjena ka puo ena:

Lenaneo le feta ho khouta

Letšoao le lekanang le nang le khutlotharo le bolela hore boleng bo ka letsohong le letšehali la letšoao bo hlalosoa bo lekana le boleng bo ka letsohong le letona la letšoao. Ha e le hantle, tlhaloso ke tlhaloso, tabeng ea rona litlhaloso tse peli. Ho TLA+, o hloka ho kenya liphatlalatso le syntax, joalo ka selaeteng se kaholimo. Ho ASCII e ne e tla shebahala tjena:

Lenaneo le feta ho khouta

Joalokaha u ka bona, ha ho letho le rarahaneng. Tlhaloso ea TLA + e ka lekoa, ke hore, ho feta mekhoa eohle e ka khonehang ka mokhoa o monyenyane. Tabeng ea rona, mohlala ona e tla ba litekanyetso tse itseng M и N. Ona ke mokhoa o sebetsang hantle haholo le o bonolo oa netefatso o ikemetseng ka botlalo. Hape hoa khoneha ho ngola bopaki ba 'nete ba molao le ho bo hlahloba ka mochine, empa sena se nka nako e ngata, kahoo ha ho motho ea etsang sena.

Bothata bo ka sehloohong ba TLA+ ke hore ke lipalo, 'me baetsi ba mananeo le bo-rasaense ba k'homphieutha ba tšaba lipalo. Ha u sheba ka lekhetlo la pele, sena se utloahala eka ke motlae, empa, ka bomalimabe, ke se bolela ka botebo bohle. Mosebetsi-'moho le 'na o ne a mpa a mpolella kamoo a lekileng ho hlalosa TLA + ho bahlahisi ba' maloa. Hang ha liforomo li hlaha skrineng, hang-hang li ile tsa fetoha mahlo a khalase. Kahoo haeba TLA + e u tšosa, u ka e sebelisa PlusCal, ke mofuta oa puo ea lenaneo la lipapali. Polelo e ho PlusCal e ka ba polelo efe kapa efe ea TLA+, ke hore, ka kakaretso, polelo efe kapa efe ea lipalo. Ho phaella moo, PlusCal e na le syntax bakeng sa li-algorithms tse sa tsitsang. Hobane PlusCal e khona ho ngola polelo efe kapa efe ea TLA+, PlusCal e fana ka maikutlo ho feta puo efe kapa efe ea 'nete ea lenaneo. Ka mor'a moo, PlusCal e hlophisitsoe ka mokhoa o balang habonolo oa TLA+. Sena ha se bolele, ha e le hantle, hore tlhaloso e rarahaneng ea PlusCal e tla fetoha e bonolo ho TLA + - feela mangolo a pakeng tsa bona a hlakile, ho ke ke ha e-ba le ho rarahana ho eketsehileng. Qetellong, tlhaloso ena e ka netefatsoa ke lisebelisoa tsa TLA +. Ka kakaretso, PlusCal e ka thusa ho hlola phobia ea lipalo mme e bonolo ho e utloisisa le bakeng sa baetsi ba mananeo le bo-ramahlale ba likhomphutha. Nakong e fetileng, ke ile ka hatisa li-algorithms ho eona ka nako e itseng (hoo e ka bang lilemo tse 10).

Mohlomong motho e mong o tla hana hore TLA + le PlusCal ke lipalo, 'me lipalo li sebetsa feela mehlaleng e iqapetsoeng. Ha e le hantle, o hloka puo ea sebele e nang le mefuta, mekhoa, lintho, joalo-joalo. Sena se fosahetse. Mona ke seo Chris Newcomb, ea neng a sebetsa Amazon, a se ngolang: "Re sebelisitse TLA+ mererong e meholo e leshome, 'me boemong bo bong le bo bong, ho e sebelisa ho entse phapang e kholo ho nts'etsopele hobane re khonne ho ts'oara likokoana-hloko tse kotsi pele re fihla tlhahiso, le hobane e re file temohisiso le kholiseho eo re e hlokang etsa lintlafatso tse matla tsa ts'ebetso ntle le ho ama 'nete ea lenaneo". Hangata u ka utloa hore ha re sebelisa mekhoa e hlophisitsoeng, re fumana khoutu e sa sebetseng hantle - ka ts'ebetso, ntho e 'ngoe le e' ngoe e fapane. Ho phaella moo, ho na le maikutlo a hore batsamaisi ba ke ke ba kholiseha ka tlhokahalo ea mekhoa e hlophisitsoeng, esita le haeba baetsi ba mananeo ba kholisehile ka molemo oa bona. Mme Newcomb oa ngola: "Batsamaisi ba ntse ba leka ka matla ho ngola lintlha tsa TLA +, 'me ka ho khetheha ba fane ka nako ea sena". Kahoo ha batsamaisi ba bona hore TLA+ ea sebetsa, ba thabela ho e amohela. Chris Newcomb o ngotse sena hoo e ka bang likhoeli tse tšeletseng tse fetileng (Mphalane 2014), empa hona joale, ho ea kamoo ke tsebang, TLA + e sebelisoa mererong ea 14, eseng 10. Mohlala o mong ke oa ho qaptjoa ha XBox 360. Motho ea kenang sekolo o ile a tla ho Charles Thacker le e ngotse lintlha tsa sistimi ea memori. Ka lebaka la tlhaloso ena, ho ile ha fumanoa kokoanyana e neng e ke ke ea hlokomeloa, 'me ka lebaka leo XBox 360 e' ngoe le e 'ngoe e ka senyeha ka mor'a lihora tse' nè tsa tšebeliso. Baenjiniere ba IBM ba netefalitse hore liteko tsa bona li ka be li sa ka tsa fumana kokoanyana ena.

U ka bala ho eketsehileng ka TLA + Inthaneteng, empa joale a re bue ka litlhaloso tse sa reroang. Ha se hangata re tlamehang ho ngola mananeo a balang karolo e fokolang e tloaelehileng le tse ling tse joalo. Hangata re ngola mananeo a kang sesebelisoa sa khatiso se setle seo ke se ngotseng bakeng sa TLA+. Kamora ts'ebetso e bonolo ka ho fetesisa, khoutu ea TLA + e ne e tla shebahala tjena:

Lenaneo le feta ho khouta

Empa mohlaleng o ka holimo, mohlomong mosebelisi o ne a batla hore lehokelo le matšoao a lekanang a tsamaisane. Kahoo mokhoa o nepahetseng oa ho fomata o tla shebahala tjena:

Lenaneo le feta ho khouta

Ha re nahaneng ka mohlala o mong:

Lenaneo le feta ho khouta

Mona, ho fapana le hoo, ho lokisoa ha matšoao a lekanang, ho eketsoa le ho atisa ho tsoa mohloling e ne e le ntho e sa reroang, kahoo ts'ebetso e bonolo ka ho fetisisa e lekane. Ka kakaretso, ha ho na tlhaloso e nepahetseng ea lipalo ea mokhoa o nepahetseng oa ho fomata, hobane "e nepahetseng" tabeng ena e bolela "seo mosebedisi a se batlang", 'me sena se ke ke sa khethoa ka lipalo.

Ho ka bonahala eka ha re se na tlhaloso ea 'nete, joale tlhaloso ha e na thuso. Empa ha ho joalo. Hobane ha re tsebe seo lenaneo le lokelang ho se etsa ha ho bolele hore ha ho hlokahale hore re nahane hore na le sebetsa joang—ho fapana le hoo, re tlameha ho etsa boiteko bo boholo le ho feta ho lona. Tlhaloso e bohlokoa haholo mona. Ho ke ke ha khoneha ho fumana lenaneo le nepahetseng la khatiso e hlophisitsoeng, empa sena ha se bolele hore ha rea ​​​​lokela ho e nka ho hang, 'me ho ngola khoutu e le mokhoa oa ho tseba hase ntho e ntle. Qetellong, ke ile ka ngola tlhaloso ea melao e tšeletseng e nang le litlhaloso ka mokhoa oa litlhaloso faeleng ea java. Mohlala oa e 'ngoe ea melao ke ena: a left-comment token is LeftComment aligned with its covering token. Molao ona o ngotsoe ka, re ka re, Senyesemane sa lipalo: LeftComment aligned, left-comment и covering token - mantsoe a nang le litlhaloso. Ena ke tsela eo litsebi tsa lipalo li hlalosang lipalo ka eona: li ngola litlhaloso tsa mantsoe, 'me li itšetlehile ka tsona, melao. Molemo oa tlhaloso e joalo ke hore melao e tšeletseng e bonolo ho e utloisisa le ho e lokisa ho feta mela e 850 ea khoutu. Ke tlameha ho bolela hore ho ngola melao ena ho ne ho se bonolo, ho nkile nako e telele ho e lokisa. Haholo-holo bakeng sa morero ona, ke ngotse khoutu e tlalehang hore na ho sebelisitsoe molao ofe. Ka lebaka la hore ke lekile melao ena e tšeletseng mehlaleng e mengata, ha kea ka ka tlameha ho lokisa mela e 850 ea khoutu, 'me ho ile ha e-ba bonolo ho fumana liphoso. Java e na le lisebelisoa tse ntle bakeng sa sena. Haeba ke ne ke sa tsoa ngola khoutu, e ka be e nkile nako e teletsana, 'me mokhoa oa ho fometa o ne o tla ba oa boleng bo tlaase.

Ke hobane'ng ha ho sa khonehe ho sebelisa litlhaloso tsa molao? Ka lehlakoreng le leng, ts'ebetso e nepahetseng ha e bohlokoa haholo mona. Likhatiso tsa meralo ha lia tlameha ho khahlisa mang kapa mang, kahoo ha kea ka ka tlameha ho li etsa hore li sebetse hantle maemong ohle a makatsang. Ntho ea bohlokoa le ho feta ke hore ke ne ke se na lisebelisoa tse lekaneng. Mohlahlobi oa mohlala oa TLA + ha o na thuso mona, kahoo ke tla tlameha ho ngola mehlala ka letsoho.

Tlhaloso e ka holimo e na le likarolo tse tšoanang le litlhaloso tsohle. Ke boemo bo phahameng ho feta khoutu. E ka kenngwa tshebetsong ka puo efe kapa efe. Lisebelisoa kapa mekhoa efe kapa efe ha e na thuso ea ho e ngola. Ha ho thupelo ea mananeo e tla u thusa ho ngola litlhaloso tsena. Hape ha ho na lisebelisoa tse ka etsang hore tlhaloso ena e se ke ea hlokahala, ntle le haeba, ha e le hantle, u ngola puo ka ho khetheha bakeng sa ho ngola mananeo a khatiso a hlophisitsoeng ka TLA+. Qetellong, tlhaloso ena ha e bue letho ka hore na re tla ngola khoutu joang, e bolela feela hore na khoutu ena e etsa eng. Re ngola lintlha ho re thusa ho nahana ka bothata pele re qala ho nahana ka khoutu.

Empa tlhaloso ena e boetse e na le likarolo tse e khethollang ho tse ling. 95% ea lintlha tse ling li khuts'oane haholo ebile li bonolo:

Lenaneo le feta ho khouta

Ho feta moo, tlhaloso ena ke sete ea melao. Joalo ka molao, sena ke sesupo sa lintlha tse fosahetseng. Ho utloisisa litlamorao tsa letoto la melao ho thata haholo, ke ka lebaka leo ke ileng ka tlameha ho qeta nako e ngata ke e lokisa. Leha ho le joalo, tabeng ena, ha kea ka ka fumana tsela e molemonyana.

Ke habohlokoa ho bua mantsoe a seng makae ka mananeo a tsoelang pele. E le molao, li sebetsa ka mokhoa o ts'oanang, mohlala, litsamaiso tse sebetsang kapa litsamaiso tse ajoang. Ke batho ba fokolang haholo ba ka li utloisisang kelellong kapa pampiring, ’me ha ke e mong oa bona, le hoja nkile ka khona ho e utloisisa. Ka hona, re hloka lisebelisoa tse tla hlahloba mosebetsi oa rona - mohlala, TLA + kapa PlusCal.

Hobaneng ho ne ho hlokahala ho ngola lintlha haeba ke ne ke se ke ntse ke tseba hore na khoutu e lokela ho etsa eng? Ha e le hantle, ke ne ke nahana hore kea e tseba. Ho phaella moo, ka tlhaloso, motho ea ka ntle ha a sa hloka ho kena khoutu ho utloisisa seo a se etsang hantle. Ke na le molao: ha hoa lokela ho ba le melao e akaretsang. Ho na le mokhelo molaong ona, ha e le hantle, ke oona feela molao o akaretsang oo ke o latelang: tlhaloso ea seo khoutu e se etsang e lokela ho bolella batho ntho e 'ngoe le e' ngoe eo ba e hlokang ho tseba ha ba sebelisa khoutu.

Joale ke eng seo baetsi ba mananeo ba hlokang ho se tseba hantle mabapi le ho nahana? Ho qala, ho tšoana le batho ba bang kaofela: haeba u sa ngole, joale ho bonahala eka u nahana feela ho uena. Hape, o hloka ho nahana pele o kenya khoutu, ho bolelang hore o hloka ho ngola pele o ngola. Tlhaloso ke seo re se ngolang pele re qala ho khouta. Ho hlokahala lintlha bakeng sa khoutu efe kapa efe e ka sebelisoang kapa ea fetoloa ke mang kapa mang. 'Me "motho" enoa e ka' na ea e-ba mongoli oa khoutu ka boeena khoeli ka mor'a hore e ngoloe. Tlhaloso e hlokahalang bakeng sa mananeo a maholo le litsamaiso, bakeng sa lihlopha, bakeng sa mekhoa, 'me ka linako tse ling esita le bakeng sa likarolo tse rarahaneng tsa mokhoa o le mong. Hantle-ntle ho lokela ho ngoloa eng ka khoutu? U hloka ho hlalosa seo e se etsang, ke hore, se ka bang molemo ho mang kapa mang ea sebelisang khoutu ena. Ka linako tse ling ho ka 'na ha hlokahala hore ho hlakisoe hore na khoutu e phethahatsa morero oa eona joang. Haeba re ile ra feta ka mokhoa ona nakong ea li-algorithms, joale re o bitsa algorithm. Haeba e le ntho e ikhethang le e ncha, joale re e bitsa moralo oa boemo bo phahameng. Ha ho na phapang ea molao mona: ka bobeli ke mohlala oa lenaneo.

Hantle-ntle u lokela ho ngola lintlha tsa khoutu joang? Ntho e ka sehloohong: e lokela ho ba boemo bo le bong bo phahameng ho feta khoutu ka boeona. E lokela ho hlalosa maemo le boitšoaro. E lokela ho ba thata kamoo mosebetsi o hlokang kateng. Haeba u ngola lintlha tsa hore na mosebetsi o tla etsoa joang, u ka o ngola ka pseudocode kapa ka PlusCal. U hloka ho ithuta ho ngola litlhaloso ka litlhaloso tse hlophisitsoeng. Sena se tla u fa litsebo tse hlokahalang tse tla u thusa le tse sa reroang. U ithuta joang ho ngola litlhaloso tsa molao? Ha re ithuta ho etsa lenaneo, re ne re ngola mananeo ebe re a lokisa. Hoa tšoana le mona: ngola lintlha, u li hlahlobe ka mochini o hlahlobang, 'me u lokise liphoso. TLA+ e kanna ea se be puo e ntle ka ho fetisisa bakeng sa litlhaloso tsa semmuso, 'me puo e' ngoe e kanna ea ba betere bakeng sa litlhoko tsa hau tse ikhethileng. Molemo oa TLA+ ke hore e ruta ho nahana ka lipalo hantle.

Mokhoa oa ho hokahanya litlhaloso le khoutu? Ka thuso ea litlhaloso tse hokahanyang likhopolo tsa lipalo le ts'ebetsong ea tsona. Haeba u sebetsa ka li-graph, joale boemong ba lenaneo u tla ba le lihlopha tsa li-node le lihlopha tsa li-link. Ka hona, o hloka ho ngola hantle hore na kerafo e sebelisoa joang ke libopeho tsena tsa mananeo.

Ho lokela ho hlokomeloa hore ha ho le e 'ngoe ea tse ka holimo e sebetsang ho mokhoa oa sebele oa ho ngola khoutu. Ha u ngola khoutu, ke hore, u etsa mohato oa boraro, u boetse u hloka ho nahana le ho nahana ka lenaneo. Haeba mosebetsi o monyane o bonahala o rarahane kapa o sa bonahale, o hloka ho ngola lintlha tsa oona. Empa ha ke bue ka khoutu ka boeona mona. U ka sebelisa puo efe kapa efe ea lenaneo, mokhoa ofe kapa ofe, ha e bue ka bona. Hape, ha ho le e 'ngoe ea tse ka holimo e felisang tlhoko ea ho hlahloba le ho lokisa khoutu. Esita le haeba mohlala oa abstract o ngotsoe ka nepo, ho ka 'na ha e-ba le liphoso ts'ebetsong ea oona.

Litlhaloso tsa ho ngola ke mohato oa tlatsetso ts'ebetsong ea likhoutu. Ka lebaka la eona, liphoso tse ngata li ka tšoaroa ka boiteko bo fokolang - re tseba sena ho tsoa phihlelong ea baetsi ba mananeo ba tsoang Amazon. Ka litlhaloso, boleng ba mananeo bo ba holimo. Joale, ke hobane’ng ha hangata re tsamaea re se na tsona? Hobane ho ngola ho thata. 'Me ho ngola ho thata, hobane bakeng sa sena u hloka ho nahana, le ho nahana ho boetse ho thata. Ho lula ho le bonolo ho iketsa seo u se nahanang. Mona o ka etsa papiso le ho matha - ha o matha hanyane, o matha butle. U hloka ho koetlisa mesifa ea hau le ho itloaetsa ho ngola. Hloka boitlhakiso.

Litlhaloso li kanna tsa fosahala. E ka 'na eaba u entse phoso kae-kae, kapa litlhoko li fetohile, kapa ho ka 'na ha hlokahala hore ho etsoe ntlafatso. Khoutu efe kapa efe eo mang kapa mang a e sebelisang e tlameha ho fetoloa, kahoo haufinyane litlhaloso ha li sa tla lumellana le lenaneo. Ha e le hantle, tabeng ena, o hloka ho ngola tlhaloso e ncha le ho ngola khoutu ka ho feletseng. Re tseba hantle hore ha ho motho ea etsang joalo. Ha e le hantle, re kopanya khoutu mme mohlomong re ntlafatsa litlhaloso. Haeba sena se tla etsahala kapele kapa hamorao, joale ke hobane'ng ha u ngola litlhaloso ho hang? Taba ea pele, bakeng sa motho ea tla hlophisa khoutu ea hau, lentsoe le leng le le leng le eketsehileng ka har'a litlhaloso le tla lekana boima ba lona ka khauta, 'me motho enoa e kanna ea ba uena. Hangata ke ikhalala ka hore ebe ha ke fumane lintlha tse lekaneng ha ke lokisa khoutu ea ka. 'Me ke ngola litlhaloso tse ngata ho feta khoutu. Ka hona, ha u hlophisa khoutu, litlhaloso li hloka ho ntlafatsoa kamehla. Taba ea bobeli, ka tokiso e 'ngoe le e' ngoe, khoutu e ntse e mpefala, ho ba thata le ho feta ho e bala le ho e boloka. Ena ke keketseho ea entropy. Empa haeba u sa qale ka lintlha tse itseng, mola o mong le o mong oo u o ngolang e tla ba tokiso, 'me khoutu e tla ba thata ho e bala ho tloha qalong.

Joalokaha ho boletsoe Eisenhower, ha ho ntoa e ileng ea hlōloa ka morero, ’me ha ho ntoa e ileng ea hlōloa ntle le morero. Mme o ne a tseba ntho kapa tse pedi ka dintwa. Ho na le maikutlo a hore ho ngola litlhaloso ke tšenyo ea nako. Ka linako tse ling sena ke 'nete,' me mosebetsi o bonolo hoo ho seng letho leo u ka nahanang ka lona. Empa u lokela ho hopola kamehla hore ha u bolelloa hore u se ke ua ngola litlhaloso, u bolelloa hore u se ke ua nahana. 'Me u lokela ho nahana ka eona nako le nako. Ho nahanisisa ka mosebetsi ha ho tiise hore u ke ke ua etsa liphoso. Joalo ka ha re tseba, ha ho motho ea qapileng lesela la boselamose, mme ho etsa mananeo ke mosebetsi o boima. Empa haeba u sa nahane ka bothata, u tiiselitsoe hore u tla etsa liphoso.

U ka bala haholoanyane ka TLA + le PlusCal webosaeteng e khethehileng, u ka ea moo ho tsoa leqepheng la ka la lapeng link tsa. Ke tsohle bakeng sa ka, ke leboha tlhokomelo ea hau.

Ka kopo hlokomela hore ena ke phetolelo. Ha u ngola litlhaloso, hopola hore mongoli a ke ke a li bala. Haeba u hlile u batla ho qoqa le mongoli, joale o tla ba sebokeng sa Hydra 2019, se tla tšoaroa ka July 11-12, 2019 St. Petersburg. Litekete li ka rekoa webosaeteng ea semmuso.

Source: www.habr.com

Eketsa ka tlhaloso