Mmemme karịrị koodu nzuzo

Mmemme karịrị koodu nzuzo

Nke a bụ akụkọ ntụgharị asụsụ Ụlọ Nzukọ Stanford. Mana tupu nke ahụ enwere okwu mmeghe dị mkpirikpi. Kedu ka e si emepụta zombies? Onye ọ bụla achọpụtala onwe ya n'ọnọdụ ebe ha chọrọ iweta enyi ma ọ bụ onye ọrụ ibe ha ruo ọkwa ha, mana ọ naghị arụ ọrụ. Ọzọkwa, "ọ naghị arụ ọrụ" ọ bụghị maka gị, mana maka ya: n'otu akụkụ nke ọnụ ọgụgụ ahụ enwere ụgwọ ọrụ nkịtị, ọrụ, na ihe ndị ọzọ, na nke ọzọ bụ mkpa iche echiche. Iche echiche adịghị mma ma na-egbu mgbu. Ọ kwụsịrị ngwa ngwa wee gaa n'ihu na-ede koodu n'ejighị ụbụrụ ya ma ọlị. Ị na-aghọta otú mgbalị ọ na-ewe iji merie ihe mgbochi nke enweghị enyemaka mmụta, na ị naghị eme ya. Nke a bụ otú e si emepụta zombies, nke yiri ka ọ ga-ekwe omume ịgwọ ọrịa, ma ọ dị ka ọ dịghị onye ga-eme nke a.

Mgbe m hụrụ nke ahụ Leslie Lamport (ee, otu enyi ahụ sitere na akwụkwọ ọgụgụ) na-abịa na Russia ma ọ naghị enye akụkọ, mana nnọkọ ajụjụ na azịza, enwere m ntakịrị ụjọ. Ọ bụrụ na Leslie bụ ọkà mmụta sayensị a ma ama n'ụwa, onye edemede nke seminal na-arụ ọrụ na kọmputa na-ekesa, ị nwekwara ike mara ya site na akwụkwọ ozi La na LaTeX - "Lamport TeX". Ihe nke abụọ na-atụ egwu bụ ihe ọ chọrọ: onye ọ bụla nke na-abịa aghaghị (n'efu kpamkpam) ṅaa ntị n'akụkọ ya ole na ole tupu oge eruo, chepụta ma ọ dịkarịa ala otu ajụjụ banyere ha, ma mgbe ahụ bịa. Ekpebiri m ịhụ ihe Lamport na-agbasa ebe ahụ - ọ dịkwa mma! Nke a bụ kpọmkwem ihe ahụ, ọgwụ njikọ anwansi maka ịgwọ zombies. A na m adọ gị aka ná ntị: ederede nwere ike gbaa ndị hụrụ usoro dị egwu n'anya nke ukwuu na ndị na-adịghị amasị ịnwale ihe ha dere.

Mgbe habrokat gasịrị, ntụgharị asụsụ nke nzukọ ọmụmụ na-amalite n'ezie. Nwee obi ụtọ ịgụ akwụkwọ!

Ọrụ ọ bụla ị na-arụ, ị ga-agarịrị usoro atọ:

  • kpebie ihe mgbaru ọsọ ị chọrọ ime;
  • kpebie otu ị ga-esi mezuo ebumnuche gị;
  • iru ihe mgbaru ọsọ gị.

Nke a na-emetụtakwa mmemme. Mgbe anyị na-ede koodu, anyị chọrọ:

  • kpebie ihe kpọmkwem mmemme kwesịrị ime;
  • chọpụta kpọmkwem otú ọ ga-esi arụ ọrụ ya;
  • dee koodu kwesịrị ekwesị.

Nzọụkwụ ikpeazụ, n'ezie, dị ezigbo mkpa, ma agaghị m ekwu maka ya taa. Kama, anyị ga-atụle abụọ ndị mbụ. Onye mmemme ọ bụla na-eme ha tupu ịmalite ọrụ. Ị naghị anọdụ ala dee ma ọ bụrụ na ị kpebiela ihe ị na-ede: ihe nchọgharị ma ọ bụ nchekwa data. Ụfọdụ echiche nke ihe mgbaru ọsọ ga-adị. Ma ị na-eche n'ezie ihe mmemme ahụ ga-eme, ma edekwala ya n'atụghị egwu na-atụ anya na koodu ahụ n'onwe ya ga-aghọ ihe nchọgharị.

Kedu otu esi echepụta koodu a tupu emee? Olee otú mgbalị anyị kwesịrị isi tinye na nke a? Ihe niile dabere n'otú nsogbu ahụ siri dị mgbagwoju anya anyị na-edozi. Ka anyị kwuo na anyị chọrọ ide usoro nkesa na-anabataghị mmejọ. N'okwu a, anyị kwesịrị iche echiche nke ọma tupu anyị anọdụ ala na koodu. Kedu ihe ma ọ bụrụ na anyị ga-achọ naanị ịbawanye ọnụọgụ integer site na 1? N'ileghachi anya na mbụ, ihe niile dị ebe a bụ ihe na-adịghị mkpa, ọ dịghịkwa echiche ọ bụla dị mkpa, ma anyị na-echeta na oke mmiri nwere ike ime. Ya mere, ọbụlagodi iji ghọta ma nsogbu dị mfe ma ọ bụ mgbagwoju anya, ị ga-ebu ụzọ chee echiche.

