>> SPEAKER: OK, pa, nećete vjerovati, , ali prošlog tjedna, u ponedjeljak, u Pierce, ja
bio je u podrumu.
Ja nikad ne idu na Piercea.
A ja nikad ne idem natrag, jer Ostavio sam stvari sama,
kao što je, pet minuta i netko Ukrali računalo i moj
telefon iz mog ruksaka.
Što znači da sam ga dobio natrag, a tada manje nego tjedan dana kasnije
je dobio opet ukraden.
>> A onda ga je dobio uključen -
Find My iPhone nastavlja biti od osobite pomoći.
Tako sam i dalje poticati ne bi ga koristiti.
Pokazalo se na jednom, i to je bio u MIT-a, kao i 15 minuta kasnije, te osoba
zove ovaj telefonski broj koji je pokazao u mojoj AT & T popisa poziva.
>> Tako sam otišao online, pozvao da se telefon broj, a on je otišao ravno na to
telefonsku sekretaricu na španjolskom.
A nisam čuo za njega, jer.
Pa sam morao dobiti novi računalo i telefon.
Znam.
Da.
Ali, ako vi želite čip u mom Računalo fonda nakon toga, to je razlog zašto
Ja sam te pitao ovdje.
Šalim se.
Ali to je bilo stvarno tužno i traumatično.
>> No, sve je to sada vratiti, i to je bio razlog zašto p-set 8 je toliko dugo, jer je
Nisam imao računalo.
I netko ga je ukrao.
I sam e-poštom, pitali ih bi se grade svoje p-set 8.
No, oni rekli ne.
I ja sam bio kao, mogu imati moj računalo vratiti?
I oni su kao, nema.
Šalim se.
>> OK.
Ovo je naš zadnji dio, a ja imam par - imamo samo tri
stvari na dnevnom redu.
Idemo razgovarati malo o Q vodič.
Onda ćemo potrošiti 15 minuta na hladnom demo.
Onda ćemo svi kažu zbogom jedna od druge.
Zapravo ne trebate vaše računalo ili olovku ili papir za bilješke, ili
slijediti zajedno.
Pretpostavljam, ako imate računalo gore, onda ste na Facebooku.
Dovoljno govori.
Osim ako ste ispunjavanjem Q vodič, koji je na prvom mjestu.
>> Q vodič je otvoren.
Vi ste imali e-mail o tome.
Nakon svega Q stvari se podnosi na Kraj godine, dobivam sve
Q komentari u ocjenama iz svakoga tko odluči da će mi dati povratnu informaciju.
I tako, kada idete u Q -
Ja ne znam da li se to učiniti, Jeff, jer si i proširenje student.
No, kada se ide u Q, ako niste to i prije, što pokupiti vaš
učitelj, koji je David Malan.
Morate ga napraviti.
>> A onda možete pokupiti TFS.
I vi možete pokupiti što više TFS kao što želite.
No, tu su i 60 od nas.
Vi ne morate pokupiti sve.
Vi me samo možete odabrati, ili samo pokupiti Nekoliko drugih ljudi, ako želite, da se
dati im povratnu informaciju što je dobro.
I onda ste dobili rezultate na svim tim različite osi, i onda možete otići
im povratne informacije.
>> I onda, kao i mjesec dana kasnije, Ja ću dobiti sve povratne informacije.
I baš kao i povratne informacije koje ste bili daje mi tijekom semestra, ja
čitati sve to.
I to je stvarno od pomoći, a to pomaže mi rasti kao učitelj i kao
pojedinac.
Dakle, molim te, potrajati neko vrijeme da to učinite.
Mi samo će biti ovdje Jer, kao što su, 30 minuta.
Dakle, ako želite, na kraju to, da se potrajati pet minuta, a samo ispunite
Q, jer ne uzima bilo više vremena od toga.
To bi bilo divno, a također dobili svoje ocjene natrag brže ako
što ispunite Q.
>> Dakle, većina vas to napraviti i prije -
ili ne, oko pola od vas su to učinili prije.
Ali, ako ste brucoš, to je ono što jest.
To će biti isti za sve klase.
Učinite to.
To traje pet minuta.
No, isto tako, ako ste to učiniti malo ozbiljno, to nije najgora stvar
u svijetu, jer ja sigurno shvatite to ozbiljno.
>> Dakle, ako ste me ostaviti smješka, Ja ću vam zahvalan.
Ali isto tako bih zahvalan ako vam ostavila me više nego smješko.
No, to je do vas.
Ne mogu vam reći - ili kao veliki smješko lice, s kapitalom D. To bi
biti još bolji.
>> U redu, to je sve što imam za Q. Ako bilo kakvih pitanja, možete pitati
mene, ali samo po sebi jasno.
Samo, molim te, to ispunite.
Ja bih jako ga cijenim, i to puno znači za mene.
>> OK, to je ono što ćemo potrošiti 15 minuta prolazi kroz.
Ja ću vam pokazati neke koda.
Mislim da je to stvarno cool, i to mi je dobio više
uzbuđen u računalnoj znanosti.
Dakle, nadam se da će to učiniti isti za sve vas.
>> Mi ćemo otvoriti - i sve to Kod ću poslati na vas kasnije.
Ali mi samo idete otvoriti -
Ja sam u svom terminalu -
ćemo otvoriti ovaj program zove [? MySum. ?]
>> Može li svatko to pročitao, ili trebam učiniti veći?
Može li mi netko reći što se to kod će to kad sam ga pokrenuti, ili što je to
Program će učiniti kad sam ga pokrenuti?
>> [? Avi,?] Što mislite to će učiniti?
Završi žvakanje.
Vi ne bi trebali razgovarati s vaša usta otvorena.
>> PUBLIKA: Da li je potrebno hrpu Argumenti, naći sumu njih vraćaju
zbroj, a zatim ga ispisati?
Ili je potrebno u dva argumenta, a onda to ne [nečujan].
I onda se ispisuje god rezultati su.
>> SPEAKER: Zatvori, jako blizu.
Svatko želi dodati [? ono Avi?] rekao?
Trebate li dati ovaj program bilo naredbenog retka argumente?
>> Ivanković: Ne.
>> SPEAKER: Ne
Što će se dogoditi ako ne dati bilo naredbenog retka argumente?
Ja samo pišem dot kose crte MySum.
>> PUBLIKA: 1 plus 2 jednako 3.
>> Zvučnika: 1 plus 2 jednako 3.
I to će ispisati da je out.
To je točno.
Vidjet ćete da je ispis f linija na dnu.
To će ispisati A, B, i zatim zbroj a i b.
I mislim da se pretpostaviti da Zbroj radi ispravno.
Dobra pretpostavka.
>> OK, a što će se dogoditi ako dati ono što je argument?
[? Manu? ?]
>> Ivanković: Bit doda sve Prvi argument je da b.
Ili do 2, žao.
>> Zvučnik: Da, u 2..
Zna li itko što strtol radi?
U osnovi je atoi.
Atoi je zapravo fancy verzija -
ili jednostavnije verzija strtol.
No, to zapravo koristi strtol.
I sam saznao, jer sam htjela nešto kao atoi, a onda sam se kada
nije atoi, pročitao sam ovdje.
I našao sam "takvo ponašanje je ista kao "strtol.
Dakle, to je u osnovi atoi za sve namjere i svrhe.
I vidite, čak sam koristiti null i 10.
>> To zapravo vam omogućuje da se niz, i pretvoriti ga u velikom broju, i izaberite
ono baza da želite to učiniti u.
Dakle, ovo je baza 10 ovdje.
Mogao sam učinio baza dva za decimale, Baza 16 za heksadecimalni.
To je super.
Ali ne duljimo, to traje dva brojevi i dodaje ih zajedno.
>> Tako ćemo ga pokrenuti.
A vi ćete primijetiti, postoji su neke stvari -
pa imam makefile upravo ovdje, a Ako vam se otvoriti da gore, neke stvari
primijetit ćete se razlikuju.
Konkretno, ovaj argument upravo ovdje, vjerojatno
nisam vidjela prije.
Općenito, možemo sastaviti stvari s crtica nula, nula.
Crtica nula, nula, znači ne činiti bilo optimizacijama, prevodilac.
Nemojte pokušati učiniti ništa fancy, ili napravite nešto pokrenuti brže, ili se
osloboditi od varijabli koje su potrebne.
Ne optimizirati ovaj kod na sve,
>> Ja tražim treće razine optimizacije.
Pa pitam prevodilac učiniti puno optimizacije.
Možete promijeniti da u Makefile kada imate ovaj kod, ako želite
da vidi drugačije stvari.
Koje ćemo pokazati u sekundi.
Tako smo pokrenuti moje zbroj 1 plus dva plus tri.
Neka mi netko da dva argumenta.
>> PUBLIKA: 4 i 5.
>> SPEAKER: 4 i 5.
Hvala Vam.
Velika, to radi.
Koje su neke druge dobre argumente pokušati, kako bi bili sigurni to radi?
Svatko?
>> PUBLIKA: 0.
>> SPEAKER: 0 i?
>> PUBLIKA: Negativna 3.
>> SPEAKER: Djeluje.
No, oni su dobar izbor.
U redu, tako da ćemo se vratiti ovdje.
To je mysum.c.
Primijetit ćete da postoji i nešto zove sumfunction.c.
A to, kaže, oh, postoji nešto definirano u sumfunction.c.
Ja ne uključuju ovu sliku ovdje jer ja ne trebate.
Ali sam ga povezati kad sam sastaviti, što ste primijetili.
>> Idemo pomicanje gore.
Vidjeli smo kad smo sastavili mysum, pravo tamo, u binarnom smo povezani s
sumfunction.o.
I ne treba zaglavlje datoteke jer, naravno, tu je
Funkcija izjava.
Tako oštre su obično samo stavlja u funkciji deklaracije.
Evo upravo sam ga staviti ravno u kodu.
I tako mi je potrebno učiniti je link u binarnom, što mi je činiti.
>> Svejedno pretpostavljene za ono što je u sumfunction.c?
Ono što kod sam napisao u sumfunction.c?
>> PUBLIKA: [nečujan].
>> SPEAKER: Bilo nagađanja?
Da?
>> Publika: mislim, definira neki [nečujan].
>> Zvučnik: Da.
Tako radim Pisanje je int suma int.
Pišem ovu liniju, a onda imam otvoren kovrčava brace, zatvorena kovrčavu braće.
Što mislite pišem unutar onih vitičastim zagradama, unutar te funkcije?
Da?
>> Ivanković: Povratak jednako.
>> Procesor: To je stvarno dobar pogodak.
Tko misli [? Manu?] Je u pravu?
Ona kaže da se vrate plus b.
OK, ne može svatko.
[? Akshar,?]
što učiniti, previše?
Jesi li siguran?
OK.
Što?
>> PUBLIKA: precizirao Možete ga krivo.
>> SPEAKER: Ne, nisam.
Da, samo se šalim.
U pravu si.
To je upravo ono što kaže.
To je povratak na plus b.
To čini puno smisla.
>> OK, vratimo se ovdje.
Vidimo kako header -
to je vrsta povrata.
Sjeti se, vidjeli smo da je jedan dan, povratak vrstu funkciji, ali ide
ispred naziva funkcije int.
Evo, ja sam napisao int.
Što mislite da će se dogoditi, ako se u to funkcija, ja ne pišem int, ali
Pišem nepotpisani?
Razlika, naravno, da se nepotpisani predstavlja samo pozitivno
cijeli brojevi, i int može biti pozitivno ili negativno.
>> Tako sam promijenio povratak tipa ove funkcije.
Ovaj broj ne odgovara taj povratak upišete ovdje.
Što mislite da će se dogoditi kad sam sastaviti?
Trebali bi vikati na mene.
Nema deranja.
>> Što kad sam pokrenuti program?
Idemo napraviti prije 0 negative 3, ili negativna 1.
Ona još uvijek radi, iako govorim to je povratak nepotpisani cijeli broj.
Jasno je da to ne vraćaju nepotpisani cijeli broj.
To je vraćanje potpisanu cijeli broj.
To je vraćanje negativan 1.
OK, to je čudno.
>> Što ako odem u ovdje i to?
Tako sam promijenio sve od int na nepotpisani.
To samo može potrajati nepotpisane cijelih brojeva.
No, mi još uvijek mislim da će pokrenuti?
>> Publika: Da.
>> SPEAKER: Hoće.
To je suludo.
I prolazimo u jasno dodjeljuje cijeli broj, možemo proći dva potpisana
cijeli broj, to još uvijek radi.
>> OK, bilo koje ideje zašto to još uvijek radi ili što se događa?
Da, Jeff.
>> Ivanković: To ima veze sa svojim optimizacija da
istaknut.
>> SPEAKER: Ne
Mogli bismo promijenili optimizacije, on će i dalje raditi.
Mogu to učiniti za vas, ali -
>> Publika: Ja ću uzeti za riječ.
>> Zvučnik: Da.
Ako otvorite makefile upravo ovdje, Promijenio sam optimizacije.
Na taj način možete napraviti crtica nula, nula.
To će i dalje raditi.
Ostali misli?
>> Momci sve očekuje na posao, tako da zašto si očekivao da će raditi?
Ne?
Tišina.
OK.
Moram čekati sedam sekundi, zato sam postavila pitanje.
>> Pa super stvar o C, a vi ste Vjerojatno doživjeli - vama
ne može imati, to može biti prvi put.
No, kao što svi znamo, kada pišem nešto u C, to ne sprema kao
ovaj na računalu.
To je spremljena kao one i nula.
To ide iz C kod za montaže kod.
>> Je li netko vidio kod montaže prije, stroj za montažu kod?
Mi ćemo pogledati u sekundi.
To ide iz C kod za montaže kod.
A ti dečki znaju etape of kompilaciju.
Imao si zapamtiti da je za kviz jedan, , a zatim ga pisati na kvizu nula.
Većina ljudi pogriješili.
Mislim da ti dečki ga razapet.
>> No, ti dečki su najbolji poglavlje za kvizove, usput.
Koji je strašan.
To vam neće naškoditi.
Ne budite zabrinuti.
No, to je stvarno super.
Dobar posao.
>> Tako to ide u tekućoj jeziku i onda se ide na one i nula.
I oni i nula se spremaju na računalo, i to je ono što sprema u
a.out, ili u ovom slučaju, izvršnu datoteku.
I radit će one i nula.
Zar ne?
Naučili smo to i prije.
>> Dakle cool stvar je, to nepotpisani Ideja, ideja o vrstama Ints nepotpisani,
et cetera, et cetera, to je ovdje u C jeziku.
Oni postoje.
Ali vrste ne postoje one i nula.
Vrste uopće ni postojao Razina zbirni jezik.
Dakle, to je nešto što postoji u C svijet, ali ne postoji u računalu
svijet ili procesor svijet.
To je neka apstrakcija da C jezik je uključen, kako bi naši
život lakšim.
>> Tako je na kraju dana, ja mogu pisati mnogo različitih stvari ovdje, i to
ne čini razliku.
Budući da postoji samo C u svijetu.
To ne postoji u one i nula svijet.
I našeg programa izvršavanja u one i nula svijet.
Dakle, vaš um je očito još nije otkrivena.
No, mislim da je to super.
Da, Jeff.
>> Publika: Dakle, ako umjesto radi int, vi char.
A ti si bio -
>> SPEAKER: Ajmo u sek.
>> PUBLIKA: Jer onda ćete dobiti nepotpisani ide s negativnog na 128
127 ili 0-255.
>> SPEAKER: Dakle char je problematično.
Zna li itko zašto char bi problematična, a zapravo ne bi
promijeniti stvari u one i nula svijet?
>> Ivanković: Zbog veličine char.
>> SPEAKER: Veličina char je 1.
Dakle nepotpisani je 4 bajta.
Dakle char bi zajebeš stvari.
No, ono što je 4 bajta koji je odnose na char?
Ili na koji dodaje jedan dodatni -
možete staviti još jedan lik Nakon znakom.
>> PUBLIKA: Char zvijezda.
>> SPEAKER: Char zvijezda ima 4 bajta.
Tako ćemo nešto učiniti to je char zvijezda.
>> Dakle, to će vjerojatno raditi, ali mi smo nešto učiniti, čak i
luđe od toga.
Po mom mišljenju, luđi.
>> I sada sam napisao funkciju koja vraća pointer, i to traje
pokazivač i nepotpisani vrijednost - mi ćemo promijeniti ovo natrag u int tako da nismo
previše promjena odjednom.
I to ima niz naziva, indeksi u nizu i vraća
adresa.
Vidjeli smo ove operatere prije.
To, što ti misliš ovo ide to učiniti, za uzvrat, kad sam ga pokrenuti?
Što mislite da će to učiniti?
Bilo nagađanja?
>> PUBLIKA: SegFault.
>> SPEAKER: Što?
SegFault?
To je dobra pretpostavka.
Tom kaže istu stvar.
Bilo koja druga nagađanja?
>> Tko misli da će učiniti istu stvar?
Tko misli da će SegFault?
To čini istu stvar.
Oprostite.
>> Ali, naravno, stavili smo u 1. i 2..
A oni su i vrijede, zar ne?
Da vidimo, možemo ići na Drugo mjesto niz.
Ali što ako smo napravili b Negativan broj?
To je vjerojatno bolje mišljenje za nešto segfaulting.
Ona još uvijek radi.
>> OK, to je sad lud.
To je jednako važeći funkciji suma.
To se isto točno stvar kako vratiti i b.
Može li netko objasniti zašto je to dobro Ukratko funkciju, ili zašto to radi?
Što se ovdje događa?
Zašto to isti stvar kao i naš stari funkciji sum?
[? Akshar,?]
što se događa?
>> PUBLIKA: Jer kad imate to je obraćanje
mjesto memorije -
i kada učiniti ampersand, to ide tu memorijsku adresu.
A kad idete na B, ti si vrsta kreće koraka od tog memorijske adrese,
vraÄ da.
Dakle, vi ste zapravo, u stvari, Dodavanje i b [nerazumljivo].
Gdje su standardne operacije Na taj povratak?
Kao, gdje zagrade pasti?
Je li povratak na adresi na prije ili poslije [nečujan]?
>> SPEAKER: To će indeks u b -
ili indeks u - a zatim vratiti na adresu.
U redu, tako da su svi razumjeli ono [? Akshar?]
, rekao je, i objasnio, zašto se to radi?
Nisam, prvi put kad je netko objasnio mi to.
Bi li netko sliku ovo objasniti?
Idemo i nacrtati, s nema oznake, to je super.
Pronađeno neke.
>> Dakle, imamo niz koji je Niz kutije.
Prvi je indeks 0, indeks 1, 2, 3, 4, točka, točka, točka.
Tipičan polje.
I osim što indeksa svi oni imaju memorijske adrese.
Tako ćemo dati ovoj memorijsku adresu 13, 14, 15, 16, 17, i tako dalje.
Svi su ovdje do sada.
>> Tako je adresa.
Ime niza, pokazivač Tu se sprema.
To je pointer, to je mjesto memorije, na početak niza.
Dakle, ako bi to bilo polje, bi vrijednost 13.
I, naravno, možemo dati bilo koje vrijednosti želimo.
Char zvijezda, možemo dati bilo memorijske adrese želimo.
Možemo mu dati 0, možemo ga dati negativna 1 - negativna 1 ne postoji,
, tako da je vjerojatno problematično, ali vidjeli ste da je to još uvijek radio.
Tako možemo dati bilo koji broj želimo, bilo memorijska adresa želimo.
>> Zatim, int b, kaže, u redu, ide ovaj broj od koraka u nizu.
Dakle, ako je B jednako 2, i iznosi 13, mi smo na memorijskoj adresi 13.
I idemo dva koraka u, i tako smo ovdje.
A znak za struju znači povratak adresa ovog mjesta.
A adresa je, dakako, 15.
Tako smo dobili 13 plus 2, ili plus b, što je za 15.
>> Pitanje je, međutim -
Žao mi je.
Da li to pojasniti stvari zašto to radi?
>> Ivanković: Zašto bi to raditi ide -
tako da možete imati niz i ići na minus indeksa?
>> SPEAKER: Točno.
Tako smo radili negativne brojeve, , tako da je -
nema to smisla, iako, Prvo, [? Avi,?]
za vas?
>> Ivanković: Da sam samo [Nečujan], ali -
>> Zvučnik: Da, to bi se vratili 15 godina.
Ako je 13, a b je 2, to bi se vratili 15 godina.
>> Ivanković: Pa indeksiranje nula ne postala problem, zar ne?
Budući da se krećete od 0.
>> SPEAKER: Točno.
Tako se krećete - pa ako b je 0, ne bi preseliti bilo gdje.
A ti samo bih se vratio na adresu -
ako je b je 0, to je u suštini povratka tu adresu.
Prolazak u char zvijezda A i povratka adresa samo se vraća,
bitno.
>> OK, pitanje je zašto negativni brojevi raditi?
I to je stvarno super stvar , jer to bi trebalo SegFault.
I to bi SegFault ako smo učinio ovako nešto.
Recimo, int.
Tako se to kod izgleda identično i trebali ponašati identično.
U osnovi, x je promjenjiva smeća, i tako to treba ponašati identično.
>> Učinimo to -
Ups -
u zvijezde.
OK, već dobivamo greške ovdje, jer je on već će biti ljut
po meni, jer je on već ne zna što dolazi.
Konkretno, drugi.
Adresa naslagane sjećanju povezana s lokalnom varijablu.
>> U biti, ja ne idem sastaviti to, a onda ću napraviti undo
ono što smo upravo učinio.
No, budući da smo zapravo nikada Pristupom što je u memoriji
mjesto, to se neće SegFault.
Nikad nećemo zapravo gleda na ono što je u drugoj kutiji ili ono što je u svakom kutiji
tog polja.
Mi smo samo rekao, ovdje je adresa u stvari tražimo i
vratiti tu adresu.
Nećemo se zapravo događa u Niz gledati na tom mjestu.
I zato mi ne dirajte uspomenu, ne upasti u nevolje.
Mi ne dobijete SegFault.
>> Ako bismo pokušali, opet, to dirati memorije, dotaknuti ono što je bio na a ili b -
ili nosač b, i uz pretpostavku bio 0 i -
ako je 0, čak, da će biti prilično loše, jer ne možemo ići
do kraja u toj zemlji.
Ako A i B su oba 0, a mi smo pokušali dirati ono što je bilo, onda bismo
upasti u nevolje.
Ali ako mi ne diraj ono što je tamo, samo smo se vratili adresu, to je
zapravo ne ide na SegFault jer to omogućuje obavljanje tih poslova.
To samo dobiva ljut na vas, i dobiva super ljutiti, kada pokušate i dodir
stvarna sjećanja i vratiti ono što je na toj memorijskoj lokaciji.
>> Ima li to smisla?
To je samo luda dio C. Dakle, da ima još jedan od njih.
>> Tko misli da je to cool?
Više ljudi.
To je dobro.
OK, ovo je naša posljednja.
I volio bih da mi kažete je li ili ne mislite da je to ide
učiniti isto točno stvar.
>> Ja sam to zapisano negdje.
Neću ih napamet.
>> Da vidimo, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4.
Dakle, ovo je polje, sada, Ne funkcija.
I to je polje jer imamo trg zagrade, ne vitičastim zagradama.
I to je polje koje vrste?
Svatko, hmm?
>> PUBLIKA: Njihovi heksadecimalni brojevi?
>> SPEAKER: Ali što je tip C?
Oni svi imaju heksadecimalni brojevi.
Što je tip C?
To vam govori.
>> Ivanković: To je nepotpisani znakova.
>> SPEAKER: Dobro, nepotpisani znakova.
I dva heksadecimalni brojevi jedan bajt.
Dakle, to su 1, 2, 3, 4, 5, 6, 7, 8, 9 bajtova.
To je niz od 9 bajtova.
>> U redu, što vjerojatno već znate Odgovor na ovo pitanje.
No, ono što mislite da će se dogoditi ako pokrenem ovo?
Ja kažem, opet, u mysum.c, Ja očekujem funkciju
koji traje dva prirodna broja.
I ja sam, umjesto rekavši da je zbroj je niz znakova.
Što će se dogoditi kada se Trčim. / Mysum i napraviti?
>> Pa, kao prvo, većina vas će vjerojatno Slažete koje čine - Oh ne, samo se šalim.
Što sam učinio krivo?
Uh.
To bi trebao biti u vitičastim zagradama.
To je kako se započeti niz.
Moje loše.
>> Tako smo već vidjeli prije tog tipa su apstrakcija C-razini, ne
Razina računalo apstrakcija.
Dakle, većina vas je vjerojatno da očekuje da će bi, ili uz pretpostavku da će to učiniti.
No, što kad sam pokrenuti. / Mysum?
Što će se dogoditi?
Bilo nagađanja?
>> Ivanković: Bit će to ispisati riječi.
>> SPEAKER: Bit će to ispisati riječi.
Koja riječ?
>> PUBLIKA: [nečujan].
>> SPEAKER: Bilo koja druga nagađanja?
OK, ispisati rečenicu.
Možete imati bilo koji izraz.
To će biti vaša strana.
Svatko tko ima drugačiji pogodak?
Anna, što ti misliš?
>> Ivanković: To će ispisati -
dva slova, ili [nečujan] jedno slovo.
>> SPEAKER: Jedno pismo.
>> PUBLIKA: Mogu li računati koliko mnogi [nečujan]?
>> SPEAKER: Devet.
Pa, ja ću to raditi.
To čini isto točno stvar.
Ona dodaje dva broja zajedno.
Pa, neka je proći dva argumenta.
To ne uzeti argumente.
Dakle, ja ne znam gdje bi to moglo možda i dobiti te argumente.
Ali neka prođe na 100 i 0.
I dodaje 100 i 0.
To je suludo.
Mislim da jesam.
>> Negativno 4, koji radi previše.
To možete učiniti sve što želite.
To je jednako vrijedi funkcija suma.
Ova je funkcija suma.
Ali, ne, ti si rekao da je niz bajtova.
Dakle, ono što se ovdje događa?
>> Dakle, opet, vratimo se na tu ideju kako smo rekli na samom početku.
Možete ići od C-level kod, na skupštini jezik, kako bi one i nula.
To je heksadecimalni.
No, to je zapravo samo Mnogo one i nula.
To je 72 i one nule, zar ne?
72 one i nula.
9 bajtova.
Svaki bajt ima 8 bitova.
Svako malo je jedan ili nula.
Dakle, 72 one ili nula.
Upravo sam ih napisao ovako - umjesto da je pisanje kao puno
one i nula.
>> No, to će ići od C-razini jezik, na skupštini
jezik, na kodu.
A to će se ispisati u kodu, negdje, ove 72 one i nula
da sam napisao ovdje.
Dakle, negdje u to -
idemo ovdje -
negdje u mysum, program, postoji su ovi 72 one i nula da sam
napisano i rekli pisati.
>> Sad, bilo pokušaja za ono što one 72 one i nula znači?
>> PUBLIKA: Vjerojatno isto stvar kao povratak plus b.
>> SPEAKER: Vjerojatno isto stvar kao povratak plus b.
Idemo potvrditi da.
Idemo shvatiti kako sam to učinio.
>> Dakle, ako vam se vratiti ovdje, ja vam kažem pokrenuti ovu naredbu, objdump-S
sumfunction.o.
Idemo pokrenuti ga. objdump -
obj, deponij.
Uglavnom to mi može dati sve što želim vidjeti.
To mi može dati sklopa jezik.
To mi može dati one i nula.
Ona ima tonu zastavama.
To je jedan idemo koristiti za sada.
Dot -
kao što vidite na slajdovima -
crtica kapital S kaže, poprskati, Izvorni kod -
ova linija je iz C - sa skupštine code is one i nula.
I mi ćemo pokrenuti je na sumfunction.o.
Jer to će biti lakše vidjeti.
Opet - hmm?
>> PUBLIKA: precizirao Možete ga krivo.
>> SPEAKER: Ali ja zapravo idem to jasno na sekundu.
Ja sam prvi put će se otvoriti Samo sumfuntion.o.
>> PUBLIKA: to je precizirao Vi u redu prvi put.
>> SPEAKER: Classic.
Sum -
da je teško riječ, ipak.
Iznenadio bi se.
U redu, tako da je ovo sumfunction.o.
Nisam ni znao.
Postoji puno nula, jasno puno nule, a tu je neki drugi
stvari koje nije nula.
Ali uglavnom nula.
Izgleda kao da ima nekih one.
Pa jasno, to je teško za čitanje.
To je binarni jezik.
>> Nemojmo sada ga otvoriti -
što?
Što ja radim krivo?
Jesam li to čarolija ispravno?
OK, to je nezgodno.
Trebam jedan drugi shvatiti što radim krivo.
To je jedna pogreška.
To je malo čudno.
Oh, to je razlog zašto.
>> Ja ću se vratiti na naše početne jedan, tako da možemo pogledati
Cilj kod toga.
Jer tu nije stvarno ide biti sve, kad smo stavili
one i nula u.
Tu smo.
U redu, tako da svatko može vidjeti.
Ova je funkcija, kao što sam rekao, ugasiti C linije -
izvorni kod linije -
s nekim uputama za montažu.
>> Ovdje je naš izvorni kod linije.
Evo jedan, evo još jedan.
Ovdje je montaža upute.
To je ono što oni izgledaju.
Upute za sastavljanje -
možete saznati više njih, ako se uzme drugi CS klase, ali oni su
općenito upute.
I onda izvor i odredište.
>> I onda ovdje je binarni kod koji odgovara toj skupštini
upute.
Dakle, kao što možete vidjeti, ovaj iznos funkcija, na kraju dana, je tri
propisa o montaži.
Samo tri.
Jedan mov -
ovo m-o-v stoji za potez.
Dodaj zalaže za pridodati.
I r-e-t stoji za povratak.
Dakle, jedan mov, jedan dodatak, jedan povratak.
I to, ovdje, su nula i one koje odgovaraju tom kodu.
>> Dakle, one nule i one, ako znate one, možete samo staviti
one ravno u.
I onda ćemo učiniti Isto točno stvar.
Budući da, na kraju dana, sve ti si izvršavanje je dugi niz
nula i one.
I to je ono što vaš broj stvarno je.
>> A razlog -
pogledajmo jednu stvar.
Jesam li makefile otvoren?
Dakle, ako smo se vratili na crtica nula, nula ovdje -
Žao nam je, kapital o, kapital o nula, a ne nula, nula.
I mi uspio, to bi Još uvijek rade isto.
No, sada ste primijetiti da postoje Puno više propisa o montaži.
To je zato što, opet, pitao sam prevodilac ne raditi nikakve optimizacije.
>> Zato sam još uvijek mogao uzeti sve te nula i one, te ih baciti u,
i da će raditi.
Upravo sam se optimizacijama, jer to je malo lakše, a zatim,
napisati taj niz.
No, to će raditi jednako dobro.
>> U redu, idemo napraviti jednu konačnu stvar, jer mislim da je zgodnih dio.
Iako svatko je jasno Već dignut i bez riječi.
Naši umovi su pregorio.
[Nečujan]
>> Dakle, oni su od različitog CS, što je super zanimljivo,
da uzimam -
CS61.
Vrlo sam Vam savjetujemo da ga uzeti.
Ali kul dio o toj činjenici, da stvari su samo nule i one,
su da je sve nula i one.
>> Dakle, možete uzeti datoteku koja ima ispraviti nula i one koje želite
negdje u njemu, te da taj dio nula i one, kao funkcija iznos.
>> Što mislim pod tim?
Mislim da možete uzeti datoteku slike koji ima ispravan niz nula i
one, koji ispisuje nešto se na jednoj slici.
I jedan program može protumačiti je slika, ali ga ne može protumačiti, ako
želite, kao funkcija sum.
>> Dakle, ako smo htjeli otvoriti, za Primjerice, ova slika.
Idemo, Hello Kitty.
Wonderful malo slika.
Ovdje je da niz nule i jedinice.
Tih 72 nula i one postoje u ovoj slici.
>> Dakle, ono što ja mogu učiniti, onda je pisati -
Moram se sjetiti gdje su.
Naći ću da je u sekundi.
Ali mi radimo -
neka mi saznati gdje su.
Jedna sek.
Učinimo -
>> PUBLIKA: [nečujan].
>> SPEAKER: Hvala.
Dakle, ako ćemo izvršiti ovaj program, koji umjesto da čita u datoteku, onda to ide
do tog indeksa u spisu.
A onda, opet, baš kao i mysum, traje dva broja.
Možemo dodati brojeve točno iste kao smo radili prije, što ide u
pokazati vam kako je činjenica da je, na kraju dana, sve su te stvari
nula i one.
I to je samo kako se odlučite da ih tumače.
>> A ako zaista izgleda na ovoj slici -
neka je povećavanje malo.
Može li to svi vide?
Primijetit ćete upravo ovdje, tu neka čudna mrlja.
Idemo - ovo je izvorna slika.
Primijetit ćete ovdje nema mrlja.
Taj je broj za funkciju sum, je da je malo mazati tamo.
>> I zapravo, opet, ako bi saznali više o tome, shvatit ćete da je to
Hello Kitty, koja ima još veći mazati, ima kod koji se može preuzeti
računalo, ako to nije zaštićeno na odgovarajući način.
Dakle, što zapravo može pokrenuti ovo.
Neću da ga pokrenuti upravo sada.
No, možete pokrenuti ovaj Pozdrav Kitty slika, a može
preuzeti vaše računalo.
>> Dakle, to je sve za demo.
Da li itko ima bilo kakvih pitanja, komentari, zabrinutost?
Mislim da ove stvari je fascinantno.
To me je potaknulo da bi saznali više.
Ja visoko preporučiti, ako ste zainteresirani na sve na CS, razgovarati sa mnom.
Iako sam socijalne studije Koncentrator, ja sam CS, sekundarno, pa
Ja još uvijek znamo malo.
Ali ja sigurno znam što Klase koje treba poduzeti.
Mislim da je to sve jako zanimljivo, i ja podržavam, naravno, da se
saznati više ako ste zainteresirani.
>> OK, ja imam jednu konačnu stvar.
Oprostite.
Ima li pitanja?
Nisam pauzirati čekati ako itko imali bilo kakvih pitanja u vezi toga.
>> Kome će biti CS usmjerivac?
Ili razmišlja o tome?
Jedan, dva, tri, četiri.
Jedan - samo jedan.
Anna-a je samo ruka koja je podigao autoritativno.
OK, to je u redu.
Assam, što ćete učiniti?
>> PUBLIKA: [nečujan].
>> SPEAKER: Konstantin?
>> PUBLIKA: fizika.
>> SPEAKER: Hej, to je bilo brzo.
Ti si imao loše iskustvo u CS50?
[Nečujan], što ćete učiniti?
>> Ivanković: Nemam pojma.
>> SPEAKER: Curt?
>> PUBLIKA: Econ ili CS.
>> SPEAKER: Econ ili CS.
Tom?
>> PUBLIKA: Radim Stat.
>> SPEAKER: Stat?
OK.
Ono što ste vi?
>> PUBLIKA: Me?
>> Zvučnik: Da.
>> PUBLIKA: Stat.
>> SPEAKER: Stat.
Oh, tamo idete.
Tom, razgovarati s Alden.
Emily, što ste vi?
>> PUBLIKA: Biomedical -
>> SPEAKER: Jeste li u tom dijelu?
>> Ivanković: Ne.
>> SPEAKER: OK, to je Emily.
Ona je moja prijateljica.
Jasno je da nije dobro od prijatelja, jer ona daje mi teško.
Ti bi mogao biti ljepši mi ispred svima, moj student -
>> PUBLIKA: Radim svoj Q vodič.
>> SPEAKER: Stvarno?
Uh.
OK, ti si nevjerojatna.
Ja vas toliko mnogo volim.
Oh boy.
>> U svakom slučaju, ja, sinoć, kao i sve ostalo -
Siguran sam da svatko čini uistinu naglasio je upravo sada.
Ne znam, su brucoš - su ti dečki naglasio je osjećaj?
Osjećam se pod stresom.
Bilo je to kao, idete kući za Dan zahvalnosti.
Ti si kao, ja ću učiniti sve te stvari.
>> Ivanković: To je toliko različiti.
>> Zvučnik: Da, a ti se vrati.
Jeff, ne osjećaju na taj način?
>> PUBLIKA: Samo sam pomislio Ja bih učiniti malo.
>> SPEAKER: OK, super.
Tako sam se vratiti, a ja nemam učinio ništa.
I to je sve super stresno.
I ja sam zabrinut, iskreno zabrinut, o tome je li ili nije sam
će završiti sve što moram.
Ali sinoć, nisam pod stresom, Bio sam malo tužan.
Tako sam napisao u časopisu o ono što sam bila tužna zbog.
I bio sam tužan zbog ove sekcije u ovoj klasi bliži se kraju.
>> Dakle, samo sam bio idući pročitati za vas dečki Malo isječak mog dnevnika,
od sinoć.
Mogu li dobiti neke salvete, neki tkiva iz Tom?
Ne, ja ću zaplakati.
Ja ne plačem.
Nije da ne mogu plakati, Ja jednostavno ne plakati.
Ja ne znam je li moja suza žlijezde radio - suzne kanale.
Nisam plakao u dugo vremena.
>> PUBLIKA: [nečujan].
>> SPEAKER: OK, hvala.
OK, tu je malo predgovor -
postoji neki drugi dijelovi mog dnevnika entry, jer sam pokušati časopisu svaki
Noć prije nego što sam dobio u krevet.
Ja visoko preporučiti journaling.
To vam pomaže da obrađuju stvari, a također biti vrlo zahvalan svoj dan.
I to ga čini puno lakše gledati natrag na dan i shvatiti da
bilo je dosta dobro stvari koje su se dogodile.
Čak i ako se osjećate jako naglasio noću ili uzrujan, ili
stvarno tužno ili umorno.
>> Oh, moj Bože.
Ja ne znam je li to zapisano da dobro, jer nisam ga korekturu.
No, mi ćemo ga pročitati.
Ja obično ne čitaju moje časopis, očito.
>> "Sutra ću učiti svoju finalu CS50 dio godine.
To je suludo, kako brzo vrijeme leti.
Ipak, shvatio sam koliko je različita moje iskustvo učeći ove godine bio
nego kad sam bio student.
Za početak, ja sam definitivno poznaje materiju bolje.
No, ne reci svoju prvu četu studenata koji.
Što je još važnije, međutim, shvatio sam da radost koja dolazi od stajanja
se ispred sobi što počinje kao stranci, ali završava kao, na
Barem, Facebook prijatelji, je Nije slučajnost prve godine.
Umjesto toga, to je od spoznaje da, u neki mali način, ti si pomaže
talentiran, promišljeni, divan, i strastveni ljudi nauče nešto više
o računalnoj znanosti.
>> Vi ste prebacuje tu žarulju samo malo u utičnicu, tako da je u stanju
zasjati sjajnija od vas, ili oni, nije mogao ni zamisliti na početku semestra.
Pomažete pretvoriti u one s neodobravanjem gleda naopako dolje i postavljati pitanja koja
pružiti podršku, ali i dalje dopustiti studenti bi se na svoje vlastite.
>> To sigurno nije pretjerano kažu da je ovaj dio je moj favorit
dio tjedna.
Ili čak da sam ustručavajte se reći, da je svega, u 17:30 svaki tjedan, znajući
da to će biti put predug do sljedećeg susreta.
>> Ipak, ja sam nevjerojatno zahvalan svatko tko mi je dao ovaj
prilika da se vrati na drugima.
Davidu, za njegovo strpljenje i povjerenje.
Da filmskoj i proizvodnje posade, za što mi izgledaju pomalo respektabilan.
I, što je najvažnije, kako bi svoje studente, bez kojih bih nemam razloga za
provesti 10 sati figuring out najbolji način privući naputke, ili nokautirati
Tablica dupina, preko JavaScript.
Kao i uvijek, to je bio blagoslov. "
>> Imajući to na umu, hvala vam dečki.
Vidjet ću vas sve na CS50 sajmu, a hackathon, ako si tamo.
A ako imate pitanja, ja ću staviti okolo dok više ne postoje.
Ali sam hvala vam dečki divno godišnje.
>> [PLJESAK]
>> SPEAKER: Možda ću plakati.