Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.Podstawyprogramowania
19
językasymbolicznegonakodymaszynowe,należytakżerezerwacjamiejscawpa-
mięci,gdziedaneiwynikibędąprzechowywane.Naprzykładzapiszprzykładowego
programuwjęzykuC/C++,floata,b;jestpoleceniemzarezerwowaniaokreślo-
negomiejscawpamięcinadwieliczbrzeczywiste(matematycypewniezaprotestują,
żetoliczbywymierne).
Kolejnezadaniakompilatorówtosprawdzaniepoprawnościzapisuinstrukcji
programuigenerowaniekomunikatówobłędach.Komunikatytepomagająbłędy
zlokalizowaćipoprawić.Sprawdzanajestmiędzyinnymtakzwanaskładniapoleceń,
poprawnośćnazw,zgodnośćtypówdanychzdeklaracjamiiinne.Pewnerodzaje
błędówwykrywaneprzezkompilatorybędziemymogliwyjaśnićdopieropoopisaniu
językówprogramowania.
Wynikiemdziałaniakompilatorajestpowstanieplikupośredniegozrozszerze-
niem.objwnazwie,zawierającegokodmaszynowy.Niejestonwykonywalny,czyli
nienadajesiędozaładowaniadopamięciprzezsystemoperacyjnyiuruchomienia.
Warunkiempowstaniaplikupośredniegojestusunięciezkoduźródłowego
wszystkichbłędówzgłaszanychprzezkompilator.
1.5.3.
Konsolidacja
Współczesneprogramybywająbardzoobszerne.Jednazmetodichtworzeniato
podziałnamniejsze,prostszefragmenty(piszemyotymwrozdziale4.7),alepo
realizacjikażdegozpodzadańnależypołączyćjewcałość.Wykonujetoprogram
zwanykonsolidatorem,apotocznielinkerem.
Fragmentyprogramutworzonegowspomnianąmetodąumieszczaneczęsto
wosobnychplikach,którenastępniekompilowaneisprawdzane.Wynikikompila-
cji,jakpisaliśmy,umieszczanewplikachpośrednich(będziemyjenazywaćplika-
miOBJ).Naetapiekonsolidacjiinformacjeztychplikówpowinnyzostaćpołączone
wcałośćtworzącąkodopracowywanegoprogramu.Jesttowłaśniejedno
zgłównychzadańkonsolidatora.Kodtenumieszczanyjestwplikuwykonywalnym,
najczęściejonazwiezrozszerzeniem.exe(oinnychplikachzawierającychkodwyko-
nywalnypiszemywdrugiejczęścipodręcznika).Właśnieonjestładowanydopamięci
operacyjnejkomputeraprzezsystemoperacyjnywceluuruchomieniaprogramu.
Piszącprogramy,korzystamyzgotowychpodprogramówifunkcji,opracowa-
nychdodanegojęzykaprogramowania,realizującychwielezadań,naprzykładtak
zwaneoperacjewejścia/wyjścia:obsługęklawiaturyczymonitora,albofunkcjebi-
bliotecznerealizująceokreślonedziałaniamatematyczne.Elementyteumieszczane
wtakzwanychbibliotekachstatycznychbądźdynamicznychszerzejobibliotekach
piszemywrozdziale5.14orazwdrugiejczęścipodręcznika.Częśćtychbibliotek(na
przykładbibliotekistatyczne,umieszczanewplikachonazwachzrozszerzeniem.lib)