Ọ bụrụ na i buru ụzọ chee echiche ụzọ a ga-esi dozie nsogbu ahụ, ị ​​pụrụ izere mmejọ. Mana nke a chọrọ ka echiche gị doo anya. Iji mezuo nke a, ịkwesịrị idetu echiche gị. Ahụrụ m okwu Dick Guindon n'anya: "Mgbe ị na-ede ihe, ọdịdị na-egosi gị etu echiche gị si dị njọ." Ọ bụrụ na ideghị, naanị ị na-eche na ị na-eche. Na mkpa ka ị dee echiche gị n'ụdị nkọwa.

Nkọwapụta na-arụ ọtụtụ ọrụ, karịsịa na nnukwu ọrụ. Ma m ga-ekwu naanị banyere otu n'ime ha: ha na-enyere anyị aka iche echiche nke ọma. Iche echiche nke ọma dị ezigbo mkpa ma sie ike, yabụ anyị chọrọ enyemaka ọ bụla ebe a. Kedu asụsụ anyị kwesịrị ide nkọwa na ya? N'ozuzu, nke a bụ ajụjụ mbụ maka ndị mmemme: kedu asụsụ anyị ga-ede? Enweghị azịza ziri ezi: nsogbu ndị anyị na-edozi dị iche iche. Maka ụfọdụ ndị mmadụ, TLA+ bara uru - ọ bụ asụsụ nkọwapụta m mepụtara. Maka ndị ọzọ, ọ ka mma iji Chinese. Ihe niile dabere na ọnọdụ ahụ.

Ajụjụ dị mkpa bụ: kedu ka anyị ga-esi nweta echiche doro anya? Azịza: Anyị ga-eche echiche ka ndị ọkà mmụta sayensị. Nke a bụ ụzọ iche echiche rụworo nke ọma n'ime afọ 500 gara aga. Na sayensị anyị na-ewu ụdị mgbakọ na mwepụ nke eziokwu. Astronomy nwere ike ịbụ sayensị mbụ n'echiche siri ike nke okwu ahụ. N'ihe atụ mgbakọ na mwepụ e ji mee ihe na mbara igwe, ihe ndị dị n'eluigwe na-apụta dị ka isi ihe nwere oke, ọnọdụ na ume, ọ bụ ezie na n'eziokwu, ha bụ ihe mgbagwoju anya na ugwu na oke osimiri, ebbs na eruba. Ihe nlereanya a, dị ka ọ bụla ọzọ, e kere iji dozie ụfọdụ nsogbu. Ọ dị mma maka ikpebi ebe a ga-atụnye teliskop ma ọ bụrụ na ịchọrọ ịchọta mbara ala. Ma ọ bụrụ na ịchọrọ ịkọ ihu igwe na mbara ala a, ihe nlereanya a agaghị arụ ọrụ.

Mgbakọ na mgbakọ na mwepụ na-enye anyị ohere ikpebi njirimara nke ihe nlereanya. Na sayensị na-egosi otú ihe ndị a si metụta eziokwu. Ka anyị kwuo gbasara sayensị anyị, sayensị kọmputa. Eziokwu anyị na-arụ ọrụ bụ usoro mgbakọ na mwepụ nke ọtụtụ ụdị dị iche iche: processors, consoles game, kọmputa na-eme mmemme, na ihe ndị ọzọ. M ga-ekwu maka ịme mmemme na kọmputa, mana, n'ozuzu, nkwubi okwu ndị a niile na-emetụta usoro kọmputa ọ bụla. Na sayensị anyị, anyị na-eji ọtụtụ ụdị dị iche iche: igwe Turing, usoro ihe omume nyere iwu, na ọtụtụ ndị ọzọ.

Gịnị bụ mmemme? Nke a bụ koodu ọ bụla nwere ike ịtụle n'onwe ya. Ka anyị kwuo na anyị kwesịrị ide ihe nchọgharị. Anyị na-arụ ọrụ atọ: chepụta ihe ngosi onye ọrụ nke mmemme ahụ, wee dee eserese dị elu nke mmemme ahụ, wee dee koodu ahụ n'ikpeazụ. Ka anyị na-ede koodu ahụ, anyị na-achọpụta na anyị kwesịrị ide ederede ederede. Ebe a ọzọ anyị kwesịrị idozi nsogbu atọ: chọpụta ihe ederede ngwá ọrụ a ga-alaghachi; họrọ algọridim maka nhazi; dee koodu. Ọrụ a nwere obere ọrụ nke ya: itinye akara n'okwu n'ụzọ ziri ezi. Anyị na-edozikwa obere ọrụ a n'ime usoro atọ - dịka anyị na-ahụ, a na-emegharị ha n'ọtụtụ ọkwa.

Ka anyị lebakwuo anya na nzọụkwụ mbụ: kedu nsogbu nke mmemme ahụ na-edozi. N'ebe a, anyị na-ejikarị eme ihe mmemme dịka ọrụ na-ewe ụfọdụ ntinye ma nye ụfọdụ mmepụta. Na mgbakọ na mwepụ, a na-akọwakarị ọrụ dị ka ụzọ abụọ enyere iwu. Dịka ọmụmaatụ, a na-akọwa ọrụ squaring maka ọnụọgụ eke dị ka nhazi {<0,0>, <1,1>, <2,4>, <3,9>, ...}. Ngalaba nkọwa nke ọrụ dị otú ahụ bụ nhazi nke ihe mbụ nke ụzọ abụọ ọ bụla, ya bụ, ọnụọgụ eke. Iji kọwapụta otu ọrụ, anyị kwesịrị ịkọwa ngalaba na usoro ya.

