Polokalama e sili atu nai lo coding

Polokalama e sili atu nai lo coding

O se fa'aliliuga tala lea Semina a Stanford. Ae muamua atu o loʻo i ai se faʻamatalaga puupuu. E faʻafefea ona fausia ni zombies? Ua maua e tagata uma i latou lava i se tulaga latou te mananaʻo e aumai se uo poʻo se paaga i luga o latou tulaga, ae e le aoga. E le gata i lea, "e le aoga" e le tele naua mo oe, ae mo ia: i le tasi itu o le fua o loʻo i ai se totogi masani, galuega, ma isi mea, ma le isi o le manaʻoga e mafaufau. O le mafaufau e le manaia ma tiga. E vave lava ona fiu ma faaauau ona tusia le code e aunoa ma le faaaogaina o lona faiʻai. E te iloa le tele o taumafaiga e manaʻomia e foʻia ai le papupuni o le leai o se fesoasoani aʻoaʻoina, ma e te le faia lava. O le auala lea e fausia ai zombies, e foliga mai e mafai ona togafitia, ae foliga mai e leai se tasi na te faia lenei mea.

Ina ua ou vaai i lena mea Leslie Lamport (ioe, o lena lava uo mai tusi aoga) e sau i Rusia ma e le o tuuina atu se lipoti, ae o se fesili-ma-tali, sa fai si ou mataala. I le tulaga lava, o Leslie o se saienitisi lauiloa i le lalolagi, o le tusitala o semina e galue i le tufatufaina atu o komepiuta, ma e mafai foi ona e iloa o ia i mataitusi La i LaTeX - "Lamport TeX". O le mea fa'amata'u lona lua o lona mana'oga: e tatau i tagata uma e sau (e leai se totogi) fa'alogo muamua i ni ana lipoti, fai a itiiti ifo ma le tasi le fesili e uiga ia i latou, ona sau ai lea. Na ou filifili e vaʻai i le mea o loʻo faʻasalalau e Lamport iina - ma e manaia! O le mea tonu lava lea, o se piliki feso'ota'iga mo le togafitia o zombies. Ou te lapatai atu ia te oe: o le tusitusiga e mafai ona matua susunuina i latou e fiafia i metotia sili-agile ma e le fiafia e suʻe mea na latou tusia.

A maeʻa le habrokat, o le faaliliuga o le semina e amata moni lava. Fiafia faitau!

Po o le a lava le galuega e te faia, e tatau lava ona e uia laasaga e tolu:

  • filifili po o le a le sini e te manao e ausia;
  • filifili pe o le a tonu lou ausia o lau sini;
  • ausia lau sini.

E fa'aoga foi lea i polokalame. A matou tusia le code, matou te manaʻomia:

  • filifili le mea tonu e tatau ona fai e le polokalame;
  • fuafua tonu pe faapefea ona faatino lana galuega;
  • tusi le code talafeagai.

O le laasaga mulimuli, ioe, e taua tele, ae o le a ou le talanoa i ai i le aso. Nai lo o lea, o le a tatou talanoaina mea muamua e lua. E fa'atino e tagata fai polokalame uma a'o le'i amata galue. E te le nofo i lalo e tusi se'i vagana ua e filifili mea o lo'o e tusia: o se su'esu'ega po'o se fa'amaumauga. E tatau ona i ai se manatu patino o le sini. Ma e mautinoa lava e te mafaufau i le mea tonu o le a faia e le polokalama, ma aua le tusia faʻafuaseʻi i le faʻamoemoe o le code lava ia o le a avea ma se suʻesuʻega.

E fa'afefea tonu ona tupu lenei mua'i mafaufau i le tulafono? O le a le tele o taumafaiga e tatau ona tatou faia i lenei mea? E faalagolago uma lava i le lavelave o le faafitauli o loo tatou foia. Fa'apea tatou te manana'o e tusi se faiga fa'apalepale fa'aletonu. I lenei tulaga, e tatau ona tatou mafaufau lelei i mea aʻo leʻi nofo i lalo e faʻailoga. Ae fa'afefea pe a na'o le mana'omia o le fa'aopoopoina o se fesuiaiga integer i le 1? I le tepa muamua, o mea uma iinei e le taua ma e leai se manatu e manaʻomia, ae tatou manatua e mafai ona tupu se tafe. O le mea lea, e tusa lava pe mafai ona e malamalama pe faigofie pe faigata se faʻafitauli, e tatau ona e mafaufau muamua.

Afai e te mafaufau muamua i fofo talafeagai i se faafitauli, e mafai ona e aloese mai mea sese. Ae o lenei mea e manaʻomia ai lou mafaufau ia manino. Ina ia ausia lenei mea, e tatau ona e tusi i lalo ou manatu. Ou te fiafia i le upusii a Dick Guindon: "A e tusitusi, e faʻaalia e le natura le faʻavalevalea o ou mafaufauga." Afai e te le tusitusi, e te manatu e te mafaufau. Ma e tatau ona e tusi i lalo ou manatu i le tulaga o faʻamatalaga.

