1 00:00:07,200 --> 00:00:09,100 [Powered by Google Translate] ROB Bowden: Let ar labhairt faoi tiomsaitheoirí. 2 00:00:09,100 --> 00:00:11,490 Go dtí an bpointe seo, tá tú clóscríofa suas díreach do cód foinse i 3 00:00:11,490 --> 00:00:14,260 roinnt comhaid, iad a sheoladh tríd an bosca mór dubh go bhfuil 4 00:00:14,260 --> 00:00:16,890 Clang, a thagann agus amach do chomhad inrite go ndéanann 5 00:00:16,890 --> 00:00:19,430 go díreach cad a scríobh tú i do cód foinse. 6 00:00:19,430 --> 00:00:22,170 Chomh draíochta leis sin le bheith, táimid ag dul a ghlacadh níos dlúithe 7 00:00:22,170 --> 00:00:23,590 breathnú ar cad atá ag tarlú i ndáiríre 8 00:00:23,590 --> 00:00:25,220 nuair a thiomsú comhad. 9 00:00:25,220 --> 00:00:28,580 Mar sin, cad a chiallaíonn sé rud éigin a chur le chéile? 10 00:00:28,580 --> 00:00:31,150 >> Bhuel, sa chiall is ginearálta, ciallaíonn sé ach 11 00:00:31,150 --> 00:00:32,580 Cód athrú scríofa i gceann 12 00:00:32,580 --> 00:00:34,680 cláir teanga eile. 13 00:00:34,680 --> 00:00:37,550 Ach de ghnáth nuair a rá le daoine siad le chéile rud éigin, tá siad 14 00:00:37,550 --> 00:00:39,660 ciallóidh tá siad ag cur sé as cláir ag leibhéal níos airde 15 00:00:39,660 --> 00:00:42,460 teanga teanga leibhéal níos ísle cláir. 16 00:00:42,460 --> 00:00:44,960 Féadfaidh na cosúil mhaith dtéarmaí an-suibiachtúla. 17 00:00:44,960 --> 00:00:48,090 Mar shampla, tá tú dócha nach bhfuil smaoineamh ar C mar ard 18 00:00:48,090 --> 00:00:51,440 teanga cláir leibhéal, ach tú a dhéanamh le chéile é. 19 00:00:51,440 --> 00:00:52,730 Ach tá sé go léir coibhneasta. 20 00:00:52,730 --> 00:00:55,790 Mar beidh orainn a fheiceáil, an cód tionól agus ar deireadh thiar meaisín 21 00:00:55,790 --> 00:00:59,270 Tá cód go bhfuil muid le chéile síos go dtí undeniably leibhéal níos ísle 22 00:00:59,270 --> 00:01:00,700 ná C. 23 00:01:00,700 --> 00:01:03,310 Cé go beidh orainn a bheith ag baint úsáide clang sa lá atá inniu taispeána, a 24 00:01:03,310 --> 00:01:06,360 go leor de na smaointe anseo anonn go tiomsaitheoirí eile. 25 00:01:06,360 --> 00:01:09,160 >> Chun clang, tá ceithre céimeanna móra sa foriomlán 26 00:01:09,160 --> 00:01:10,200 thiomsú. 27 00:01:10,200 --> 00:01:15,430 Tá na amháin, preprocessing atá déanta ag an réamhphróiseálaí; dhá, 28 00:01:15,430 --> 00:01:19,530 tiomsú déanta ag an Tiomsaitheoir; trí, le chéile 29 00:01:19,530 --> 00:01:22,010 déanta ag an cóimeálaí, agus ceithre, 30 00:01:22,010 --> 00:01:24,640 nascadh déanta ag an nascóir. 31 00:01:24,640 --> 00:01:27,600 Is féidir é a mearbhall go bhfuil ceann de na substeps an iomlán 32 00:01:27,600 --> 00:01:30,980 Tiomsaitheoirí clang a dtugtar an tiomsaitheoir, ach 33 00:01:30,980 --> 00:01:32,530 beidh orainn a fháil chun go. 34 00:01:32,530 --> 00:01:35,050 Beidh muid ag baint úsáide as ríomhchlár domhan simplí Dia duit mar ár shampla 35 00:01:35,050 --> 00:01:36,270 ar fud an físeán seo. 36 00:01:36,270 --> 00:01:38,380 A ligean ar ghlacadh le breathnú. 37 00:01:38,380 --> 00:01:40,330 >> Is é an chéad chéim preprocessing. 38 00:01:40,330 --> 00:01:42,520 Cad a dhéanann an réamhphróiseálaí a dhéanamh? 39 00:01:42,520 --> 00:01:45,560 Sa chlár go leor i bhfad gach C atá tú a léamh nó a scríobh riamh, 40 00:01:45,560 --> 00:01:48,310 atá tú a úsáid línte cód gur tús a chur le hais. 41 00:01:48,310 --> 00:01:51,730 Glaofaidh mé hash é, ach is féidir leat glaoch freisin punt, uimhir 42 00:01:51,730 --> 00:01:53,280 shíniú, nó géar. 43 00:01:53,280 --> 00:01:56,840 Tá aon líne den sórt sin le treoir réamhphróiseálaí. 44 00:01:56,840 --> 00:02:00,650 Tá tú le feiceáil dócha # shainiú agus # áireamh sula, ach tá 45 00:02:00,650 --> 00:02:03,690 Tá roinnt níos mó go n-aithníonn an réamhphróiseálaí. 46 00:02:03,690 --> 00:02:07,340 A ligean ar chur shainmhíniú # ár shampla Dia duit. 47 00:02:07,340 --> 00:02:11,690 Anois, a ligean ar siúl ach an réamhphróiseálaí ar an gcomhad. 48 00:02:11,690 --> 00:02:16,150 Ag dul thar clage an E-bratach, tá tú a theagasc a reáchtáil 49 00:02:16,150 --> 00:02:17,880 ach an réamhphróiseálaí. 50 00:02:17,880 --> 00:02:19,130 A ligean ar a fheiceáil cad a tharlaíonn. 51 00:02:22,250 --> 00:02:24,020 Breathnaíonn sé cosúil spits clang díreach amach gach rud 52 00:02:24,020 --> 00:02:25,200 ag an líne orduithe. 53 00:02:25,200 --> 00:02:27,800 D'fhonn seo ar fad aschur a shábháil i gcomhad nua ar a dtugtar 54 00:02:27,800 --> 00:02:33,850 hello2.c, beidh orainn gceangal> hello2.c chun ár n-ordú. 55 00:02:33,850 --> 00:02:37,800 Anois, a ligean ar ghlacadh le breathnú ar ár comhad preprocessed. 56 00:02:37,800 --> 00:02:40,810 >> Whoa, cad a tharla dár gclár beag gearr? 57 00:02:40,810 --> 00:02:43,890 Má théann muid go léir ar an mbealach chun an bun an comhad seo, beidh orainn a fheiceáil 58 00:02:43,890 --> 00:02:46,070 cuid den chód gur scríobh againn i ndáiríre. 59 00:02:46,070 --> 00:02:49,800 Fógra go bhfuil an sainmhíniú # imithe agus gach cás ainm 60 00:02:49,800 --> 00:02:51,950 a n-ionad le go díreach cad atá sonraithe againn i 61 00:02:51,950 --> 00:02:53,590 an sainmhíniú # líne. 62 00:02:53,590 --> 00:02:56,530 Mar sin, cad iad seo go léir typedefs agus dearbhuithe fheidhm 63 00:02:56,530 --> 00:02:58,140 ag barr an chomhaid? 64 00:02:58,140 --> 00:03:00,820 Fógra nach raibh an sainmhíniú # an réamhphróiseálaí amháin 65 00:03:00,820 --> 00:03:02,390 treoir atá sonraithe againn. 66 00:03:02,390 --> 00:03:05,280 Táimid chomh maith go bhfuil san áireamh # stdio.h. 67 00:03:05,280 --> 00:03:09,560 Mar sin, tá gach ceann de na línte dÚsachtach i ndáiríre ach a chóipeáil stdio.h 68 00:03:09,560 --> 00:03:11,810 agus a ghreamú isteach i barr an chomhaid seo. 69 00:03:11,810 --> 00:03:14,110 Sin an fáth go bhfuil comhaid header sin úsáideach do fheidhm 70 00:03:14,110 --> 00:03:15,160 dearbhuithe. 71 00:03:15,160 --> 00:03:17,740 Ina ionad sin de dhíth orthu a chóipeáil agus a ghreamú ar fad ar an bhfeidhm 72 00:03:17,740 --> 00:03:21,050 dearbhuithe ar intinn agat ar úsáid a bhaint as ag barr do chomhad, an 73 00:03:21,050 --> 00:03:22,990 Beidh réamhphróiseálaí cóipeáil agus greamaigh iad as an header 74 00:03:22,990 --> 00:03:24,140 comhad ar do shon. 75 00:03:24,140 --> 00:03:26,480 >> Anois go bhfuil muid ag déanamh preprocessing, sinn ag dul isteach 76 00:03:26,480 --> 00:03:27,680 thiomsú. 77 00:03:27,680 --> 00:03:30,725 Is é an chúis tugaimid seo a thiomsú chéim toisc go bhfuil an 78 00:03:30,725 --> 00:03:34,130 an chéim seo cá clang nach iarbhír a chur le chéile ó C a ghabhann leis 79 00:03:34,130 --> 00:03:35,370 Cód tionól. 80 00:03:35,370 --> 00:03:38,280 D'fhonn a bheith clang thiomsú comhad síos a thionól, ach 81 00:03:38,280 --> 00:03:42,030 leanúint ar aghaidh níos faide, pas a fháil sé an S-bhratach 82 00:03:42,030 --> 00:03:43,560 ag an líne orduithe. 83 00:03:43,560 --> 00:03:44,790 A ligean ar ghlacadh le breathnú ar an tionól 84 00:03:44,790 --> 00:03:47,390 comhad outputted sin. 85 00:03:47,390 --> 00:03:49,740 Breathnaíonn sé cosúil le teanga go leor eile. 86 00:03:49,740 --> 00:03:52,660 Is é Tionól cód an-próiseálaí leith. 87 00:03:52,660 --> 00:03:55,440 Sa chás seo, tá ós rud é an fearas CS50 reáchtáil ar 88 00:03:55,440 --> 00:04:00,470 próiseálaí x86 fhíorúil, is é an cód tionól x86. 89 00:04:00,470 --> 00:04:03,450 Is beag duine a scríobh go díreach i cód tionól na laethanta seo, 90 00:04:03,450 --> 00:04:06,490 ach faigheann gach clár C scríobh tú riamh a chlaochlú síos 91 00:04:06,490 --> 00:04:07,940 i tionól. 92 00:04:07,940 --> 00:04:11,440 Arís, tugaimid an chéim a thiomsú C i tionól 93 00:04:11,440 --> 00:04:14,170 ós rud é táimid ag dul ó leibhéal níos airde go leibhéal níos ísle 94 00:04:14,170 --> 00:04:15,480 cláir teanga. 95 00:04:15,480 --> 00:04:17,880 >> Cad a dhéanann an leibhéal tionól níos ísle ná C? 96 00:04:17,880 --> 00:04:21,660 Bhuel, sa tionól, táimid an-teoranta i cad is féidir linn a dhéanamh. 97 00:04:21,660 --> 00:04:25,120 Níl aon má tá, cé go Tá, le haghaidh tá, nó lúb de chineál ar bith. 98 00:04:25,120 --> 00:04:27,560 Ach is féidir leat accomplish na rudaí céanna go bhfuil na rialaithe 99 00:04:27,560 --> 00:04:30,270 struchtúir a thairiscint ag baint úsáide as na n-oibríochtaí teoranta 100 00:04:30,270 --> 00:04:32,350 tionól a dhéanann a chur ar fáil. 101 00:04:32,350 --> 00:04:35,960 Ach a fheiceáil ach conas is tionól leibhéal íseal i ndáiríre, a ligean ar dul 102 00:04:35,960 --> 00:04:39,320 céim amháin eile i ár thiomsú, le chéile. 103 00:04:39,320 --> 00:04:41,890 Tá sé an cóimeálaí post a athrú ar an cód tionól 104 00:04:41,890 --> 00:04:44,740 i rud nó cód meaisín. 105 00:04:44,740 --> 00:04:47,610 Cuimhnigh nach mbaineann an cóimeálaí tionól aschur; 106 00:04:47,610 --> 00:04:51,080 in áit, a thógann sé i tionóil agus cód meaisín aschur. 107 00:04:51,080 --> 00:04:54,040 Is féidir é cód Machine iarbhír 1 agus 0 ar go LAP 108 00:04:54,040 --> 00:04:57,290 a thuiscint, cé go bhfuil muid fós le beagán beag bídeach oibre d'fhág 109 00:04:57,290 --> 00:04:59,380 sular féidir linn a reáchtáil ar ár gclár. 110 00:04:59,380 --> 00:05:01,400 Déanaimis assemble ár gcód tionól trí phas 111 00:05:01,400 --> 00:05:04,080 Clang na c-bhratach. 112 00:05:04,080 --> 00:05:06,410 Anois, a ligean ar a fheiceáil cad atá sa chomhad le chéile. 113 00:05:06,410 --> 00:05:09,220 >> Bhuel, nach cabhrú linn go mór. 114 00:05:09,220 --> 00:05:11,340 Cuimhnigh go bhfuil an cód meaisín na cinn agus nialais a 115 00:05:11,340 --> 00:05:13,240 Is féidir le do ríomhaire a thuiscint. 116 00:05:13,240 --> 00:05:16,080 Ní chiallaíonn sin tá sé éasca dúinn a thuiscint. 117 00:05:16,080 --> 00:05:19,160 Mar sin, go díreach conas a íseal-leibhéil tionól? 118 00:05:19,160 --> 00:05:21,480 Tá sé beagnach mar an gcéanna le cód réad. 119 00:05:21,480 --> 00:05:24,300 Ag dul ó tionól a cód réad i bhfad níos mó de 120 00:05:24,300 --> 00:05:27,540 aistriúchán ná claochlú, agus sin an fáth 121 00:05:27,540 --> 00:05:29,310 Ní fhéadfadh duine a mheas an cóimeálaí chun 122 00:05:29,310 --> 00:05:31,400 a dhéanamh ar aon tiomsaithe iarbhír. 123 00:05:31,400 --> 00:05:34,110 Go deimhin, tá sé éasca go leor a aistriú de láimh ó 124 00:05:34,110 --> 00:05:36,050 tionól do chód meaisín. 125 00:05:36,050 --> 00:05:39,040 Ag Breathnú ar an tionól ar fheidhm is mó, an líne sin an chéad 126 00:05:39,040 --> 00:05:42,100 tharlaíonn a fhreagraíonn do 0x55 heicsidheachúlach. 127 00:05:42,100 --> 00:05:45,470 I dénártha, go 1,010,101. 128 00:05:45,470 --> 00:05:49,300 A tharlaíonn an dara líne a fhreagraíonn 0x895 heicsidheachúlach. 129 00:05:49,300 --> 00:05:51,290 Agus an chéad cheann eile, 0x56. 130 00:05:51,290 --> 00:05:53,730 Ós tábla réasúnta simplí, d'fhéadfaí tú a aistriú 131 00:05:53,730 --> 00:05:57,130 tionól isteach an cód gur féidir le meaisíní a thuiscint freisin. 132 00:05:57,130 --> 00:05:58,810 >> Mar sin, níl céim amháin eile i 133 00:05:58,810 --> 00:06:01,150 thiomsú, a bhfuil a nascadh. 134 00:06:01,150 --> 00:06:04,530 Nascadh le chéile a bunch de chomhaid réad i amháin comhad mór 135 00:06:04,530 --> 00:06:06,380 gur féidir leat a fhorghníomhú i ndáiríre. 136 00:06:06,380 --> 00:06:08,570 Nascadh an-córas ag brath. 137 00:06:08,570 --> 00:06:11,030 Mar sin, an bealach is éasca clang a fháil chun nascadh go díreach réad 138 00:06:11,030 --> 00:06:13,920 comhaid le chéile is clang chun glaoch ar gach ceann de na comhaid go 139 00:06:13,920 --> 00:06:15,190 ba mhaith leat a nascadh le chéile. 140 00:06:15,190 --> 00:06:18,740 Má tá tú a shonrú. Comhaid o, ansin ní bheidh sé a athphróiseáil, 141 00:06:18,740 --> 00:06:21,680 thiomsú, agus gach ceann de do cód foinse assemble. 142 00:06:21,680 --> 00:06:23,960 Let le caith feidhm math isteach inár comhad, ionas go mbeidh muid 143 00:06:23,960 --> 00:06:25,210 rud éigin a nascadh isteach 144 00:06:34,220 --> 00:06:37,010 Anois, a ligean le chéile sé ar ais síos go dtí cód cuspóir agus 145 00:06:37,010 --> 00:06:38,260 glaoch clang ar sé. 146 00:06:40,560 --> 00:06:41,420 Oops. 147 00:06:41,420 --> 00:06:43,790 Ós rud é san áireamh againn feidhm math, ní mór dúinn chun ceangal 148 00:06:43,790 --> 00:06:46,610 an leabharlann math le-LM. 149 00:06:46,610 --> 00:06:48,990 >> Má bhíomar ag iarraidh a nascadh le chéile bunch de. Comhaid o go 150 00:06:48,990 --> 00:06:51,420 Scríobh ar ár gcuid féin, ba mhaith linn a shonrú go díreach iad go léir ag an 151 00:06:51,420 --> 00:06:52,460 n-orduithe. 152 00:06:52,460 --> 00:06:55,320 Is é an srian go bhfuil ceann amháin mór de na comhaid seo 153 00:06:55,320 --> 00:06:57,790 iarbhír a shonrú fheidhm is mó, nó eile an 154 00:06:57,790 --> 00:06:59,930 Ní bheadh ​​inrite mar thoradh ar a fhios nuair a thosú 155 00:06:59,930 --> 00:07:00,910 reáchtáil do chód. 156 00:07:00,910 --> 00:07:03,360 Cad é an difríocht idir a shonrú comhad a nascadh i 157 00:07:03,360 --> 00:07:06,600 le-l agus díreach a shonrú comhad go díreach? 158 00:07:06,600 --> 00:07:07,440 Ní dhéanfaidh aon ní. 159 00:07:07,440 --> 00:07:09,850 Tá sé díreach a tharlaíonn go clang a fhios comhad go díreach cad 160 00:07:09,850 --> 00:07:12,560 rud éigin a tharlaíonn cosúil-LM chun tagairt a dhéanamh. 161 00:07:12,560 --> 00:07:14,700 Má tá a fhios agat go bhfuil comhad féin, d'fhéadfaí tú a shonrú é 162 00:07:14,700 --> 00:07:15,930 follasach. 163 00:07:15,930 --> 00:07:18,990 Just cuimhnigh go bhfuil gach-l bratach atá le teacht ag an deireadh 164 00:07:18,990 --> 00:07:20,770 de d'éileamh chliaint. 165 00:07:20,770 --> 00:07:22,300 >> Agus sin ar fad atá ann chun é. 166 00:07:22,300 --> 00:07:24,940 Nuair a bheidh tú a reáchtáil ach clang ar roinnt comhaid, is é seo cad é 167 00:07:24,940 --> 00:07:26,350 i ndáiríre a dhéanamh. 168 00:07:26,350 --> 00:07:29,490 Is é mo ainm Rob Bowden, agus tá sé seo CS50.