[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.