O faʻamatalaga e tele galuega, aemaise lava i galuega tetele. Ae o le a na o se tasi o ia mea o le a ou talanoa atu ai: latou te fesoasoani ia tatou mafaufau manino. O le mafaufau manino e taua tele ma fai si faigata, o lea matou te manaʻomia ai se fesoasoani iinei. O le a le gagana e tatau ona tatou tusia ai fa'amatalaga? I se tulaga lautele, o le fesili muamua lava lea mo tagata fai polokalame: o le a le gagana o le a tatou tusia ai? E leai se tali sao e tasi: o faafitauli tatou te foia e matua eseese. Mo nisi tagata, TLA + o se gagana faʻapitoa na ou atiaʻe. Mo isi, e sili atu ona faigofie le faʻaaogaina o le Saina. E faalagolago uma i le tulaga.

O le fesili e sili atu ona taua o le: e mafai faapefea ona tatou maua se manatu manino? Tali: E tatau ona tatou mafaufau e pei o saienitisi. O se auala lea o le mafaufau na aoga lelei i le 500 tausaga talu ai. I le saienisi tatou te fausia faʻataʻitaʻiga matematika o mea moni. Atonu o le suʻesuʻega muamua lea i le uiga saʻo o le upu. I le fa'ata'ita'iga fa'a-matematika o lo'o fa'aaogaina i su'esu'ega vateatea, o tino fa'alelesitila e foliga mai o ni togi ma le mamafa, tulaga ma le malosi, e ui lava o le mea moni o ni mea fa'alavelave tele ma mauga ma vasa, ebbs ma tafe. O lenei faʻataʻitaʻiga, pei o isi, na faia e foia ai nisi o faʻafitauli. E lelei tele mo le fuafuaina po'o fea e fa'asino i ai se va'aiga mamao pe a e mana'o e su'e se paneta. Ae afai e te manaʻo e vaʻai le tau i luga o lenei paneta, o le a le aoga lenei faʻataʻitaʻiga.

Mathematics e mafai ai ona tatou fuafuaina mea totino o se faʻataʻitaʻiga. Ma o le faasaienisi o loʻo faʻaalia pe faʻafefea ona fesoʻotaʻi nei meatotino ma mea moni. Sei o tatou talanoa e uiga i la tatou saienisi, computer science. O le mea moni matou te galulue ai o faiga faakomepiuta o le tele o ituaiga eseese: processors, faʻamafanafanaga taʻaloga, komepiuta e faʻatautaia polokalame, ma isi. O le a ou talanoa e uiga i le faʻatinoina o se polokalame i luga o se komepiuta, ae, i le lautele, o nei faʻaiuga uma e faʻaoga i soʻo se faiga komepiuta. I la matou saienisi matou te faʻaogaina le tele o faʻataʻitaʻiga eseese: le Turing machine, faʻatonu vaega o mea na tutupu, ma le tele o isi.

O le a le polokalame? O soʻo se code lea e mafai ona mafaufauina e ia lava. Fa'apea e tatau ona tatou tusia se su'esu'ega. Matou te faia ni galuega se tolu: mamanu le faʻaaliga a le tagata faʻaoga o le polokalame, ona tusi lea o le ata maualuga o le polokalame, ma mulimuli ane tusi le code. A o matou tusia le code, matou te iloa e tatau ona matou tusia se faʻasologa o tusitusiga. O iinei foi e tatau ona tatou foia ai ni faafitauli se tolu: fuafua po o le a le tusitusiga o le a toe faafoi mai e lenei meafaigaluega; filifili se algorithm mo le faʻatulagaina; tusi code. O lenei galuega e iai lana lava galuega laiti: fa'aofi sa'o i upu fa'aoga. Matou te fo'ia fo'i lenei la'asaga e tolu - e pei ona matou va'ai, e toe faia i le tele o tulaga.

Sei o tatou tilotilo totoa i le laasaga muamua: o le a le faafitauli e foia e le polokalame. O iinei e masani ona matou faʻataʻitaʻia ai se polokalame e avea o se galuega e manaʻomia ai ni mea e tuʻuina atu ma tuʻuina atu ai nisi gaioiga. I le matematika, o se galuega e masani ona faʻamatalaina o se seti faʻatonuga o paga. Mo se fa'ata'ita'iga, o le galuega fa'atafafā mo numera fa'anatura ua fa'amatalaina o le seti {<0,0>, <1,1>, <2,4>, <3,9>, …}. Ole vaega ole fa'amalamalamaga o sea galuega ole seti o elemene muamua o paga ta'itasi, o lona uiga, numera masani. Ina ia faʻamalamalamaina se galuega, e manaʻomia ona tatou faʻamaonia lona vaega ma le fua.

Ae o galuega i le matematika e le tutusa ma galuega i gagana polokalame. E sili atu ona faigofie le numera. Talu ai e leai soʻu taimi mo faʻataʻitaʻiga lavelave, seʻi o tatou mafaufau i se mea faigofie: o se galuega i le C poʻo se auala faʻapitoa i Java e toe faʻafoʻi ai le vaeluaga masani sili o numera lua. I le faʻamatalaga o lenei metotia o le a matou tusia: faʻatatau GCD(M,N) mo finauga M и Nfea GCD(M,N) - o se galuega o lona vaega o se seti o paga o numera, ma o le tau toe faafoi o le numera aupito tele lea e vaevaeina e M и N. E fa'apefea ona fa'atusatusa le mea moni i lenei fa'ata'ita'iga? O le faʻataʻitaʻiga o loʻo galue faʻatasi ma numera, ma i C poʻo Java tatou te maua le 32-bit int. O lenei faʻataʻitaʻiga e mafai ai ona tatou filifili pe saʻo le algorithm GCD, ae o le a le taofia ai le tele o mea sese. O lenei mea o le a manaʻomia ai se faʻataʻitaʻiga sili atu ona faigata, lea e leai se taimi.

