SPEAKER: OK, takže nebudete veriť, ale minulý týždeň, v pondelok, v Pierce, Aj bol dole v suteréne. Nikdy som ísť na Pierce. A ja nikdy nebudem vracať, pretože Nechala som si veci sám, ako päť minút a niekto ukradol počítač a moje telefón z batohu. Čo znamená, že som sa dostal späť, a potom menej než o týždeň neskôr sa dostal opäť ukradol. A potom sa dostal zapnutia - Find My iPhone pokračuje byť neužitočné. Tak som aj naďalej podporovať nebudete používať. Je zapnuté raz, a to bolo v MIT, rovnako ako 15 minút neskôr, a osoba, volal toto telefónne číslo, ktoré ukázali, v mojom AT & T volanie. Tak som šiel on-line, volal, že telefón číslo, a šiel rovno na to záznamník v španielčine. A ja som o tom počul od. Takže som sa musel dostať nový počítač a telefón. Ja viem. Jo. Ale ak vy chcete čip do môjho Počítač fondu po tomto, to je dôvod, prečo Pýtal som sa ťa tu. Len si robím srandu. Ale to bolo naozaj smutné a traumatizujúce. Ale je to všetko späť, a to bol dôvod, prečo p-set 8 trvalo tak dlho, pretože Som nemal počítač. A niekto ho ukradol. A ja som e-mailom, s otázkou, či sa by grade vaša p-sada 8. Ale povedal, že nie. A bol som rád, môžem mať môj počítač späť? A oni to ako, no. Len si robím srandu. OK. To je naša posledná časť, a mám pár - máme len tri veci na programe rokovania. Budeme hovoriť trochu o sprievodcovi Q. Potom budeme tráviť 15 minút na chladnom demo. Potom budeme všetci hovoria, Zabudnite na sebe. Nemáte naozaj potrebujete počítačov alebo pero, alebo papier na poznámky, alebo sledovať spolu. Takže predpokladám, že ak máte počítač up, potom ste na Facebooku. Len hovorím. Ak ste vypĺňanie Q sprievodca, ktorý je ako prvý. Sprievodca Q je otvorená. Mali ste e-mail o tom. Akonáhle sú všetky Q veci sa podáva na koniec roka, som si všetky Q pripomienky skóre zo všetkých strán ktorý sa rozhodne dať mi spätnú väzbu. A tak, keď idete do Q - Ja neviem, či to dokážeš, Jeff, pretože si a rozšírenie študenta. Ale keď idete do Q, ak nemáte to urobil predtým, si vyberiete svoj učiteľ, ktorý je David Malan. Musíte ho urobiť. A potom si môžete vybrať TFS. A môžete si vybrať, ako veľa TFS, ako chcete. Ale existuje 60 z nás. Nemusíte vyberať každého. Môžeš ma len vybrať, alebo len vybrať pár ďalších ľudí, ak chcete, aby dať im spätnú väzbu, ako dobre. A potom dostanete skóre na všetkých týchto rôzne osi, a potom si môžete nechať je spätná väzba. A potom, rovnako ako o mesiac neskôr, Dostanem všetko, že spätná väzba. A rovnako ako spätná väzba ste boli že mi v priebehu semestra, som čítať všetko. A je to naozaj užitočné, a to pomáha mi rastú ako učiteľ a ako individuálne. Takže, prosím, vziať nejaký čas na to. Sme len bude tu pre, ako, 30 minút. Takže ak chcete, na konci tohto, na päť minút, a stačí vyplniť Q, pretože to neberie viac času než to. To by bolo skvelé, a tiež dostať svoje triedy späť oveľa rýchlejšie, ak môžete vyplniť Q. Takže väčšina z vás urobil, že pred - alebo nie, asi polovica z vás urobil, že pred. Ale ak ste nováčik, to je to, čo to je. Bude to rovnaké pre všetky triedy. Urob to. Trvá to päť minút. Ale tiež, ak si to trochu vážne, že to nie je to najhoršie, čo na svete, pretože som určite brať vážne. Takže ak ste ma nechať smajlíka, Aj ocenia, že. Ale ja by som tiež ocenil, ak vám ma opustil viac než smajlíka. Ale je to len na vás. Nemôžem povedať - alebo ako veľký smajlík tvár, s veľkým D. To by byť ešte lepší. OK, to je všetko, čo mám na Q. Ak máte nejaké otázky, môžete sa opýtať mi, ale celkom samo-vysvetľujúce. Len, prosím, vyplňte ju. Ja by som v skutočnosti oceniť ono, a to znamená pre mňa veľa. OK, to je to, čo sa chystáte minúť 15 minút prechádza. Chystám sa vám ukázať nejaký kód. Myslím, že to je naozaj cool, a to ma dostal viac vzrušená v informatike. Takže dúfam, že to bude robiť To isté pre vás všetkých. Chystáme sa otvoriť - a to všetko Kód pošlem vám neskôr. Ale my sme len tak otvoriť - Ja som vo svojom termináli - budeme otvárať tento program s názvom [? Mysu. ?] Každý môže prečítať, že, alebo Mal by som robiť to väčšie? Môže mi niekto povedať, čo tento kód bude robiť, keď som ho spustiť, alebo čo to Program bude robiť, keď som ho spustiť? [? Avi,?] Čo si myslíte to bude robiť? Dokončiť žuvanie. Nemali by ste hovoriť s vaše ústa otvorené. DIVÁKOV: Má to trvať veľa argumenty, nájsť súčet ich návratu súčet, a potom ho vytlačiť? Alebo to trvá dva argumenty, a potom to robí [nepočuteľné]. A potom sa to vytlačí čokoľvek výsledky sú. SPEAKER: Close, naozaj blízko. Niekto chcete pridať do [? čo Avi?] povedal? Potrebujete, aby tento program žiadne argumenty príkazového riadku? Divákov: Nie SPEAKER: Nie Čo sa stane, ak nechcete, aby to žiadne argumenty príkazového riadku? Len som napísať bodka lomítko mysu. DIVÁKOV: 1 plus 2 sa rovná 3. SPEAKER: 1 plus 2 sa rovná 3. A to bude tlačiť, že von. To je presne to pravé. Uvidíte, že tlačové f riadku v dolnej časti. Je to vytlačiť a, b, a potom súčet A a B. A myslím, že sa domnievate, že Súčet funguje správne. Dobrý predpoklad. OK, a čo sa stane, keď dať to, čo hádka? [? Manu? ?] DIVÁKOV: Bude pridať čokoľvek Prvý argument je b. Alebo 2, je mi ľúto. SPEAKER: Jasne, na 2. Vie niekto, čo strtol robí? Je to v podstate atoi. Atoi je vlastne vymyslené verzia - alebo jednoduchšia verzia strtol. Ale to vlastne používa strtol. A ja som zistil, že, pretože som chcel, niečo ako atoi, a potom, keď som sa sa atoi, čítal som tu dole. A ja som našiel "toto správanie je rovnaké ako "strtol. Takže je to v podstate atoi pre všetky zámery a účely. A vidíte, ešte som použiť null a 10. To skutočne umožňuje robiť reťazec, a premeniť ju na číslo, a vyberte aký základný chcete urobiť palcov Tak to je základ 10 tu. Mohol som urobiť základné dva na jedno desatinné miesto, základňa 16 pre hexadecimálne. Je to celkom v pohode. Ale dlhý príbeh krátky, to trvá dva čísla a spočíta je. Takže poďme spustite ho. A budete tiež všimnúť, že sú niektoré veci - takže mám makefile tu, a Ak otvoríte že sa niektoré veci si všimnete, sú rôzne. Konkrétne, tento argument tu, ste pravdepodobne Nevidel, že pred. Všeobecne platí, že sme sa zostaviť čo pomlčkou nula, nula. Dash nula, nula, znamená, že nemusíte robiť akékoľvek optimalizácia, kompilátor. Nesnažte sa robiť nič chuť, alebo robiť čokoľvek spustiť rýchlejšie, alebo sa zbaviť premenných, ktoré sú nevyhnutné. Nepoužívajte optimalizovať tento kód vôbec, Pýtam sa na tretej úrovni optimalizácia. Takže sa pýtam kompilátor robiť Mnoho optimalizáciou. Môžete zmeniť v makefile, kedy Máte tento kód, ak chcete vidieť rôzne veci. Čo my vám ukážeme, v sekunde. Takže sme sa spustiť svoj čiastku 1 plus 2 plus 3. Niekto mi dajte dva argumenty. DIVÁKOV: 4 a 5. SPEAKER: 4 a 5. Ďakujem. Skvelé, funguje to. Aké sú niektoré ďalšie dobré argumenty pokúsiť, aby sa ubezpečil to funguje? Každý, kto? DIVÁKOV: 0. SPEAKER: 0 a? DIVÁKOV: Negatívne 3. SPEAKER: Funguje to. Ale to bolo dobré rozhodnutie. OK, takže poďme späť. To je mysum.c. Všimnete si, že je to tiež niečo volal sumfunction.c. A to hovorí, ach, je tu niečo, sú definované v sumfunction.c. Nechcem tento súbor zahrnúť sem pretože nemusíte. Ale ja prepojiť ju, keď som kompiláciu, ktorý ste si všimli. Poďme sa posunúť nahor. Videli sme, keď sme zostavili mysu, právo tam, čo sme prepojili v binárnom od sumfunction.o. A nepotrebujem hlavičkový súbor pretože, samozrejme, je tu Deklarácie funkcie. Tak ostré sú normálne len vezme v deklarácii funkcie. Tu som len dať to rovno v kóde. A tak musím urobiť, je odkaz v binárnej, ktoré robím. Akékoľvek odhady pre to, čo je v sumfunction.c? Aký kód som napísal v sumfunction.c? DIVÁKOV: [nepočuteľné]. SPEAKER: Akékoľvek odhady? Jo? Divákov: Myslím, že definuje niektoré [nepočuteľný]. SPEAKER: Áno. Tak som to firmy int súčet int. Píšem tento riadok, a potom mám otvorené zložená zátvorka, uzavretá zložená zátvorka. Čo si myslíš, že píšem v tých zložené zátvorky, vnútri tejto funkcie? Jo? DIVÁKOV: Návrat rovná. Procesor: To je naozaj dobrý odhad. Kto si myslí, že [? Manu?] Má pravdu? To hovorí, že vrátiť a navyše b. OK, nie všetci. [? Akshar,?] ty taky? Si si istý? OK. Čo je? DIVÁKOV: hláskoval si to zle. SPEAKER: Nie, ja nie. Jo, robím si srandu. Máš pravdu. To je presne to, čo hovorí. Je to vrátiť a naviac b. To robí veľa zmysel. OK, poďme späť. Vidíme, ako sa hlavička - to je návratový typ. Pamätajte si, že sme videli, že prvý deň, návratový typ funkcie, ale ide pred názvom funkcie int. Tu som napísal int. Čo si myslíte, že sa stane, ak v tomto funkcie, nepíšem int, ale Píšem unsigned? Rozdiel, samozrejme, je, že unsigned predstavuje iba pozitívne celé čísla, a int môžu byť pozitívne alebo negatívne. Tak som zmenil návrat typ tejto funkcie. Tento kód sa nezhoduje opíšte tento návrat. Čo si myslíte, že sa stane keď som kompiláciu? Mali by ste na mňa kričať. Žiadny krik. Čo keď som spustení programu? Poďme urobiť pred 0 Negatívny 3, alebo negatívne 1.. Je to stále funguje, aj keď hovorím, je to vrátením celé číslo bez znamienka. Je jasné, že to nie je návratu celé číslo bez znamienka. Je to vrátením celej číslo so znamienkom. Je to vracia negatívna 1. OK, to je divné. Čo keď pôjdem do tu a robiť, že? Tak som sa všetko zmenilo z int na unsigned. To môže trvať len nepodpísané celé čísla. Ale stále si myslím, že to beží? DIVÁKOV: Áno. SPEAKER: to bude. To je šialené. A míňame v jednoznačne priradiť celé číslo, môžeme prejsť dva podpísali celé číslo, to ešte funguje. OK, nejaké nápady, prečo je stále funguje, alebo to, čo sa deje? Jo, Jeff. DIVÁKOV: To má čo do činenia s optimalizáciou, ktoré zvýrazní. SPEAKER: Nie Mohli by sme zmeniť optimalizácia, to by ešte fungovať. Môžem to urobiť pre vás, ale - Divákov: Vezmem vás za slovo. SPEAKER: Jo. Ak otvoríte makefile tu, Zmenil som optimalizáciu. Takže si môžete urobiť pomlčka nula, nula. To bude ešte pracovať. Iné myšlienky? Vy všetci Očakáva sa, že práca, tak Prečo ste očakávať, že to funguje? Nie? Ticho. OK. Musím čakať sedem sekúnd, preto, že som sa pýtal. Takže super vec o C, a vy ste pravdepodobne nezažili - vami nemusí mať, mohlo by to byť prvýkrát. Ale ako všetci viete, keď píšem niečo v C, to neukladá ako to na počítači. Je uložený ako jedničiek a núl. Ide z kódu C do assembleri. Videl niekto assembleri skôr, Stroj montážne kód? Pozrieme sa na sekundu. Ide z kódu C do assembleri. A vy viete fázy kompilácie. Vy ste mali na pamäti, že pre jeden kvíz, a potom ho vypísať testu nulové. Väčšina ľudí to zle. Myslím, že vy ho pribil. Ale, vy ste najlepšia časť pre kvízy, mimochodom. Čo je úžasné. Nebude vás bolieť. Nerobte si starosti. Ale je to naozaj cool. Dobrá práca. Tak to ide do assembleri, a potom to ide do jednotiek a núl. A tie jednotky a nuly sú uložené na počítača, a to je to, čo uloží do a.out, alebo v tomto prípade, spustiteľný súbor. A počítač beží jedničiek a núl. Je to tak? Máme pred naučili to. Takže super vec je, že táto znamienka idea, myšlienka typov ints nesignováno, et cetera, et cetera, že je tu v jazyku C. Tí, ktorí existujú. Ale typy neexistujú v tie jednotky a nuly. Typy ani naozaj existujú na assembleri úroveň. Tak to je niečo, čo existuje v C svet, ale neexistuje v počítači svet alebo svet procesora. To je nejaký abstrakcie, že C jazyk je súčasťou, aby sa naše život jednoduchší. Takže na konci dňa, môžem napísať veľa rôznych vecí, tu, a to nerobí rozdiel. Vzhľadom k tomu, že existuje iba v C svete. To neexistuje v ty a nuly svet. A náš program je vykonávaný v ty a nuly svet. Takže zjavne nie je spálená ale vaša myseľ je. Ale myslím, že je to v pohode. Jo, Jeff. DIVÁKOV: Takže, ak je miesto robiť int, vy char. A vy ste boli - SPEAKER: Poďme to urobiť v sek. DIVÁKOV: Pretože potom dostanete unsigned bude z negatívneho 128 až 127, alebo od 0 do 255.. SPEAKER: Tak char je problematické. Vie niekto, prečo by char sa problematické, a to by v skutočnosti zmeniť veci v tých a nuly svet? DIVÁKOV: Vzhľadom k veľkosti char. SPEAKER: Veľkosť znaku je 1. Takže unsigned je 4 bajty. Takže char by skrutku veci do poriadku. Ale to, čo sa 4 byty, ktorý je vzťahujúce sa k char? Alebo, že pridá jeden ďalší - môžete si dať ešte jednu postavu po char. DIVÁKOV: Char hviezda. SPEAKER: Char hviezda má 4 bajty. Takže poďme niečo urobiť to je char hviezda. Tak by to asi fungovať, ale my sme robiť niečo ešte šialenejšie než toto. Podľa môjho názoru, bláznivejšie. Ja som teraz napísal funkciu, ktorá vracia ukazovateľ, a to trvá ukazovateľ a hodnota bez znamienka - budeme zmeniť späť na int, takže nie sme robiť príliš veľa zmien naraz. A to má rad nazvanú a, indexy do poľa, a vráti sa adresa. My sme tieto operátormi nevidel. To, čo si myslíš, že to bude k tomu, na oplátku, keď som ho spustiť? Čo si myslíte, že to bude robiť? Akékoľvek odhady? DIVÁKOV: segfault. SPEAKER: Čo? Segfault? To je dobrý odhad. Tom hovorí to isté. Akékoľvek iné odhady? Kto si myslí, že to bude robiť to isté? Kto si myslí, že to bude segfault? To robí to isté. Prepáčte. Ale, samozrejme, sme dali v 1. a 2.. A to sú obaja platné, že jo? Poďme sa pozrieť, môžeme ísť na druhé miesto z poľa. Ale čo keď sme b záporné číslo? To je asi lepší odhad na niečo segfaulting. Je to stále funguje. OK, to je teraz šialený. To je rovnako platné funkciu SUM. To robí presne rovnakú vec ako vrátiť a b. Môže mi niekto vysvetliť, prečo je to dobré súčet funkcie, alebo prečo to funguje? Čo sa tu deje? Prečo to robiť presne rovnaký niečo ako naša stará funkcia sum? [? Akshar,?] čo sa deje? DIVÁKOV: Vzhľadom k tomu, keď máte to je adresa, na miesto v pamäti - a keď to urobíte ampersand, je ide do tejto pamäte adresu. A keď idete na b, si trochu pohybujúce sa kroky z tejto adresy pamäti, vraciate, že. Takže ste vlastne, v skutočnosti, Pridanie a b [nepočuteľné]. Tam, kde sú štandardné operácie Na tomto návrate? Rovnako ako, kde zátvorky jeseň? Je návrat na adresu uvedenú na pred alebo po [nepočuteľné]? SPEAKER: Bude to index do b - alebo index do - a potom spiatočnú adresu. OK, takže to všetci pochopili čo [? Akshar?] povedal a vysvetlil, prečo to funguje? Nechcel som, prvýkrát, keď niekto vysvetlil mi to. By niekto chcel obrázok to vysvetliť? Chystáme sa nakresliť obrázok s žiadne značky, to je skvelé. Našiel niektoré z nich. Takže máme celý rad, ktorý je séria krabíc. Prvý z nich je index 0, index 1, 2, 3, 4, bodka, bodka, bodka. Typický poľa. A okrem toho, že indexy, všetci majú adresy pamäti. Takže poďme dať túto adresu pamäti 13, 14, 15, 16, 17, a tak ďalej. Všetci to tu tak ďaleko. Takže je adresa. Názov poľa, ukazovateľ je uložený tam. Je to ukazovateľ, že je to miesto v pamäti, na začiatok poľa. Takže ak to bolo pole, by sa hodnota 13. A, samozrejme, môžeme dať všetky hodnoty chceme. Char hviezda, môžeme dať akýkoľvek adresa pamäti chceme. Môžeme dať 0, môžeme dať Negatívny 1 - 1 negatívny neexistuje, tak to je asi problematické, ale ste videli, že to ešte fungovalo. Takže môžeme dať ľubovoľný počet chceme, každá adresa pamäti chceme. Potom, int b hovorí, OK, prejdite toto číslo z krokov do poľa. Takže v prípade, b sa rovná 2, a sa rovná 13, Sme na adresu pamäti 13. A ideme dva kroky, a preto sme tu. A ampersand znamená návrat adresu tohto miesta. A adresa, samozrejme, 15. Tak sme si 13 plus 2, alebo a b, čo je 15. Otázkou je, aj keď - Je mi to ľúto. Znamená to, že objasnenie veci, prečo to funguje? DIVÁKOV: Prečo by to fungovať bude - takže môžete mať celú radu a ísť na negatívny index? SPEAKER: Správne. Takže sme urobili záporné čísla, tak to je - to zmysel aj keď, prvý, [? Avi,?] pre vás? DIVÁKOV: Jo, ja som len [Nepočuteľné], ale - SPEAKER: Jo, to by sa vrátiť 15. Ak bol 13, a b je 2, To by sa vrátiť 15. DIVÁKOV: Tak indexovanie nula nie je sa stal problém, nie? Vzhľadom k tomu, že ste v pohybe od 0. SPEAKER: Správne. Takže ste v pohybe - takže ak b je 0, by ste sa pohybovať kdekoľvek. A vy by ste sa práve vrátili adresu - ak b je 0, to je v podstate vracia, aby adresu. Odovzdávanie v char hviezdy A a vrátenie Adresa je len vracia, v podstate. OK, otázkou je, prečo záporné čísla fungujú? A to je naozaj super vec, o to, pretože to by malo segfault. A to by segfault keby sme urobil niečo také. Povedzme, int. Takže tento kód vyzerá rovnako a by sa mali správať rovnako. V podstate, x je premenná odpadky, a tak by to malo správať rovnako. Poďme urobiť toto - oops - v zapojení do hviezdy. OK, sme už dostať chyby tu, , Pretože to už bude hnevať na mňa, pretože už vie, čo príde. Najmä druhý. Adresa naukladaných pamäti spojené s lokálne premenné. V podstate, nehodlám kompilovať to, a potom idem vrátiť robiť to, čo sme práve urobili. Ale pretože sme vlastne nikdy prístupu, čo je v pamäti umiestnenie, to nebude segfault. Sme vlastne nikdy pri pohľade na to, čo je V druhom boxe alebo to, čo je v každej krabice tohto poľa. Sme len povedal, tu je adresa o vec hľadáme a vrátiť túto adresu. Sme vlastne nikdy ísť do pole, aby sa na tomto mieste. A pretože sme sa nikdy nedotýkajte pamäti, nemáme dostať do problémov. Nemáme si segfault. Ak by sme sa snažili znova, dotknite sa, že pamäť, dotknite sa to, čo bolo na a alebo b - alebo držiak b, a za predpokladu, že bola 0 a - ak bola 0, i, že by bolo celkom zlé, pretože nemôžeme ísť so všetkými tam ceste. Je-li A a B sú oba 0, a my sme sa snažili dotknúť sa, čo tam bolo, potom by sme dostať do problémov. Ale ak sa nedotýkajte, čo je tam, jednoducho spiatočnú adresu, je v skutočnosti nebude segfault, pretože To vám umožní vykonávať tieto operácie. To dostane len na teba naštvaná, a dostane Super hnevať, keď sa pokúsite a dotknúť sa skutočné pamäte a vráti to, čo je v tejto pamäti. Má to zmysel? To je jednoducho šialené a časť C. Takže, máme jeden z nich. Kto si myslí, že je to v pohode? Stále viac ľudí. To je dobre. OK, toto je naša posledná. A rád by som, aby ste mi povedať, či alebo nie si myslíte, že toto sa deje robiť presne rovnaký vec. Som to napísal niekam. Nebudem ich zapamätanie. Poďme sa pozrieť, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Tak to je pole, teraz, nie je funkcia. A je to pole, pretože máme námestí držiaky, nie zložené zátvorky. A je to pole, aký typ? Každý, hmm? DIVÁKOV: Ich hexadecimálne čísla? SPEAKER: Ale čo je to typ C? Tí všetci majú hexadecimálne čísla. Čo je to typ C? To vám povie. DIVÁKOV: Je to nepodpísané znakov. SPEAKER: vpravo, bez znamienka znakov. A dve hexadecimálne čísla je jeden bajt. To sú 1, 2, 3, 4, 5, 6, 7, 8, 9 bytov. Je to rad z 9 bytov. OK, ste si pravdepodobne už viete, odpoveď na túto otázku. Ale, čo si myslíte, že bude stane, keď som spustiť tento? Hovorím znova, v mysum.c, Čakám funkciu že trvá dve celé čísla. A ja som namiesto toho povedal táto suma je pole znakov. Čo sa stane, keď I spustite. / Mysu a robiť? No, po prvé, väčšina z vás bude pravdepodobne Súhlasíte s tým, že make - ach nie, robím si srandu. Čo som urobil zle? Uh oh. To by malo byť zložené zátvorky. To je, ako inicializovať pole. Moja chyba. Takže sme už videli skôr, než že typy sú abstrakcie C-úrovni, a to Úroveň počítačovej abstrakcie. Takže väčšina z vás pravdepodobne očakáva, že sa robiť, alebo za predpokladu, že by bolo. Ale čo keď som bežať. / Myse? Čo sa bude diať? Akékoľvek odhady? DIVÁKOV: Bude to vytlačiť slovo. SPEAKER: Bude to vytlačiť slovo. Aké slovo? DIVÁKOV: [nepočuteľné]. SPEAKER: Akékoľvek iné odhady? OK, vytlačiť frázu. Môžete mať akýkoľvek výraz. To bude vaša strana. Každý, kto má iný hádať? Anna, aký je váš odhad? DIVÁKOV: Bude vytlačiť - dva listy, alebo [nepočuteľný] jedno písmeno. SPEAKER: Jeden list. DIVÁKOV: Môžem počítať ako mnoho [nepočuteľný]? SPEAKER: Nine. No, budem sa ho spustiť. To robí presne rovnaký vec. Dodáva dve čísla dohromady. Dobre, poďme prejsť dva argumenty. Neznamená to však trvať argumenty. Takže neviem, kde by to mohlo možno si tieto argumenty. Ale poďme sa prejsť na 100 a 0. A dodáva 100 a 0. To je šialené. Myslím, že áno. Negatívne 4, ktorý funguje taky. Môžete robiť, čo chcete. To je rovnako platný funkcie sum. To je funkcia sum. Ale nie, vy hovoríte, že je to pole bajtov. Takže, čo sa to tu deje? Takže, ešte raz, vráťme sa k tejto myšlienke že sme si povedali na začiatku. Idete z kódu C-úrovni, až po montáž jazyk, do jednotiek a núl. To je hexadecimálne. Ale to je naozaj len Veľa jedničiek a núl. To je 72 jednotky a nuly, nie? 72 z nich a nuly. 9 bajtov. Každý bajt je 8 bitov. Každý bit je jedna alebo nula. Takže 72 z nich alebo nuly. Ja som práve napísal je takto - skôr než písať to ako veľa jednotky a nuly. Ale to pôjde z C-úrovne jazyk, až po montáž jazyka, kódu. A to sa bude tlačiť v kóde, Niekde v týchto 72 jednotky a nuly že som napísal tú som. Takže niekde v tom, že - poďme tu - niekde v mysu, program, tam sú tieto 72 jednotky a nuly, ktoré som napísal a povedal ju písať. Teraz, žiadne odhady pre to, čo ty, 72 z nich a nuly znamenajú? DIVÁKOV: Pravdepodobne rovnaký vec, ako vrátiť a navyše b. SPEAKER: Pravdepodobne rovnaký vec, ako vrátiť a navyše b. Poďme overiť, že. Poďme zistiť, ako som to urobil. Takže ak ste sa vrátiť sem, poviem vám Na spustenie tohto príkazu, objdump-S sumfunction.o. Poďme spustite ho. objdump - obj, dump. V podstate mi to môže dať čo chcem vidieť. To mi môže dať assembleri. To mi môže dať jednotky a nuly. To má veľa príznakov. To je jeden ideme použiť pre teraz. Dot - ako vidíte na snímkach - pomlčka kapitál S hovorí, intersperse, Zdrojový kód - tento riadok je od C - s montážou kód a s jedničiek a núl. A ideme na beh to na sumfunction.o. Vzhľadom k tomu, že to bude lepšie vidieť. Opäť - hmm? DIVÁKOV: hláskoval si to zle. SPEAKER: Ale ja som vlastne deje aby si ju prečistil za sekundu. Ja som prvý otvorím len sumfuntion.o. DIVÁKOV: hláskoval Môžete ho zlý prvýkrát. SPEAKER: Classic. Sum - že je ťažké slovo, hoci. To by ste sa divila. OK, takže to je sumfunction.o. Nemohol som ani povedať. Je tu veľa núl, jasne veľa núl, a tam je nejaký iný veci, to nie je nuly. Ale väčšinou nuly. Vyzerá to, že niektoré z nich. Tak jasne, je to ťažké čítať. To je binárny jazyk. Poďme teraz otvoriť - čo? Čo robím zle? Už som to píše správne? OK, je to trápne. Musím jednu sekundu prísť z toho, čo robím zle. To je jedna chyba. To je divné. Oh, to je dôvod, prečo. Chystám sa vrátiť k našej počiatočnej jeden, takže sa môžeme pozrieť na strojového kódu to. Vzhľadom k tomu, že to naozaj bude byť niečo, keď sme len dať ty a nuly v. Tam ideme. OK, takže každý môže vidieť. Táto funkcia, ako som už povedal, uhasiť linky C - riadky kódu zdroj - s niektorými montážnymi pokynmi. Tu je náš zdrojový kód riadok. Tu je jeden, tu je ďalší. Tu je návod montáže. To je to, ako vyzerajú. Montážny návod - sa môžete dozvedieť viac z nich, ak budete mať iných tried SK, ale sú všeobecne inštrukcie. A potom zdroj a cieľ. A potom tu je binárny kód , Ktorá zodpovedá tejto zostave inštrukcie. Takže ako vidíte, táto funkcia sum, Na konci dňa, je tri návod na montáž. Iba tri. Jeden mov - Tento m-o-v znamená ťahu. Pridať stojany na Pridať. A r-e-t znamená návrat. Takže jeden mov, jeden doplnok, jedna spiatočná. A toto, tu, sú nuly a tie, ktoré zodpovedajú tomuto kódu. Takže tie nuly a tie, ak ste viem, ty, stačí dať tie rovno dovnútra A potom to urobím To isté presne vec. Vzhľadom k tomu,, na konci dňa, všetko ste prevedenie je dlhá séria nuly a ty. A to je to, čo skutočne je váš kód. A dôvod - Poďme sa pozrieť na jednu vec. Už som si Makefile otvorená? Takže keď sme sa vrátili do pomlčka nula, nula sem - Ospravedlňujem sa, kapitál o kapitál o nulu, nie je nula, nula. A my to robiť, by to stále fungujú rovnako. Ale teraz, zistíte, že existujú oveľa viac montážny návod. To je preto, že opäť, spýtal som sa kompilátor nemôže robiť žiadne optimalizácia. Takže som mohol ešte vziať všetky tieto nuly a tie, a hádzať ich do, a to by mohlo fungovať. Len som urobil, že optimalizácia, pretože je to trochu jednoduchšie, potom, napísať, že pole. Ale to by fungovať rovnako dobre. OK, ideme urobiť jednu poslednú vec, pretože si myslím, je najlepšia časť. Aj keď každý je jasne už fúkané a nemý. Naša myseľ je spálená. [Nepočuteľný] Tak, to je z inej triedy CS, čo je veľmi zaujímavé, že som sa - CS61. Vrelo odporúčam urobiť si ho. Ale v pohode časť o tejto skutočnosti, že veci sú len nuly a tie, je, že všetko, čo je nuly a ty. Takže si môžete vziať súbor, ktorý má správne nuly a tie, ktoré chcete niekde v ňom, a použiť túto časť nuly a tie ako funkcia sum. Čo tým chcem povedať, že? Myslím si môžete vziať obrazový súbor, ktorý má správnu radu núl a tie, ktoré tlačia niečo sa na obrázok. A jeden program môže interpretovať je obrázok, ale môžete interpretovať ho, ak Ak ako funkciu SUM. Takže ak by sme chceli otvoriť, pre Napríklad tento obrázok. Poďme, Hello Kitty. Úžasný malý obrázok. V tu je to, že reťazec núl a ty. Tieto 72 núl a tie existujú v tomto snímku. Takže čo sa dá robiť, potom je napísať - Musím si spomenúť, kde sú. Nájdem, že v sekunde. Ale my - dovoľte mi, aby som zistil, kde sú. Jeden sec. Poďme urobiť - DIVÁKOV: [nepočuteľné]. SPEAKER: Vďaka. Takže ak by sme spustiť tento program, ktorý namiesto toho prečíta v súbore, potom to ide tohto indexu v súbore. A potom znova, rovnako ako mysu, vezme dve čísla. Môžeme pridať čísla presne rovnaké ako sme robili predtým, čo vedie k ukázať vám, ako to, že na konci dňa, všetky tieto veci sú nuly a ty. A to je to, ako si vybrať je interpretovať. A ak ste skutočne vyzerať na tomto obrázku - poďme priblížiť trochu. Môže to všetci vidieť? Všimnete si tu, je tu nejaký divný rozmazaniu. Poďme - to je pôvodný obrázok. Všimnete si, tu nie je šmuha. To je kód pre funkciu sum, je to trochu šmuha práve tam. A skutočne, opäť, ak ste sa dozvedieť viac o tom, budete si uvedomiť, že tento Hello Kitty, ktorý má ešte väčší šmuha, má kód, ktorý môže prevziať počítač, ak to nie je chránený primerane. Takže môžete v skutočnosti spustiť to. Nebudem ho spustiť hneď. Ale môžete spustiť tento Hello Kitty obraz, a to môže prevziať počítači. Tak to je všetko pre demo. Má niekto nejaké otázky, komentáre, obavy? Myslím, že toto je fascinujúce. To ma inšpirovalo dozvedieť sa viac. Vrelo odporúčam, ak máte záujem vôbec na SK, hovor so mnou. Aj keď som si a sociálnych štúdií Koncentrátor, som CS, sekundárne, tak Stále viem, trochu. Ale ja určite viem, čo triedy, mali by ste vziať. Myslím, že je to naozaj zaujímavé, a vyzývam vás, samozrejme, na dozvedieť sa viac, ak máte záujem. OK, mám jednu poslednú vec. Prepáčte. Akékoľvek otázky? Nechcel som pauzu čakať, či niekto mal nejaké otázky o tom. Je niekto bude Koncentrátor SK? Alebo o tom premýšľať? Jedna, dve, tri, štyri. One - iba jeden. Anna to je len ruka, ktorá je zdvihol autoritatívne. OK, to je v pohode. Assam, čo budeš robiť? DIVÁKOV: [nepočuteľné]. SPEAKER: Constantine? DIVÁKOV: Fyzika. SPEAKER: Páni, to bolo rýchle. Vy ste mali zlú skúsenosť v CS50? [Nepočuteľné], čo budeš robiť? DIVÁKOV: Nemám tušenie. SPEAKER: Curt? DIVÁKOV: Econ alebo CS. SPEAKER: Econ alebo CS. Tom? DIVÁKOV: Robím Stat. SPEAKER: Stat? OK. Čo si zač? DIVÁKOV: Me? SPEAKER: Jo. DIVÁKOV: Stat. SPEAKER: Stat. Ach, tu si. Tom, hovoriť s Alden. Emily, čo ste? DIVÁKOV: Biomedicínske - SPEAKER: Ste v tejto sekcii? Divákov: Nie SPEAKER: OK, to je Emily. Je to môj priateľ. Samozrejme, že nie, že dobro priateľov pretože ona mi dáva zabrať. Tie by mohli byť krajšie sa mi pred každého, môj študent - DIVÁKOV: Robím svoju Q sprievodca. SPEAKER: Naozaj? Uh oh. OK, ty si úžasná. Milujem ťa tak moc. Ach jo. Každopádne som včera v noci, ako všetko - Som si istý, všetci sa zdá naozaj zdôraznil práve teraz. Neviem, je nováčik - sú vy ste v strese? Mám pocit, zdôraznil. Bolo to ako, idete domov na Deň vďakyvzdania. Si rád, budem robiť všetky tieto veci. DIVÁKOV: Je to tak odlišné. SPEAKER: Jo, a vrátiš. Jeff, nemáte pocit, že spôsob, akým? DIVÁKOV: Len som si myslel, Ja by som to trochu. SPEAKER: OK, dobre. Tak som sa vrátil, a nemám nič neurobil. A to všetko veľmi stresujúce. A ja som obavy, skutočne týka, o tom, či som alebo nie som bude až do konca všetko, čo musím. Ale včera v noci, nebol som v strese, Bol som trochu smutný. Tak som napísal vo svojom denníku o čo som bol smutný. A bol som smutný o tejto sekcii v tejto triede chýli ku koncu. Tak som len tak čítať pre vás malý úryvok z môjho denníka, z minulej noci. Môžem dostať nejaké obrúsky, Niektoré tkanivá z Toma? Nie, budem plakať. Nechcem plakať. Nie, že nemôžete plakať, Ja len neplač. Ja ani neviem, či moja slza žľazy pracoval - slzné kanáliky. Som kričal po dlhej dobe. DIVÁKOV: [nepočuteľné]. SPEAKER: OK, vďaka. OK, je tu trochu predslov - tam je nejaké iné časti môjho denníka vstup, pretože sa snažím denníku každý noc predtým, než som sa dostal do postele. Vrelo odporúčam denníka. To vám pomôže spracovať veci, a tiež byť veľmi vďačný z vášho dňa. A to robí to oveľa jednoduchšie sa pozrieť späť na svoj deň, a uvedomiť si, že tam bolo veľa dobrý veci, ktoré sa stalo. Aj keď sa cítite naozaj zdôrazniť, v noci alebo naozaj naštvaná, alebo Naozaj smutný alebo unavený. Oh, môj bože. Ja ani neviem, či je to napísané, že dobre, pretože som nemal skorigovať to. Ale my si to prečítať. I obyčajne nemajú čítať moje časopis, samozrejme. "Zajtra budem učiť mojej poslednej CS50 časť roka. Je to šialené, ako rýchlo ten čas letí. Napriek tomu, som ohromený tým, ako rôzne moja skúsenosť učí v tomto roku bol ako keď som bol vo druháku. Pre začiatok, určite viem, materiál lepšie. Ale nehovorte to mojej prvej kohortu študentov, ktoré. Ešte dôležitejšie je, však, som si uvedomil, že radosť, ktorá prichádza z postavenia v prednej časti miestnosti, čo začína ako cudzinci, ale skončí ako v aspoň, priatelia na Facebooku, je nie je prvý rok náhoda. Skôr je to z vedomia, že v niektoré malé spôsob, pomáhate talentovaný, premýšľavý, nádherný, a vášniví ľudia dozvedieť niečo viac o informatike. Ste presúva že žiarovku len bit v zásuvke, tak, že je schopná žiariť jasnejšie ako vy, alebo oni, by si mohol predstaviť na začiatku semestra. Tie pomáhajú zase tie mračí hore dole a klásť otázky, ktoré poskytnúť podporu, ale stále umožňujú Študenti sa postaviť na vlastnú päsť. Je to rozhodne nie je prehnané povedať, že táto časť je moja obľúbená časť týždňa. Alebo dokonca, že som neváhal povedať, že je to všetko, na 17:30 každý týždeň, pretože vedel, že to bude príliš dlho kým sa znova stretneme. Napriek tomu, že som neuveriteľne vďačný každý, kto mi dal to možnosť vrátiť k ostatným. Dávidovi za jeho trpezlivosť a dôveru. K filmové a produkčné posádkou, pre takže vyzerám trochu slušný. A čo je najdôležitejšie, aby svojim študentom, bez ktorých by som mať žiadny dôvod k stráviť 10 hodín prísť na to najlepšie spôsob, ako kresliť odkazy, alebo vyložiť Tabuľka delfínov, cez JavaScript. Ako vždy, to bolo požehnanie. " Takže s tým, ďakujem chlapci. Uvidíme sa všetci na CS50 veľtrhu, a Hackathon, či tam si. A ak máte nejaké otázky, budem sa držať okolo, kým nie sú k dispozícii žiadne ďalšie. Ale ďakujem vám chalani za skvelý rok. [APPLAUSE] SPEAKER: by som mohol plakať.