Mana ọrụ na mgbakọ na mwepụ abụghị otu ọrụ na asụsụ mmemme. mgbakọ na mwepụ dị nnọọ mfe. Ebe ọ bụ na enweghị m oge maka ihe atụ dị mgbagwoju anya, ka anyị tụlee otu dị mfe: ọrụ dị na C ma ọ bụ usoro static na Java nke na-eweghachi onye na-ekekọrịta ọnụ ọgụgụ kasị ukwuu nke ọnụọgụ abụọ. Na nkọwapụta nke usoro a anyị ga-ede: gbakọọ GCD(M,N) maka arụmụka M и Nebe GCD(M,N) - ọrụ nke ngalaba ya bụ ọnụọgụ ọnụọgụ ọnụọgụ abụọ, yana uru nloghachi bụ ọnụọgụ kachasị ukwuu nke ekewara. M и N. Kedu ka eziokwu si atụnyere ihe nlereanya a? Ihe nlereanya a na-arụ ọrụ na integers, na C ma ọ bụ Java anyị nwere 32-bit int. Ihe nlereanya a na-enye anyị ohere ikpebi ma algọridim ziri ezi GCD, ma ọ gaghị egbochi mmejọ njupụta. Nke a ga-achọ ihe nlereanya dị mgbagwoju anya karị, nke na-enweghị oge.

Ka anyị kwuo banyere njedebe nke ọrụ dị ka ihe nlereanya. Ụfọdụ mmemme (dị ka sistemụ arụmọrụ) anaghị eweghachi otu uru maka ụfọdụ arụmụka; ha nwere ike na-aga n'ihu. Tụkwasị na nke ahụ, ọrụ ahụ dị ka ihe nlereanya adịghị mma maka nzọụkwụ nke abụọ: ịhazi otú e si edozi nsogbu ahụ. Ụdị ngwa ngwa na afụ na-agbakọ otu ọrụ, mana ha bụ algọridim dị iche iche. Ya mere, iji kọwaa ụzọ isi nweta ihe mgbaru ọsọ nke mmemme ahụ, m na-eji ihe nlereanya ọzọ, ka anyị kpọọ ya ụkpụrụ omume omume. A na-anọchi anya mmemme ahụ n'ime ya dị ka nhazi nke omume niile dị mma, nke ọ bụla, n'aka nke ya, bụ usoro nke steeti, na steeti bụ ọrụ nke ụkpụrụ na mgbanwe.

Ka anyị hụ ihe nzọụkwụ nke abụọ maka Euclidean algọridim ga-adị. Anyị kwesịrị ịgbakọ GCD(M, N). Anyị na-amalite M otú xna N otú y, wee wepụ obere mgbanwe ndị a ugboro ugboro site na nnukwu ruo mgbe ha nhata. Dịka ọmụmaatụ, ọ bụrụ M = 12na N = 18, anyị nwere ike ịkọwa omume ndị a:

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

Ma ọ bụrụ M = 0 и N = 0? Enwere ike kewaa efu site na ọnụọgụ niile, yabụ enweghị onye nkesa kacha na nke a. N'ọnọdụ a, anyị kwesịrị ịlaghachi na nzọụkwụ mbụ wee jụọ: ọ dị anyị mkpa ịgbakọ GCD maka ọnụọgụ ndị na-abụghị ezigbo? Ọ bụrụ na nke a adịghị mkpa, mgbe ahụ, naanị ị chọrọ ịgbanwe nkọwapụta.

A obere digression na arụpụtaghị ihe dị n'usoro ebe a. A na-atụkarị ya na ọnụọgụ ahịrị koodu edere kwa ụbọchị. Mana ọrụ gị bara uru karị ma ọ bụrụ na ị wepụ ọnụ ọgụgụ ahịrị ụfọdụ, n'ihi na ị nwere obere ohere maka ahụhụ. Na ụzọ kachasị mfe iji kpochapụ koodu bụ na nzọụkwụ mbụ. O nwere ike ịbụ na ị chọghị mgbịrịgba na mgbịrịgba niile ị na-achọ ime. Ụzọ kachasị mfe iji mee ka mmemme dị mfe ma chekwaa oge bụ ka ị ghara ime ihe na-ekwesịghị ime. Nzọụkwụ nke abụọ nwere ikike nke abụọ kachasị elu nke ịchekwa oge. Ọ bụrụ na ị na-atụle arụpụtaghị ihe n'usoro nke ahịrị edere, mgbe ahụ iche echiche maka otu esi arụcha ọrụ ga-eme ka ị arụpụtaghị ihe, n'ihi na ị nwere ike dozie otu nsogbu na obere koodu. Enweghị m ike ịnye ọnụ ọgụgụ ziri ezi ebe a, n'ihi na enweghị m ụzọ m ga-esi gụọ ọnụọgụ nke ahịrị ndị m na-edeghị n'ihi oge m nọrọ na nkọwapụta, ya bụ, na nke mbụ na nke abụọ. Ma anyị enweghị ike ịme nnwale ebe a, n'ihi na na nnwale anyị enweghị ikike imezu nzọụkwụ mbụ; a na-ekpebi ọrụ ahụ n'ọdịnihu.

