[Powered by Google Translate] ROB Bowden: Let ar labhairt faoi tiomsaitheoirí. Go dtí an bpointe seo, tá tú clóscríofa suas díreach do cód foinse i roinnt comhaid, iad a sheoladh tríd an bosca mór dubh go bhfuil Clang, a thagann agus amach do chomhad inrite go ndéanann go díreach cad a scríobh tú i do cód foinse. Chomh draíochta leis sin le bheith, táimid ag dul a ghlacadh níos dlúithe breathnú ar cad atá ag tarlú i ndáiríre nuair a thiomsú comhad. Mar sin, cad a chiallaíonn sé rud éigin a chur le chéile? Bhuel, sa chiall is ginearálta, ciallaíonn sé ach Cód athrú scríofa i gceann cláir teanga eile. Ach de ghnáth nuair a rá le daoine siad le chéile rud éigin, tá siad ciallóidh tá siad ag cur sé as cláir ag leibhéal níos airde teanga teanga leibhéal níos ísle cláir. Féadfaidh na cosúil mhaith dtéarmaí an-suibiachtúla. Mar shampla, tá tú dócha nach bhfuil smaoineamh ar C mar ard teanga cláir leibhéal, ach tú a dhéanamh le chéile é. Ach tá sé go léir coibhneasta. Mar beidh orainn a fheiceáil, an cód tionól agus ar deireadh thiar meaisín Tá cód go bhfuil muid le chéile síos go dtí undeniably leibhéal níos ísle ná C. Cé go beidh orainn a bheith ag baint úsáide clang sa lá atá inniu taispeána, a go leor de na smaointe anseo anonn go tiomsaitheoirí eile. Chun clang, tá ceithre céimeanna móra sa foriomlán thiomsú. Tá na amháin, preprocessing atá déanta ag an réamhphróiseálaí; dhá, tiomsú déanta ag an Tiomsaitheoir; trí, le chéile déanta ag an cóimeálaí, agus ceithre, nascadh déanta ag an nascóir. Is féidir é a mearbhall go bhfuil ceann de na substeps an iomlán Tiomsaitheoirí clang a dtugtar an tiomsaitheoir, ach beidh orainn a fháil chun go. Beidh muid ag baint úsáide as ríomhchlár domhan simplí Dia duit mar ár shampla ar fud an físeán seo. A ligean ar ghlacadh le breathnú. Is é an chéad chéim preprocessing. Cad a dhéanann an réamhphróiseálaí a dhéanamh? Sa chlár go leor i bhfad gach C atá tú a léamh nó a scríobh riamh, atá tú a úsáid línte cód gur tús a chur le hais. Glaofaidh mé hash é, ach is féidir leat glaoch freisin punt, uimhir shíniú, nó géar. Tá aon líne den sórt sin le treoir réamhphróiseálaí. Tá tú le feiceáil dócha # shainiú agus # áireamh sula, ach tá Tá roinnt níos mó go n-aithníonn an réamhphróiseálaí. A ligean ar chur shainmhíniú # ár shampla Dia duit. Anois, a ligean ar siúl ach an réamhphróiseálaí ar an gcomhad. Ag dul thar clage an E-bratach, tá tú a theagasc a reáchtáil ach an réamhphróiseálaí. A ligean ar a fheiceáil cad a tharlaíonn. Breathnaíonn sé cosúil spits clang díreach amach gach rud ag an líne orduithe. D'fhonn seo ar fad aschur a shábháil i gcomhad nua ar a dtugtar hello2.c, beidh orainn gceangal> hello2.c chun ár n-ordú. Anois, a ligean ar ghlacadh le breathnú ar ár comhad preprocessed. Whoa, cad a tharla dár gclár beag gearr? Má théann muid go léir ar an mbealach chun an bun an comhad seo, beidh orainn a fheiceáil cuid den chód gur scríobh againn i ndáiríre. Fógra go bhfuil an sainmhíniú # imithe agus gach cás ainm a n-ionad le go díreach cad atá sonraithe againn i an sainmhíniú # líne. Mar sin, cad iad seo go léir typedefs agus dearbhuithe fheidhm ag barr an chomhaid? Fógra nach raibh an sainmhíniú # an réamhphróiseálaí amháin treoir atá sonraithe againn. Táimid chomh maith go bhfuil san áireamh # stdio.h. Mar sin, tá gach ceann de na línte dÚsachtach i ndáiríre ach a chóipeáil stdio.h agus a ghreamú isteach i barr an chomhaid seo. Sin an fáth go bhfuil comhaid header sin úsáideach do fheidhm dearbhuithe. Ina ionad sin de dhíth orthu a chóipeáil agus a ghreamú ar fad ar an bhfeidhm dearbhuithe ar intinn agat ar úsáid a bhaint as ag barr do chomhad, an Beidh réamhphróiseálaí cóipeáil agus greamaigh iad as an header comhad ar do shon. Anois go bhfuil muid ag déanamh preprocessing, sinn ag dul isteach thiomsú. Is é an chúis tugaimid seo a thiomsú chéim toisc go bhfuil an an chéim seo cá clang nach iarbhír a chur le chéile ó C a ghabhann leis Cód tionól. D'fhonn a bheith clang thiomsú comhad síos a thionól, ach leanúint ar aghaidh níos faide, pas a fháil sé an S-bhratach ag an líne orduithe. A ligean ar ghlacadh le breathnú ar an tionól comhad outputted sin. Breathnaíonn sé cosúil le teanga go leor eile. Is é Tionól cód an-próiseálaí leith. Sa chás seo, tá ós rud é an fearas CS50 reáchtáil ar próiseálaí x86 fhíorúil, is é an cód tionól x86. Is beag duine a scríobh go díreach i cód tionól na laethanta seo, ach faigheann gach clár C scríobh tú riamh a chlaochlú síos i tionól. Arís, tugaimid an chéim a thiomsú C i tionól ós rud é táimid ag dul ó leibhéal níos airde go leibhéal níos ísle cláir teanga. Cad a dhéanann an leibhéal tionól níos ísle ná C? Bhuel, sa tionól, táimid an-teoranta i cad is féidir linn a dhéanamh. Níl aon má tá, cé go Tá, le haghaidh tá, nó lúb de chineál ar bith. Ach is féidir leat accomplish na rudaí céanna go bhfuil na rialaithe struchtúir a thairiscint ag baint úsáide as na n-oibríochtaí teoranta tionól a dhéanann a chur ar fáil. Ach a fheiceáil ach conas is tionól leibhéal íseal i ndáiríre, a ligean ar dul céim amháin eile i ár thiomsú, le chéile. Tá sé an cóimeálaí post a athrú ar an cód tionól i rud nó cód meaisín. Cuimhnigh nach mbaineann an cóimeálaí tionól aschur; in áit, a thógann sé i tionóil agus cód meaisín aschur. Is féidir é cód Machine iarbhír 1 agus 0 ar go LAP a thuiscint, cé go bhfuil muid fós le beagán beag bídeach oibre d'fhág sular féidir linn a reáchtáil ar ár gclár. Déanaimis assemble ár gcód tionól trí phas Clang na c-bhratach. Anois, a ligean ar a fheiceáil cad atá sa chomhad le chéile. Bhuel, nach cabhrú linn go mór. Cuimhnigh go bhfuil an cód meaisín na cinn agus nialais a Is féidir le do ríomhaire a thuiscint. Ní chiallaíonn sin tá sé éasca dúinn a thuiscint. Mar sin, go díreach conas a íseal-leibhéil tionól? Tá sé beagnach mar an gcéanna le cód réad. Ag dul ó tionól a cód réad i bhfad níos mó de aistriúchán ná claochlú, agus sin an fáth Ní fhéadfadh duine a mheas an cóimeálaí chun a dhéanamh ar aon tiomsaithe iarbhír. Go deimhin, tá sé éasca go leor a aistriú de láimh ó tionól do chód meaisín. Ag Breathnú ar an tionól ar fheidhm is mó, an líne sin an chéad tharlaíonn a fhreagraíonn do 0x55 heicsidheachúlach. I dénártha, go 1,010,101. A tharlaíonn an dara líne a fhreagraíonn 0x895 heicsidheachúlach. Agus an chéad cheann eile, 0x56. Ós tábla réasúnta simplí, d'fhéadfaí tú a aistriú tionól isteach an cód gur féidir le meaisíní a thuiscint freisin. Mar sin, níl céim amháin eile i thiomsú, a bhfuil a nascadh. Nascadh le chéile a bunch de chomhaid réad i amháin comhad mór gur féidir leat a fhorghníomhú i ndáiríre. Nascadh an-córas ag brath. Mar sin, an bealach is éasca clang a fháil chun nascadh go díreach réad comhaid le chéile is clang chun glaoch ar gach ceann de na comhaid go ba mhaith leat a nascadh le chéile. Má tá tú a shonrú. Comhaid o, ansin ní bheidh sé a athphróiseáil, thiomsú, agus gach ceann de do cód foinse assemble. Let le caith feidhm math isteach inár comhad, ionas go mbeidh muid rud éigin a nascadh isteach Anois, a ligean le chéile sé ar ais síos go dtí cód cuspóir agus glaoch clang ar sé. Oops. Ós rud é san áireamh againn feidhm math, ní mór dúinn chun ceangal an leabharlann math le-LM. Má bhíomar ag iarraidh a nascadh le chéile bunch de. Comhaid o go Scríobh ar ár gcuid féin, ba mhaith linn a shonrú go díreach iad go léir ag an n-orduithe. Is é an srian go bhfuil ceann amháin mór de na comhaid seo iarbhír a shonrú fheidhm is mó, nó eile an Ní bheadh ​​inrite mar thoradh ar a fhios nuair a thosú reáchtáil do chód. Cad é an difríocht idir a shonrú comhad a nascadh i le-l agus díreach a shonrú comhad go díreach? Ní dhéanfaidh aon ní. Tá sé díreach a tharlaíonn go clang a fhios comhad go díreach cad rud éigin a tharlaíonn cosúil-LM chun tagairt a dhéanamh. Má tá a fhios agat go bhfuil comhad féin, d'fhéadfaí tú a shonrú é follasach. Just cuimhnigh go bhfuil gach-l bratach atá le teacht ag an deireadh de d'éileamh chliaint. Agus sin ar fad atá ann chun é. Nuair a bheidh tú a reáchtáil ach clang ar roinnt comhaid, is é seo cad é i ndáiríre a dhéanamh. Is é mo ainm Rob Bowden, agus tá sé seo CS50.