Sei o tatou talanoa e uiga i tapulaa o le galuega o se faataitaiga. O nisi polokalame (e pei o faiga fa'aoga) e le na'o le toe fa'afo'iina mai o se tau fa'apitoa mo nisi finauga; e mafai ona fa'aauau pea. E le gata i lea, o le galuega o se faʻataʻitaʻiga e le fetaui mo le laasaga lona lua: fuafua pe faʻafefea ona foia le faʻafitauli. O le Quicksort ma le bubble sort e fa'atatauina le galuega lava e tasi, ae e matua 'ese'ese lava algorithms. O le mea lea, e faʻamatala ai le auala e ausia ai le sini o le polokalame, ou te faʻaaogaina se isi faʻataʻitaʻiga, seʻi o tatou taʻua o le faʻataʻitaʻiga masani. O le polokalame o loʻo faʻatusalia i totonu o se seti o amioga aoga uma, o ia mea taʻitasi, i le isi itu, o se faasologa o setete, ma o le setete o le tuʻuina atu o tau i fesuiaiga.

Se'i o tatou va'ai pe fa'apei le la'asaga lona lua mo le Euclidean algorithm. E tatau ona tatou fuafua GCD(M, N). Matou te amataina M auala xma N auala y, ona toe toesea lea o le laititi o nei fesuiaiga mai le lapopoa seia tutusa. Mo se faataitaiga, afai M = 12ma N = 18, e mafai ona tatou fa'amatalaina amioga nei:

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

Ma afai M = 0 и N = 0? O le Zero e vaevaeina e numera uma, o lea e leai se vaeluaga sili i lenei tulaga. I lenei tulaga, e tatau ona tatou toe foʻi i le laʻasaga muamua ma fesili: e manaʻomia moni ea le faʻatatauina o le GCD mo numera le lelei? Afai e le manaʻomia lenei mea, ona e manaʻomia lea ona sui le faʻamatalaga.

O lo'o fa'atulagaina se fa'asologa puupuu i luga ole gaosiga iinei. E masani ona fuaina i le numera o laina faʻailoga e tusia i le aso. Ae e sili atu le aoga o lau galuega pe afai e te faʻaumatia se numera o laina, aua e itiiti se avanoa mo bugs. Ma o le auala pito sili ona faigofie e aveese ai le code o loʻo i le laasaga muamua. Atonu e te le mana'omia uma logo ma faaili o lo'o e taumafai e fa'atino. O le auala sili ona vave e faafaigofie ai se polokalame ma sefe le taimi o le le faia lea o mea e le tatau ona fai. O le laasaga lona lua o loʻo i ai le maualuga lona lua e mafai ona faʻasaoina taimi. Afai e te fuaina le gaosiga i tulaga o laina tusia, ona e mafaufau lea pe faʻapefea ona faʻamaeʻaina se galuega e te faia itiiti fua, aua e mafai ona e foia le faafitauli lava e tasi ma le itiiti ifo code. E le mafai ona ou tuʻuina atu faʻamaumauga saʻo iinei, aua e leai saʻu auala e faitau ai le numera o laina ou te leʻi tusia ona o le taimi na ou faʻaaluina i le faʻamatalaga, o lona uiga, i le laasaga muamua ma le lua. Ma e le mafai foi ona matou faia se faʻataʻitaʻiga iinei, aua i se faʻataʻitaʻiga e leai sa matou aia tatau e faʻamaeʻa ai le laasaga muamua; o le galuega ua fuafuaina muamua.

E faigofie ona le amanaiaina le tele o faigata i faʻamatalaga faʻapitoa. E leai se mea faigata i le tusiaina o faʻamatalaga faʻapitoa mo galuega; O le a ou le talanoaina lenei mea. Ae, o le a tatou talanoa e uiga i le tusiaina o faʻamatalaga malosi mo amioga masani. O lo'o i ai se fa'ata'ita'iga e ta'u mai ai so'o se seti o amioga e mafai ona fa'amatalaina i le fa'aogaina o le meatotino saogalemu (saogalemu) ma meatotino fa'aola (ola). O le saogalemu o lona uiga e leai se mea leaga e tupu, o le a le tuʻuina atu e le polokalama se tali sese. O le fa'aolaola o lona uiga e vave pe mulimuli ane o le a tupu se mea lelei, o lona uiga o le polokalama o le a vave pe mulimuli ane tu'uina atu le tali sa'o. I le avea ai o se tulafono, o le saogalemu o se faailoga sili atu ona taua; o mea sese e masani ona tupu iinei. O le mea lea, ina ia faʻasaoina le taimi, o le a ou le talanoa e uiga i le ola, e ui lava, ioe, e taua foi.

Matou te ausia le saogalemu e ala i le faʻamaonia muamua o se seti o tulaga muamua e mafai. Ma lona lua, sootaga ma isi setete uma e mafai ona sosoo ai mo setete taitasi. Tatou amio pei o saienitisi ma faauiga setete i le matematika. O le seti o uluai setete o loʻo faʻamatalaina e le fua faʻatatau, mo se faʻataʻitaʻiga, i le tulaga o le Euclidean algorithm: (x = M) ∧ (y = N). Mo nisi tulaga taua M и N e tasi lava le tulaga muamua. O le sootaga ma le isi setete o loʻo faʻamatalaina i se fua faʻatatau e tusia ai fesuiaiga o le isi setete ma se prime, ma o fesuiaiga o le tulaga o loʻo i ai nei e tusia e aunoa ma se prime. I le tulaga o le Euclidean algorithm, o le a tatou feagai ma le vaeluaina o fua faʻatatau e lua, i se tasi o ia mea. x o le tau sili ona tele, ma i le lona lua - y:

Polokalama e sili atu nai lo coding

I le tulaga muamua, o le tau fou o le y e tutusa ma le tau muamua o le y, ma tatou maua le tau fou o le x e ala i le toesea o le fesuiaiga laʻititi mai le lapoʻa. I le tulaga lona lua, tatou te faia le faafeagai.

Sei o tatou toe foi i le Euclidean algorithm. Faapea foi lena M = 12, N = 18. E fa'amatala ai se tulaga muamua e tasi, (x = 12) ∧ (y = 18). Ona matou faʻapipiʻiina lea o tau i le fua faʻatatau i luga ma maua:

Polokalama e sili atu nai lo coding

E na'o le pau lea o le fofo e mafai: x' = 18 - 12 ∧ y' = 12, ma tatou maua le amio: [x = 12, y = 18]. I le auala lava e tasi, e mafai ona tatou faʻamatalaina setete uma i la tatou amio: [x = 12, y = 18] → [x = 12, y = 6] → [x = 6, y = 6].

I le setete mulimuli [x = 6, y = 6] o vaega uma e lua o le faaupuga o le a sese, o lea e leai se isi setete. O lea la, o loʻo i ai se faʻamatalaga atoatoa o le laasaga lona lua - e pei ona tatou vaʻaia, o se numera masani, e pei o inisinia ma saienitisi, ma e le o se mea ese, e pei o le saienisi komepiuta.

O nei fua fa'atatau e lua e mafai ona tu'ufa'atasia i se fua fa'atatau fa'aletino. E matagofie ma faigofie ona faʻamatalaina, ae e leai se taimi mo le taimi nei. Atonu tatou te manaomia le mafaufau faaletino mo na o meatotino o le ola; mo le saogalemu e le manaomia. Ou te le fiafia i mafaufauga faaletino, e le o se matematika masani, ae i le tulaga o le olaola o se mea leaga talafeagai.

I le Euclidean algorithm mo tau taʻitasi x и y o loʻo i ai tulaga faʻapitoa x' и y', lea e moni ai le sootaga ma le isi setete. I se isi faaupuga, o le Euclidean algorithm e faʻamoemoeina. Ina ia faʻataʻitaʻiina se algorithm e le faʻamaonia, o le setete o loʻo i ai nei e tatau ona i ai le tele o setete i le lumanaʻi, ma o tau taʻitasi o le fesuiaiga e le faʻaaogaina e tatau ona i ai le tele o tau o le fesuiaiga muamua ina ia moni le sootaga i le isi setete. E le faigata ona fai lenei mea, ae o le a ou le tuuina atu ni faataitaiga i le taimi nei.

Ina ia faia se meafaigaluega galue, e te manaʻomia le matematika aloaʻia. E fa'afefea ona fai se fa'amatalaga aloaia? Ina ia faia lenei mea matou te manaʻomia se gagana aloaʻia, eg. TLA+. O le faʻamatalaga o le Euclidean algorithm i lenei gagana o le a pei o lenei:

Polokalama e sili atu nai lo coding

O le faailoga tutusa o le faailoga ma se tafatolu o lona uiga o le tau i le agavale o le faailoga ua fuafuaina e tutusa ma le tau i le itu taumatau o le faailoga. O le mea moni, o se faʻamatalaga o se faʻamatalaga, i la matou tulaga lua faʻamatalaga. I le faʻamatalaga i le TLA + e te manaʻomia le faʻaopoopoina o faʻamatalaga ma nisi syntax, pei o le faʻasolo i luga. I le ASCII e pei o lenei:

Polokalama e sili atu nai lo coding

E pei ona e vaʻai, e leai se mea faigata. O faʻamatalaga i luga o le TLA + e mafai ona faʻamaonia, o lona uiga, e mafai ona faʻafefe uma amioga talafeagai i se faʻataʻitaʻiga laʻititi. I la matou tulaga, o lenei faʻataʻitaʻiga o le a avea ma ni tau faʻapitoa M и N. O se auala sili ona aoga ma faigofie faʻamaonia e otometi atoa. E le gata i lea, e mafai ona tusi faʻamaoniga aloaia o le mea moni ma siaki i latou i le masini, ae e manaʻomia tele le taimi, e toetoe lava leai se tasi e faia lenei mea.

O le fa'aletonu autu o le TLA + o le matematika, ma e fefefe tagata fai polokalame ma saienitisi komepiuta i le matematika. I le tepa muamua e foliga mai o se tala malie, ae, o le mea e leaga ai, ou te fai atu lenei mea ma le ogaoga. Sa na ona taʻu mai e se tasi o aʻu uo ia te aʻu le auala na ia taumafai ai e faʻamatala le TLA + i le tele o atinaʻe. O le taimi lava na aliali mai ai fua fa'atatau i luga o le lau, na vave lava ona pupula o latou mata. Afai la e taufaafefe le TLA+, e mafai ona e fa'aogaina PlusCal, o se ituaiga gagana polokalame meataalo. O se fa'amatalaga i le PlusCal e mafai ona avea ma fa'aaliga TLA +, o lona uiga, so'o se fa'amatalaga fa'a-matematika. E le gata i lea, o le PlusCal e iai le syntax mo algorithms e le faʻamaonia. Ona o le PlusCal e mafai ona tusia soʻo se TLA + faʻaaliga, e sili atu ona faʻaalia nai lo soʻo se gagana polokalame moni. O le isi, ua tu'ufa'atasia le PlusCal i se fa'amatalaga TLA+ e faigofie ona faitau. E le o lona uiga, ioe, o le faʻamatalaga lavelave PlusCal o le a liua i se faigofie i luga o le TLA + - naʻo le manino o le fesoʻotaʻiga i le va oi latou, e leai se faʻalavelave faʻaopoopo e aliali mai. Mulimuli ane, e mafai ona faʻamaonia lenei faʻamatalaga e faʻaaoga ai meafaigaluega TLA +. I se tulaga lautele, e mafai e le PlusCal ona fesoasoani e foia se phobia o le matematika; e faigofie ona malamalama e oo lava i tagata fai polokalame ma saienitisi komepiuta. Na ou lolomiina algorithms i luga mo sina taimi (pe a ma le 10 tausaga) i le taimi ua tuanaʻi.

Atonu o le a tetee se tasi e faapea o le TLA+ ma le PlusCal o le matematika, ma e na'o le matematika e galue i ni fa'ata'ita'iga ua faia. I le faʻataʻitaʻiga, e te manaʻomia se gagana moni ma ituaiga, faiga, mea faitino, ma isi. E sese lenei mea. O le mea lea na tusia e Chris Newcomb, o le sa galue i Amazon: "Ua matou faʻaogaina le TLA + i luga o galuega tetele e sefulu, ma i tulaga uma o lona faʻaaogaina na faia ai se eseesega tele i le atinaʻe aua na mafai ona matou puʻeina ni mea mataʻutia aʻo leʻi oʻo i le gaosiga, ma talu ai na matou maua ai le malamalama ma le mautinoa matou te manaʻomia e faʻamalosi ai. fa'atonuga fa'atinoga e aunoa ma le fa'aaafiaina o le moni o le polokalame". E masani ona e faʻalogo i le faʻaaogaina o metotia faʻapitoa tatou te maua ai le tulafono le lelei - i le faʻatinoga, o mea uma lava e faʻafeagai. E le gata i lea, o loʻo i ai se manatu e le mafai e le au pulega ona faʻamaonia le manaʻomia o auala aloaʻia, e tusa lava pe faʻamaonia e le au fai polokalame lo latou aoga. Ma na tusia e Newcomb: "O loʻo tuleia nei e le au pulega i auala uma e mafai ai ona tusia faʻamatalaga i le TLA +, ma o loʻo faʻavasegaina taimi mo lenei mea". O lea la, pe a vaʻai pule o loʻo galue TLA +, latou te taliaina. Na tusia e Chris Newcomb lenei mea e tusa ma le ono masina talu ai (Oketopa 2014), ae o le taimi nei, e pei ona ou iloa, o le TLA + o loʻo faʻaaogaina i galuega faatino e 14, ae le o le 10. O le isi faʻataʻitaʻiga e fesoʻotaʻi ma le mamanu o le XBox 360. Na sau se tagata aʻoga ia Charles Thacker ma tusia faʻamatalaga mo le polokalama manatua. Faʻafetai i lenei faʻamatalaga, na maua ai se pusa semanu e le mafai ona iloa ma o le a mafua ai ona paʻu uma XBox 360 pe a uma le fa itula o faʻaoga. Inisinia mai IBM na faʻamaonia e le mafai e a latou suʻega ona iloa lenei pusa.

E mafai ona e faitau atili e uiga i le TLA + i luga ole Initaneti, ae o lea tatou talanoa e uiga i faʻamatalaga faʻapitoa. E seasea ona tatou tusia ni polokalame e fuafua ai le vaeluaga masani ma mea faapena. Ole tele o taimi matou te tusia ai polokalame e pei o le mea faigaluega lomitusi matagofie na ou tusia mo TLA+. A maeʻa le faiga sili ona faigofie, o le TLA + code o le a pei o lenei:

Polokalama e sili atu nai lo coding

Ae i le faʻataʻitaʻiga o loʻo i luga, e foliga mai na manaʻo le tagata faʻaoga ia faʻaoga tutusa ma faʻailoga tutusa. O lea la o le faʻatulagaina saʻo o le a sili atu ona pei o lenei:

Polokalama e sili atu nai lo coding

Sei o tatou mafaufau i se isi faataitaiga:

Polokalama e sili atu nai lo coding

O iinei, i se isi itu, o le faʻaogaina o faʻailoga tutusa, faʻaopoopoga ma le faʻateleina i le punavai na faʻafuaseʻi, o lea o le faiga sili ona faigofie e lava. I se tulaga lautele, e leai se faʻamatalaga saʻo o le matematika o le faʻatulagaina saʻo, aua o le "saʻo" i lenei tulaga o lona uiga o le "mea e manaʻo ai le tagata faʻaoga," ma e le mafai ona fuafuaina i le matematika.

E foliga mai afai tatou te le maua se faauigaga o le upumoni, o lona uiga e le aoga le faʻamatalaga. Ae e le moni lena mea. Ona tatou te le iloa po o le a le mea e tatau ona fai e se polokalama e le faapea e le manaomia ona tatou mafaufau pe faapefea ona galue—i se isi itu, e tatau ona tatou faaalu atili taumafaiga i ai. O le faʻamatalaga e sili ona taua iinei. E le mafai ona fuafua le polokalame sili ona lelei mo le lolomiina o loʻo faʻatulagaina, ae e le o lona uiga e le tatau ona tatou faia, ma o le tusiaina o code o se vaitafe o le malamalama e le o le tulaga lea. Na iu ina ou tusia se faʻamatalaga o tulafono e ono ma faʻamatalaga i le tulaga o faamatalaga i se faila Java. O se fa'ata'ita'iga lea o se tasi o tulafono: a left-comment token is LeftComment aligned with its covering token. O lenei tulafono o loʻo tusia i totonu, seʻi tatou fai atu, mathematical English: LeftComment aligned, left-comment и covering token — upu ma faauigaga. O le auala lea e faʻamatala ai e le mathematicians le matematika: latou te tusia faʻamatalaga o faaupuga ma, faʻavae i luga, faia tulafono. O le aoga o lenei faʻamatalaga o le ono tulafono e sili atu ona faigofie ona malamalama ma faʻapipiʻi nai lo 850 laina o code. E tatau ona ou fai atu o le tusiaina o nei tulafono e leʻi faigofie; e fai si tele o le taimi e faʻapipiʻi ai. Na ou tusia faʻailoga faʻapitoa mo lenei faʻamoemoe na taʻu mai ia te aʻu le tulafono o loʻo faʻaaogaina. Talu ai na ou tofotofoina nei tulafono e ono ma ni nai faʻataʻitaʻiga, ou te le tau faʻapipiʻiina le 850 laina o le code, ma sa faigofie lava ona maua ia bug. Java ei ai meafaigaluega sili mo lenei. Ana ou tusia le code, semanu e umi se taimi ou te alu ai ma o le faatulagaga o le a sili atu ona leaga.

Aisea e le mafai ai ona fa'aogaina se fa'amatalaga aloa'ia? I le tasi itu, o le faʻatinoga saʻo e le taua tele iinei. O se lolomi fa'atulagaina e mautinoa lava e le fa'amalieina i nisi, o lea na ou le tau fa'atonuina ai e fa'aoga sa'o i tulaga uma e le masani ai. E sili atu le taua o le mea moni e leʻi lava aʻu meafaigaluega. Le TLA + faʻataʻitaʻiga siaki e leai se aoga iinei, o lea e tatau ai ona ou tusia faʻataʻitaʻiga ile lima.

O faʻamatalaga tuʻuina atu e iai faʻamatalaga e masani ai i faʻamatalaga uma. E maualuga atu le tulaga nai lo code. E mafai ona faatino i soo se gagana. E leai ni mea faigaluega po'o ni auala e tusia ai. Leai se polokalame polokalame o le a fesoasoani ia te oe e tusia lenei faʻamatalaga. Ma e leai ni mea faigaluega e mafai ona le mana'omia ai lenei fa'amatalaga, se'i vagana o le mea moni o lo'o e tusia se gagana fa'apitoa mo le tusiaina o polokalame lolomi fa'atulagaina i le TLA+. Ma le mea mulimuli, o lenei faʻamatalaga e le o taʻu mai se mea e uiga i le auala tonu tatou te tusia ai le code, naʻo le taʻu mai o le mea e fai e le code. Matou te tusia se faʻamatalaga e fesoasoani ia i matou e mafaufau i le faʻafitauli ae matou te leʻi amata mafaufau i le code.

Ae o lenei faʻamatalaga e iai foʻi foliga e faʻaeseese ai mai isi faʻamatalaga. 95% o isi faʻamatalaga e sili atu ona puupuu ma faigofie:

Polokalama e sili atu nai lo coding

E le gata i lea, o lenei faʻamatalaga o se seti o tulafono. E masani lava o se faʻailoga lea o se faʻamatalaga leaga. O le malamalama i taunuuga o se seti o tulafono e fai si faigata, o le mea lea na tatau ai ona ou faʻaaluina le tele o le taimi e faʻapipiʻi ai. Ae ui i lea, i lenei tulaga e le mafai ona ou mauaina se auala sili atu.

E taua le fai atu o ni nai upu e uiga i polokalame o loʻo faʻaauau pea. E masani ona fa'agaioi tutusa, e pei o faiga fa'aoga po'o faiga fa'asoa. E toaitiiti lava tagata e mafai ona malamalama i ai i o latou mafaufau po o luga o pepa, ma e le o aʻu o se tasi oi latou, e ui lava sa mafai ona ou faia. O le mea lea, matou te manaʻomia meafaigaluega e siaki ai a matou galuega - mo se faʻataʻitaʻiga, TLA + poʻo PlusCal.

Aisea na tatau ai ona ou tusia se faʻamatalaga pe afai ua uma ona ou iloa le mea e tatau ona fai e le code? O le mea moni, sa na ona ou manatu ua ou iloaina. E le gata i lea, faʻatasi ai ma se faʻamatalaga o loʻo i ai, e le toe manaʻomia e se tagata mai fafo ona vaʻai i totonu o le tulafono e malamalama ai i le mea tonu e fai. E i ai la'u tulafono: e le tatau ona i ai ni tulafono lautele. E i ai se tuusaunoaga i lenei tulafono o le mea moni, e na o le pau lea o le tulafono lautele ou te mulimuli ai: o le faʻamatalaga o mea e fai e le tulafono e tatau ona taʻu atu i tagata mea uma latou te manaʻomia e iloa pe a faʻaaogaina lena code.

O le a tonu la le mea e tatau ona iloa e le au fai polokalame e uiga i le mafaufau? I le amataga, tutusa ma tagata uma: afai e te le tusitusi, ona foliga mai lea ia te oe o loʻo e mafaufau. E le gata i lea, e tatau ona e mafaufau ae e te leʻi faʻailoga, o lona uiga e tatau ona e tusitusi ae e te leʻi faʻailoga. O se faʻamatalaga o mea tatou te tusia aʻo leʻi amataina le coding. E manaʻomia se faʻamatalaga mo soʻo se code e mafai ona faʻaogaina pe suia e soʻo se tasi. Ma o lenei "se tasi" atonu o le a avea ma tusitala o le code i le masina talu ona tusia. E manaʻomia se faʻamatalaga mo polokalame tetele ma faiga, mo vasega, mo metotia, ma o nisi taimi mo vaega faʻalavelave o se auala e tasi. O le a tonu le mea e tatau ona e tusia e uiga i le code? E tatau ona e faʻamatalaina le mea e fai, o lona uiga, o se mea e mafai ona aoga i soʻo se tasi e faʻaaogaina lenei code. O nisi taimi e ono mana'omia ai fo'i le fa'ama'oti pe fa'apefea ona ausia e le code lona sini. Afai matou te uia lenei metotia i le algorithms course, ona matou taʻua lea o se algorithm. Afai o se mea e sili atu ona faʻapitoa ma fou, ona matou taʻua lea o le mamanu maualuga. E leai se ese'esega aloa'ia iinei: o fa'ata'ita'iga uma ia o le polokalame.

E fa'afefea tonu ona e tusia se fa'amatalaga code? O le mea autu: e tatau ona tasi le maualuga maualuga nai lo le code lava ia. E tatau ona fa'amatala ai tulaga ma amioga. E tatau ona fa'amamafa e pei ona mana'omia e le galuega. Afai o loʻo e tusia se faʻamatalaga o le faʻatinoina o se galuega, ona mafai lea ona tusia i le pseudocode poʻo le faʻaaogaina o le PlusCal. E tatau ona e aʻoaʻo e tusi faʻamatalaga e faʻaaoga ai faʻamatalaga aloaia. O lenei mea o le a tuʻuina atu ai ia te oe tomai manaʻomia e fesoasoani foi i tomai faʻapitoa. E fa'afefea ona e a'oa'o e tusi fa'amatalaga aloa'ia? Ina ua matou aʻoaʻoina le polokalame, matou te tusia polokalame ona faʻapipiʻi lea. Le mea lava e tasi iinei: e tatau ona e tusia se faʻamatalaga, siaki i se siaki faʻataʻitaʻiga, ma faʻaleleia mea sese. TLA + atonu e le o se gagana sili ona lelei mo se faʻamatalaga aloaia, ma o se isi gagana e foliga mai e sili atu ona fetaui mo ou manaʻoga. O le mea sili e uiga i le TLA + o le faia lea o se galuega tele o le aʻoaʻoina o mafaufauga matematika.

E fa'afefea ona feso'ota'i fa'amatalaga ma fa'ailoga? Fa'aaogā fa'amatalaga e feso'ota'i ai manatu fa'a-matematika ma lo latou fa'atinoga. Afai e te galue i kalafi, ona i ai lea i le tulaga o le polokalame o le ae maua ai laina o nodes ma laina o sootaga. O lea e tatau ona e tusi pe faʻapefea ona faʻatino tonu le kalafi e nei faʻatulagaga polokalame.

E tatau ona maitauina e leai se mea o loʻo i luga e faʻaoga i le faagasologa o le tusiaina o code lava ia. A e tusia le code, o lona uiga, faia le laasaga lona tolu, e tatau foi ona e mafaufau ma mafaufau i le polokalama. Afai o se subtask e foliga mai e lavelave pe leai foi, e tatau ona e tusia se faʻamatalaga mo ia. Ae ou te le o talanoa e uiga i le code lava ia iinei. E mafai ona e faʻaogaina soʻo se gagana polokalame, soʻo se metotia, e leʻo faʻatatau ia i latou. E le gata i lea, e leai se mea o loʻo i luga e faʻaumatia ai le manaʻoga e suʻe ma debug lau code. E tusa lava pe sa'o sa'o le fa'ata'ita'iga fa'ata'ita'iga, e ono iai ni fa'aletonu i lona fa'atinoga.

O faʻamatalaga tusitusia o se laasaga faʻaopoopo i le faʻasologa o le coding. Faʻafetai i ai, e tele mea sese e mafai ona maua i se taumafaiga itiiti - matou te iloa lenei mea mai le poto masani a le au fai polokalame mai Amazon. Faatasi ai ma faʻamatalaga, o le tulaga lelei o polokalame e maualuga atu. Aisea la ua tatou o ese soo ai e aunoa ma i latou? Aua e faigata le tusitusi. Ae o le tusitusi e faigata, aua o lenei mea e tatau ona e mafaufau, ma e faigata foi le mafaufau. E faigofie lava ona faafoliga o loo e mafaufau. E mafai ona fa'atusa i'i le tamo'e - o le fa'aitiitia o lau tamo'e, o le fa'agesegese foi lea o lau tamo'e. E tatau ona e toleni ou maso ma faataitai le tusitusi. E manaomia ai le faataitai.

Atonu e le sa'o le fa'amatalaga. Atonu na e faia se mea sese i se mea, pe na suia tulaga manaʻomia, pe manaʻomia se faʻaleleia atili. So'o se fa'ailoga e fa'aogaina e so'o se tasi e tatau ona suia, o lea e le o toe fetaui le fa'amatalaga ma le polokalame. Le mea lelei, i lenei tulaga, e tatau ona e tusia se faʻamatalaga fou ma toe tusi atoa le code. Matou te iloa lelei e leai se tasi na te faia lenei mea. I le faʻatinoga, matou te faʻapipiʻi le code ma atonu e faʻafouina le faʻamatalaga. Afai e tatau ona tupu lenei mea i se taimi vave pe mulimuli ane, aisea la e tusi ai faʻamatalaga? Muamua, mo le tagata o le a faʻasaʻo lau code, o upu faʻaopoopo uma i le faʻamatalaga o le a aoga lona mamafa i le auro, ma o lenei tagata atonu o oe. E masani ona ou kiki aʻu lava ona o le le lava maoti pe a ou faʻasaʻo laʻu code. Ma ou te tusia nisi faʻamatalaga nai lo code. O le mea lea, a e faʻasaʻo le code, o le faʻamatalaga e manaʻomia i taimi uma ona faʻafouina. Lona lua, o fa'atonuga ta'itasi e atili ai ona leaga le fa'ailoga, e atili faigata ai ona faitau ma tausia. O se faʻaopoopoga lea o le entropy. Ae afai e te le amataina i se faʻamatalaga, o laina uma e te tusia o le a faʻasaʻo, ma o le code o le a tele ma faigata ona faitau mai le amataga.

E pei ona fai mai Eisenhower, e leai se taua na manumalo e tusa ai ma se fuafuaga, ma e leai se taua na manumalo e aunoa ma se fuafuaga. Ma sa ia iloa se mea e uiga i taua. E i ai le manatu o le tusiaina o faʻamatalaga o se faʻamaumau taimi. O nisi taimi e moni lenei mea, ma o le galuega e matua faigofie lava e leai se aoga e mafaufau ai i ai. Ae e tatau ona e manatua i taimi uma pe a fautuaina oe e aua le tusia faʻamatalaga, o lona uiga ua fautuaina oe e aua le mafaufau. Ma e tatau ona e mafaufau i lenei mea i taimi uma. O le mafaufau i se galuega e le fa'amautinoa ai e te le faia ni mea sese. E pei ona tatou iloa, e leai se tasi na faia se togafiti faataulaitu, ma o polokalame o se galuega faigata. Ae afai e te le mafaufau i le galuega, e mautinoa e te faia ni mea sese.

E mafai ona e faitau atili e uiga i le TLA + ma le PlusCal i luga o se upega tafaʻilagi faʻapitoa, e mafai ona e alu i ai mai loʻu itulau autu fesoʻotaʻiga. Pau lava lena mo a'u, faafetai mo lou gauai.

Faamolemole ia manatua o le faaliliuga lenei. A e tusia ni fa'amatalaga, ia manatua o le a le faitauina e le tusitala. Afai e te manaʻo moni e talanoa ma le tusitala, o le a i ai o ia i le Hydra 2019 conference, lea o le a faia ia Iulai 11-12, 2019 i St. Petersburg. E mafai ona fa'atau tiketi i luga o le upega tafaʻilagi aloaia.

puna: www.habr.com

Faaopoopo i ai se faamatalaga