Ọ dị mfe ileghara ọtụtụ ihe isi ike anya na nkọwapụta nke oge. Ọ nweghị ihe siri ike maka ide nkọwa siri ike maka ọrụ; Agaghị m atụle nke a. Kama, anyị ga-ekwu maka ide nkọwapụta siri ike maka omume ọkọlọtọ. Enwere usoro okwu nke na-ekwu na enwere ike ịkọwa ụdị omume ọ bụla site na iji ihe nchekwa (nchekwa) na survivability Njirimara (ndụ). Nchekwa pụtara na ọ dịghị ihe ọjọọ ga-eme, mmemme agaghị enye azịza na-ezighị ezi. Ịlanahụ ndụ pụtara na n'oge na-adịghị anya ihe ọma ga-eme, ya bụ mmemme ga-eme ngwa ngwa ma ọ bụ mgbe e mesịrị nye azịza ziri ezi. Dịka iwu, nchekwa bụ ihe ngosi dị mkpa karịa; njehie na-emekarị ebe a. Ya mere, iji chekwaa oge, agaghị m ekwu maka ịlanarị, ọ bụ ezie na ọ, n'ezie, dịkwa mkpa.

Anyị na-enweta nchekwa site na ibu ụzọ kọwaa otu steeti izizi enwere ike. Na nke abụọ, mmekọrịta na steeti niile enwere ike ime maka steeti ọ bụla. Ka anyị na-akpa àgwà ka ndị ọkà mmụta sayensị ma kọwaa steeti na mgbakọ na mwepụ. A kọwara ntọala nke steeti mbụ site na usoro, dịka ọmụmaatụ, n'ihe banyere Euclidean algọridim: (x = M) ∧ (y = N). Maka ụkpụrụ ụfọdụ M и N enwere naanị otu steeti izizi. A na-akọwa mmekọrịta ya na steeti na-esote site na usoro nke edere mgbanwe nke steeti na-esote ya na isi, na-edekwa mgbanwe nke ọnọdụ dị ugbu a na-enweghị isi. N'ihe banyere Euclidean algọridim, anyị ga na-emeso ngbanwe nke usoro abụọ, na otu n'ime ha. x bụ uru kasịnụ, na nke abụọ - y:

Mmemme karịrị koodu nzuzo

N'okwu nke mbụ, uru ọhụrụ nke y hà nhata na uru gara aga nke y, anyị na-enwetakwa uru ọhụrụ nke x site n'iwepụ obere mgbanwe site na nke ka ukwuu. N'okwu nke abụọ, anyị na-eme ihe na-abụghị.

Ka anyị laghachi na Euclidean algọridim. Ka e were ya na ọzọ M = 12, N = 18. Nke a na-akọwapụta otu ọnọdụ mbido, (x = 12) ∧ (y = 18). Anyị tinyezie ụkpụrụ ndị a na usoro dị n'elu wee nweta:

Mmemme karịrị koodu nzuzo

Nke a bụ naanị ngwọta ga-ekwe omume: x' = 18 - 12 ∧ y' = 12, ma anyị na-enweta omume: [x = 12, y = 18]. N'otu aka ahụ, anyị nwere ike kọwapụta steeti niile na omume anyị: [x = 12, y = 18] → [x = 12, y = 6] → [x = 6, y = 6].

Na steeti ikpeazụ [x = 6, y = 6] akụkụ abụọ nke okwu ahụ ga-abụ ụgha, ya mere ọ nweghị steeti ọzọ. Ya mere, anyị nwere nkọwa zuru ezu nke nzọụkwụ nke abụọ - dị ka anyị na-ahụ, nke a bụ nnọọ nkịtị mgbakọ na mwepụ, dị ka nke injinia na ndị ọkà mmụta sayensị, na ọ bụghị iju, dị ka na kọmputa sayensị.

Enwere ike ijikọta usoro abụọ a n'otu usoro nke mgbagha oge. Ọ mara mma ma dị mfe ịkọwa, mana ọ nweghị oge maka ya ugbu a. Anyị nwere ike chọọ mgbagha oge naanị maka ihe onwunwe nke ịdị ndụ; maka nchekwa ọ dịghị mkpa. Anaghị m amasị mgbagha oge dị ka nke a, ọ bụghị mgbakọ na mwepụ nkịtị, mana n'ihe banyere ịdị ndụ ọ bụ ihe ọjọọ dị mkpa.

Na Euclidean algọridim maka uru ọ bụla x и y enwere ụkpụrụ pụrụ iche x' и y', nke na-eme ka mmekọrịta ya na steeti ọzọ bụrụ eziokwu. N'ikwu ya n'ụzọ ọzọ, Euclidean algọridim bụ deterministic. Iji ṅomie algọridim na-adịghị ekpebi, ọnọdụ dị ugbu a ga-enwerịrị ọtụtụ steeti ga-ekwe omume n'ọdịnihu, na uru ọ bụla nke mgbanwe na-enweghị atụ ga-enwerịrị ọtụtụ ụkpụrụ nke mgbanwe primed ka mmekọrịta ya na steeti na-esote bụ eziokwu. Nke a esighi ike ime, mana agaghị m enye ihe atụ ugbu a.

Iji mepụta ngwá ọrụ na-arụ ọrụ, ịchọrọ mgbakọ na mwepụ nkịtị. Kedu ka esi eme nkọwapụta? Iji mee nke a, anyị ga-achọ asụsụ nkịtị, dịka ọmụmaatụ. TLA+. Nkọwapụta nke Euclidean algọridim n'asụsụ a ga-adị ka nke a:

Mmemme karịrị koodu nzuzo

Akara akara nha nha na triangle pụtara na uru dị n'aka ekpe nke akara ahụ kpebisiri ike na uru dị n'aka nri nke akara ahụ. N'ezie, nkọwapụta bụ nkọwa, n'ọnọdụ anyị nkọwa abụọ. Na nkọwapụta dị na TLA+ ịkwesịrị ịgbakwunye nkwupụta na ụfọdụ syntax, dị ka ọ dị na slide n'elu. Na ASCII ọ ga-adị ka nke a:

Mmemme karịrị koodu nzuzo

Dị ka ị pụrụ ịhụ, ọ dịghị ihe mgbagwoju anya. Enwere ike ịnwapụta nkọwapụta na TLA +, ya bụ, ọ ga-ekwe omume ịgafe omume niile nwere ike na obere ụdị. N'ọnọdụ anyị, ihe nlereanya a ga-abụ ụkpụrụ ụfọdụ M и N. Nke a bụ usoro nkwenye dị irè ma dị mfe nke na-akpaghị aka. Tụkwasị na nke a, ọ ga-ekwe omume ịde ihe akaebe nke eziokwu ma lelee ha n'ụzọ igwe, ma nke a na-ewe oge buru ibu, ya mere ọ fọrọ nke nta ka ọ bụrụ na ọ dịghị onye na-eme nke a.

Isi mwepu nke TLA + bụ na ọ bụ mgbakọ na mwepụ, na ndị mmemme na ndị sayensị kọmputa na-atụ egwu mgbakọ na mwepụ. Na ilele mbụ nke a dị ka egwuregwu, ma, ọ dị mwute ikwu, m na-ekwu nke a na ihe niile dị mkpa. Otu onye ọrụ ibe m na-agwa m ka o siri nwaa ịkọwara TLA + ọtụtụ ndị mmepe. Ozugbo usoro ndị ahụ pụtara na ihuenyo, anya ha ghọrọ enyo ozugbo. Yabụ ọ bụrụ na TLA + dị egwu, ịnwere ike iji PlusCal, bụ ụdị asụsụ mmemme ụmụaka ụmụaka. Okwu dị na PlusCal nwere ike ịbụ okwu TLA+ ọ bụla, ya bụ, n'ụzọ bụ isi okwu mgbakọ na mwepụ ọ bụla. Na mgbakwunye, PlusCal nwere syntax maka algọridim na-abụghị deterministic. N'ihi na PlusCal nwere ike dee okwu TLA+ ọ bụla, ọ na-egosipụta nke ọma karịa asụsụ mmemme ọ bụla. Na-esote, a na-achịkọta PlusCal ka ọ bụrụ nkọwa TLA+ dị mfe ịgụ. Nke a apụtaghị na nkọwapụta PlusCal dị mgbagwoju anya ga-aghọ nke dị mfe na TLA + - naanị na akwụkwọ ozi dị n'etiti ha doro anya, enweghị mgbagwoju anya ọzọ ga-apụta. N'ikpeazụ, enwere ike nyochaa nkọwapụta a site na iji ngwaọrụ TLA +. N'ozuzu, PlusCal nwere ike inye aka imeri phobia nke mgbakọ na mwepụ; ọ dị mfe nghọta ọbụna maka ndị mmemme na ndị ọkà mmụta sayensị kọmputa. M bipụtara algọridim na ya ruo oge ụfọdụ (ihe dị ka afọ 10) n'oge gara aga.

Ikekwe mmadụ ga-ajụ na TLA+ na PlusCal bụ mgbakọ na mwepụ, na mgbakọ na mwepụ na-arụ ọrụ na-eji ihe atụ emebere. Na omume, ịchọrọ ezigbo asụsụ nwere ụdị, usoro, ihe na ihe ndị ọzọ. Nke a adịghị mma. Nke a bụ ihe Chris Newcomb, onye na-arụ ọrụ na Amazon, dere: "Anyị ejirila TLA + rụọ ọrụ iri buru ibu, na n'ọnọdụ ọ bụla ojiji ya mere mgbanwe dị ukwuu na mmepe n'ihi na anyị nwere ike ijide ahụhụ dị ize ndụ tupu ha ebute mmepụta, yana n'ihi na o nyere anyị nghọta na obi ike anyị kwesịrị ime ihe ike. njikarịcha arụmọrụ na-emetụtaghị eziokwu nke mmemme ahụ". Ị nwere ike ịnụ mgbe mgbe na mgbe ị na-eji usoro iwu, anyị na-enweta koodu na-adịghị arụ ọrụ - na omume, ihe niile bụ ihe dị iche. Na mgbakwunye, enwere echiche na ndị njikwa enweghị ike ikwenye na ọ dị mkpa maka usoro iwu, ọ bụrụgodị na ndị mmemme kwenyesiri ike na ha bara uru. Na Newcomb dee: "Ndị isi na-agbali ugbu a n'ụzọ ọ bụla enwere ike ide nkọwa na TLA +, ma na-ekenye oge maka nke a.". Yabụ mgbe ndị njikwa hụrụ na TLA+ na-arụ ọrụ, ha na-anabata ya. Chris Newcomb dere nke a ihe dị ka ọnwa isii gara aga (October 2014), ma ugbu a, dị ka m maara, TLA + na-eji na 14 oru, ọ bụghị 10. Ihe atụ ọzọ metụtara imewe nke XBox 360. Otu onye ọrụ bịara Charles Thacker na dere nkọwapụta maka usoro ebe nchekwa. N'ihi nkọwapụta a, achọpụtara ahụhụ nke agaraghị achọpụta ma ọ ga-eme ka XBox 360 ọ bụla daa mgbe awa anọ ejiri ya. Ndị injinia sitere na IBM kwadoro na ule ha agaraghị achọpụta ahụhụ a.

Ị nwere ike ịgụtakwu gbasara TLA+ na ịntanetị, mana ugbu a, ka anyị kwuo maka nkọwa ndị na-abụghị eziokwu. Ọ na-esiri anyị ike ide mmemme na-agbakọ nkesa kacha nta na ihe ndị yiri ya. Ọtụtụ mgbe, anyị na-ede mmemme dị ka ngwa nbipute mara mma nke m dere maka TLA +. Mgbe nhazi kachasị mfe, koodu TLA + ga-adị ka nke a:

Mmemme karịrị koodu nzuzo

Mana n'ihe atụ dị n'elu, o yikarịrị ka onye ọrụ chọrọ ka ejikọta njikọ na akara nha nhata. Yabụ na nhazi nke ọma ga-adị ka nke a:

Mmemme karịrị koodu nzuzo

Ka anyị tụlee ihe atụ ọzọ:

Mmemme karịrị koodu nzuzo

N'ebe a, n'ụzọ megidere nke ahụ, nhazi nke akara akara nha anya, mgbakwunye na ịba ụba na isi iyi bụ enweghị usoro, ya mere nhazi kachasị mfe zuru oke. N'ozuzu, ọ dịghị nkọwa mgbakọ na mwepụ kpọmkwem nke nhazi nhazi ziri ezi, n'ihi na "zie ezie" na nke a pụtara "ihe onye ọrụ chọrọ," na nke a enweghị ike ikpebi na mgbakọ na mwepụ.

Ọ ga-adị ka ọ bụrụ na anyị enweghị nkọwa nke eziokwu, mgbe ahụ nkọwapụta abaghị uru. Mana nke ahụ abụghị eziokwu. Naanị n'ihi na anyị amaghị ihe mmemme kwesịrị ime apụtaghị na anyị ekwesịghị iche echiche banyere otú o kwesịrị isi na-arụ ọrụ—n'ụzọ megidere nke ahụ, anyị kwesịrị itinyekwu mgbalị na ya. Nkọwapụta dị mkpa karịsịa ebe a. Ọ gaghị ekwe omume ikpebi usoro kachasị mma maka mbipụta ahaziri ahazi, ma nke a apụtaghị na anyị ekwesịghị ime ya ma ọlị, na koodu ederede dị ka iyi nke nsụhọ abụghị ikpe. Emechara m dee nkọwapụta nke iwu isii nwere nkọwa n'ụdị nkọwa na faịlụ Java. Nke a bụ ọmụmaatụ nke otu iwu: a left-comment token is LeftComment aligned with its covering token. Edere iwu a n'ime, ka anyị kwuo, mgbakọ na mwepụ Bekee: LeftComment aligned, left-comment и covering token - okwu na nkọwa. Otu a ka ndị ọkachamara mgbakọ na mwepụ si akọwa mgbakọ na mwepụ: ha na-ede nkọwa nke okwu na, dabere na ha, na-emepụta iwu. Uru nke nkọwapụta a bụ na iwu isii dị mfe nghọta na imezi karịa ahịrị koodu 850. Ekwesịrị m ịsị na ide iwu ndị a adịghị mfe; ọ were ogologo oge iji mebie ha. Edere m koodu kpọmkwem maka ebumnuche a nke gwara m iwu a na-eji. N'ihi na ejiri m atụ ole na ole nwalee iwu isii ndị a, ekwesighi m ịmegharị ahịrị koodu 850, na ahụhụ ndị ahụ dị mfe ịchọta. Java nwere nnukwu ngwaọrụ maka nke a. Ọ bụrụ na m ka edere koodu ahụ, ọ ga-ewe m ogologo oge na nhazi ahụ gaara adịkwa mma.

Gịnị kpatara na-enweghị ike iji nkọwapụta? N'otu aka ahụ, ogbugbu ziri ezi adịghị oke mkpa ebe a. Mbipụta ahaziri ahazi agaghị eme ụfọdụ ndị afọ, yabụ na agaghị m enweta ya ka ọ rụọ ọrụ nke ọma n'ọnọdụ niile pụrụ iche. Ọbụna nke ka mkpa bụ eziokwu ahụ bụ na enweghị m ngwá ọrụ zuru ezu. Ihe nlele TLA+ abaghị uru ebe a, yabụ m ga-eji aka dee ihe atụ.

Nkọwapụta enyere nwere njiri mara nkọwapụta niile. Ọ dị elu karịa koodu. Enwere ike itinye ya n'asụsụ ọ bụla. Enweghị ngwá ọrụ ma ọ bụ ụzọ e si ede ya. Ọ nweghị usoro mmemme ga-enyere gị aka ide nkọwapụta a. Enweghị ngwaọrụ ndị nwere ike ime nkọwapụta a adịghị mkpa, ọ gwụla ma ị na-ede asụsụ kpọmkwem maka ide mmemme mbipụta ahaziri ahazi na TLA+. N'ikpeazụ, nkọwapụta a ekwughị ihe ọ bụla gbasara otu anyị ga-esi dee koodu ahụ, ọ na-ekwu naanị ihe koodu ahụ na-eme. Anyị na-ede nkọwapụta iji nyere anyị aka iche echiche banyere nsogbu ahụ tupu anyị amalite iche echiche banyere koodu ahụ.

Mana nkọwapụta a nwekwara atụmatụ ndị na-eme ka ọ dị iche na nkọwapụta ndị ọzọ. 95% nke nkọwa ndị ọzọ dị mkpụmkpụ ma dị mfe:

Mmemme karịrị koodu nzuzo

Ọzọkwa, nkọwapụta a bụ usoro iwu. Nke a na-abụkarị ihe ịrịba ama nke nkọwa adịghị mma. Ịghọta ihe ga-esi na otu usoro iwu pụta bụ ihe siri ike, nke mere na m ga-eji oge dị ukwuu na-ehichapụ ha. Agbanyeghị, na nke a enweghị m ike ịchọta ụzọ ka mma.

Ọ bara uru ikwu okwu ole na ole gbasara mmemme na-aga n'ihu. Ha na-arụ ọrụ n'otu n'otu, dị ka sistemu arụ ọrụ ma ọ bụ sistemu ekesa. Ọ bụ mmadụ ole na ole nwere ike ịghọta ha n'uche ma ọ bụ n'akwụkwọ, ma abụghị m otu n'ime ha, ọ bụ ezie na enwere m ike ime ya. Ya mere, anyị chọrọ ngwaọrụ ga-elele ọrụ anyị - dịka ọmụmaatụ, TLA+ ma ọ bụ PlusCal.

Kedu ihe kpatara m jiri dee nkọwapụta ma ọ bụrụ na amatala m ihe koodu kwesịrị ime? N'ezie, naanị m chere na m maara ya. Na mgbakwunye, na nkọwapụta na ebe, onye si mba ọzọ adịghịzi mkpa ileba anya na koodu ahụ iji ghọta ihe ọ na-eme. Enwere m iwu: e kwesịghị inwe iwu izugbe. Enwere ihe dị iche na iwu a n'ezie, nke a bụ naanị iwu izugbe m na-agbaso: nkọwapụta nke koodu ahụ kwesịrị ịgwa ndị mmadụ ihe niile ha kwesịrị ịma mgbe ha na-eji koodu ahụ.

Yabụ kedu ihe ndị mmemme kwesịrị ịma gbasara iche echiche? Iji malite, otu ihe ahụ dị ka onye ọ bụla: ọ bụrụ na ị naghị ede ihe, mgbe ahụ ọ na-adị gị ka ị na-eche echiche. Ọzọkwa, i kwesịrị iche echiche tupu i tinye koodu, nke pụtara na ị ga-ede tupu ị koodu. Nkọwapụta bụ ihe anyị na-ede tupu anyị amalite koodu. Achọrọ nkọwapụta maka koodu ọ bụla nke onye ọ bụla nwere ike iji ma ọ bụ gbanwee. Na "onye" a nwere ike ịbụ onye dere koodu ahụ otu ọnwa ka edechara ya. Achọrọ nkọwapụta maka nnukwu mmemme na sistemụ, maka klaasị, maka ụzọ, na mgbe ụfọdụ ọbụna maka akụkụ dị mgbagwoju anya nke otu usoro. Kedu ihe ị ga-ede maka koodu ahụ? Ịkwesịrị ịkọwa ihe ọ na-eme, ya bụ, ihe nwere ike ịba uru nye onye ọ bụla na-eji koodu a. Mgbe ụfọdụ, ọ nwekwara ike ịdị mkpa ịkọwapụta kpọmkwem ka koodu ahụ si emezu ebumnuche ya. Ọ bụrụ na anyị gafere usoro a na usoro algọridim, mgbe ahụ anyị na-akpọ ya algọridim. Ọ bụrụ na ọ bụ ihe ọzọ pụrụ iche na ọhụrụ, mgbe ahụ, anyị na-akpọ ya elu-larịị imewe. Ọ dịghị ihe dị iche ebe a: ha abụọ bụ abstract ụdị nke mmemme.

Kedu otu ị ga-esi dee nkọwapụta koodu? Isi ihe: ọ kwesịrị ịbụ otu ọkwa dị elu karịa koodu n'onwe ya. Ọ ga-akọwarịrị steeti na omume. O kwesịrị ka ọ siri ike dịka ọrụ ahụ chọrọ. Ọ bụrụ na ị na-ede nkọwapụta nke otu esi etinye ọrụ, enwere ike dee ya na pseudocode ma ọ bụ jiri PlusCal. Ịkwesịrị ịmụta ide nkọwa site na iji nkọwapụta. Nke a ga-enye gị nkà ndị dị mkpa nke ga-enyere aka na ndị na-abụghị ndị nkịtị. Kedu ka ị ga-esi mụta ide nkọwapụta? Mgbe anyị mụtara usoro ihe omume, anyị na-ede mmemme wee debugharịa ha. Otu ihe ebe a: ịkwesịrị ide nkọwapụta, lelee ya na nlele ihe nlele, wee dozie njehie ahụ. TLA+ nwere ike ọ gaghị abụ asụsụ kacha mma maka nkọwapụta, yana asụsụ ọzọ ga-adabara gị mma maka mkpa gị. Ihe ukwu gbasara TLA+ bụ na ọ na-arụ nnukwu ọrụ nke nkuzi echiche mgbakọ na mwepụ.

Otu esi ejikọta nkọwapụta na koodu? Iji nkọwa na-ejikọta echiche mgbakọ na mwepụ na mmejuputa ha. Ọ bụrụ na ị na-arụ ọrụ na eserese, mgbe ahụ na ọkwa mmemme ị ga-enwe ọnụ ọgụgụ dị iche iche na njikọ njikọ. Ya mere, ị ga-ede otú kpọmkwem eserese na-emejuputa atumatu site na mmemme mmemme ndị a.

Ekwesiri iburu n'uche na ọ dịghị nke ọ bụla n'ime ihe ndị a dị n'elu na-emetụta usoro nke ide koodu n'onwe ya. Mgbe ị na-ede koodu, ya bụ, mee nzọụkwụ nke atọ, ịkwesịrị iche echiche ma chee echiche site na mmemme ahụ. Ọ bụrụ na obere ọrụ apụta na ọ gbagwojuru anya ma ọ bụ na ọ pụtaghị ìhè, ịkwesịrị idepụta nkọwapụta maka ya. Mana anaghị m ekwu maka koodu n'onwe ya ebe a. Ị nwere ike iji asụsụ mmemme ọ bụla, usoro ọ bụla, nke a abụghị maka ha. Ọzọkwa, ọ dịghị nke ọ bụla n'ime ihe ndị a dị n'elu na-ewepụ mkpa iji nwalee na debug koodu gị. Ọbụlagodi na edere ihe nlere anya nke ọma, enwere ike inwe ahụhụ na mmejuputa ya.

Nkọwapụta ederede bụ nzọụkwụ ọzọ na usoro ntinye akwụkwọ. Ekele maka ya, enwere ike ijide ọtụtụ njehie na obere mgbalị - anyị maara nke a site na ahụmahụ nke ndị mmemme sitere na Amazon. Na nkọwapụta, àgwà nke mmemme na-adị elu. Yabụ kedu ihe kpatara na anyị na-agakarị n'enweghị ha? N'ihi na ide ihe siri ike. Ma ide ihe siri ike, n'ihi na maka nke a ịkwesịrị iche echiche, na iche echiche dịkwa ike. Ọ na-adị mfe mgbe niile ime ka à ga-asị na ị na-eche echiche. Enwere ike ịdọrọ ihe atụ ebe a na ịgba ọsọ - ka ị na-agba ọsọ, ka ị na-agba ọsọ nwayọọ. Ịkwesịrị ịzụ mọzụlụ gị ma na-agụ akwụkwọ. Ọ na-ewe omume.

Nkọwapụta ahụ nwere ike ezighi ezi. O nwere ike ịbụ na ị mehiere ebe, ma ọ bụ ihe ndị a chọrọ nwere ike gbanwee, ma ọ bụ ọ dị mkpa ka emelite ya. Ekwesịrị ịgbanwe koodu ọ bụla onye ọ bụla na-eji, yabụ n'oge na-adịghị anya nkọwapụta ahụ agaghị adaba na mmemme ahụ. Dị ka o kwesịrị, na nke a, ịkwesịrị ide nkọwapụta ọhụrụ ma degharịa koodu ahụ kpamkpam. Anyị maara nke ọma na ọ dịghị onye na-eme nke a. Na omume, anyị na-akwachi koodu ahụ ma eleghị anya imelite nkọwapụta. Ọ bụrụ na nke a ga-eme ngwa ngwa ma ọ bụ mechaa, gịnị kpatara ịde nkọwapụta ma ọlị? Nke mbụ, maka onye ga-edezi koodu gị, okwu ọ bụla agbakwunyere na nkọwapụta ga-aba uru na ọla edo, onye a nwere ike ịbụ gị. M na-agbakarị onwe m ụkwụ n'ihi enweghị ike ịkọwapụta nke ọma mgbe m dezie koodu m. M na-edekwa nkọwapụta karịa koodu. Ya mere, mgbe ị dezie koodu ahụ, nkọwapụta ahụ kwesịrị ka emelite ya mgbe niile. Nke abuo, na onye ọ bụla dezie koodu na-akawanye njọ, ọ na-esiwanye ike ịgụ na idobe. Nke a bụ mmụba nke entropy. Mana ọ bụrụ na ibidoghị nkọwapụta, ahịrị ọ bụla ị na-ede ga-abụ ndezi, koodu ahụ ga-adịkwa ukwuu ma sie ike ịgụ site na mmalite.

Dị ka e kwuru Eisenhower, Ọ dịghị agha e meriri dị ka atụmatụ si dị, ọ dịghịkwa agha e meriri na-enweghị atụmatụ. Ọ makwa ihe banyere agha. Enwere echiche na ide nkọwapụta bụ igbu oge. Mgbe ụfọdụ, nke a bụ eziokwu, na ọrụ ahụ dị nnọọ mfe nke na ọ dịghị uru na-eche echiche. Ma ị kwesịrị icheta mgbe niile na mgbe a gwara gị ka ị ghara ide nkọwa, ọ pụtara na a gwara gị ka ị ghara iche echiche. Na ị kwesịrị ị na-eche banyere nke a mgbe ọ bụla. Iche echiche site na ọrụ anaghị ekwe nkwa na ị gaghị emehie ihe. Dị ka anyị maara, ọ dịghị onye chepụtara a anwansi wand, na mmemme bụ ọrụ siri ike. Ma ọ bụrụ na ị cheghị echiche site na ọrụ ahụ, ị ​​ga-emehie ihe.

Ị nwere ike ịgụkwu gbasara TLA+ na PlusCal na webụsaịtị pụrụ iche, ị nwere ike ịga ebe ahụ site na ibe m njikọ. Nke ahụ bụ naanị m, daalụ maka nlebara anya gị.

Biko cheta na nke a bụ ntụgharị asụsụ. Mgbe ị na-ede nkọwa, cheta na onye edemede agaghị agụ ha. Ọ bụrụ n'ezie na ịchọrọ ịkparịta ụka na onye edemede, ọ ga-anọ na ogbako Hydra 2019, nke a ga-eme na July 11-12, 2019 na St. Petersburg. Enwere ike ịzụta tiketi na weebụsaịtị.

isi: www.habr.com

Tinye a comment