Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

1. Что та­кое «про­грам­ма» и как ее ис­пол­ня­ет ком­пь­ю­тер

Ком­пь­ю­тер пред­став­ля­ет со­бой уст­рой­ст­во для ис­пол­не­ния про­грамм. “Моз­гом” ком­пь­ю­те­ра яв­ля­ет­ся про­цес­сор, ко­то­рый при­зван “по­ни­мать” и ис­пол­нять эти про­грам­мы.

  • Про­грам­ма - это по­сле­до­ва­тель­ность пред­пи­са­ний (ко­манд), за­пи­сан­ных на язы­ке, по­нят­ном для ис­пол­ни­те­ля.

В на­шем слу­чае ис­пол­ни­те­лем яв­ля­ет­ся про­цес­сор. А что за язык, ко­то­рый этот про­цес­сор по­ни­ма­ет? Да­вай­те рас­смот­рим фраг­мент про­грам­мы, по­нят­ной про­цес­со­ру:

...

10­100­001 0000­0­101 00000­001

1110­1001 00­0­10110

100­0­1000 10000­011 0100­0­100 10­011111

Уже по это­му фраг­мен­ту мож­но сде­лать не­ко­то­рые вы­во­ды: во-пер­вых, “сло­ва” дан­но­го язы­ка со­сто­ят из 0 и 1. Во-вто­рых, ес­ли эта за­пись и по­нят­на про­цес­со­ру, то че­ло­ве­ку по­нять ее про­бле­ма­тич­но. А как лю­ди ча­ще все­го пи­шут про­грам­мы для ком­пь­ю­те­ров? Здесь су­ще­ст­ву­ет уже от­ра­бо­тан­ная тех­но­ло­гия.

А. Для же­лаю­щих пи­сать про­грам­мы бы­ли при­ду­ма­ны так на­зы­вае­мые “язы­ки про­грам­ми­ро­ва­ния вы­со­ко­го уров­ня” (та­кое на­зва­ние при­ду­ма­ли для то­го, что­бы от­ли­чить та­кие язы­ки от язы­ков, не­по­сред­ст­вен­но по­нят­ных ма­ши­нам). Эти язы­ки по­зво­ля­ют бы­ст­ро и по­нят­но (для лю­дей!) за­пи­сать по­сле­до­ва­тель­ность дей­ст­вий, ко­то­рые дол­жен вы­пол­нить ком­пь­ю­тер.

Б. Ком­пь­ю­те­ры же язы­ков вы­со­ко­го уров­ня не по­ни­ма­ют. По­это­му при­ду­ма­ли спе­ци­аль­ные про­грам­мы, на­зы­вае­мые транс­ля­то­ра­ми. В об­щем слу­чае транс­ля­тор (translator) - это про­грам­ма, пред­на­зна­чен­ная для пе­ре­во­да (транс­ля­ции) опи­са­ний ал­го­рит­ма с од­но­го фор­маль­но­го язы­ка на дру­гой. Ал­го­ритм соз­да­ния про­грам­мы те­перь пре­ду­смат­ри­ва­ет ис­поль­зо­ва­ние ша­га транс­ля­ции (рис. 1).

Рис. 1. Алгоритм трансляции программы

В. Этап пре­вра­ще­ния про­грам­мы, на­пи­сан­ной на язы­ке вы­со­ко­го уров­ня, в ма­шин­ный код (так еще при­ня­то на­зы­вать про­грам­му, на­пи­сан­ную на язы­ке про­цес­со­ра) реа­ли­зу­ет­ся в двух ва­ри­ан­тах. В пер­вом слу­чае транс­ля­тор бе­рет из фай­ла про­грам­му на язы­ке вы­со­ко­го уров­ня и пе­ре­во­дит в про­грам­му на ма­шин­ном язы­ке всю це­ли­ком, соз­давая от­дель­ный файл с рас­ши­ре­ни­ем OBJ. Про­грам­му, за­пи­сан­ную в та­кой файл, при­ня­то на­зы­вать объ­ект­ным мо­ду­лем, а транс­ля­тор, ко­то­рый вы­пол­ня­ет та­кой пе­ре­вод, на­зы­ва­ют ком­пи­ля­то­ром.

Во вто­ром слу­чае транс­ля­тор бе­рет из фай­ла с про­грам­мой на язы­ке вы­со­ко­го уров­ня по од­но­му пред­пи­са­нию (ко­ман­де), транс­ли­ру­ет ее и ... тут же ис­пол­ня­ет. Та­кой транс­ля­тор на­зы­ва­ют ин­тер­пре­та­то­ром.

Г. Транс­ля­то­ры с язы­ка Pascal, как пра­ви­ло, яв­ля­ют­ся ком­пи­ля­то­ра­ми. В свя­зи с тем, что Вы бу­де­те учить­ся про­грам­ми­ро­вать, не лиш­ним бу­дет иметь пред­став­ле­ние о том, как же объ­ект­ный мо­дуль пре­вра­ща­ет­ся в ис­пол­няе­мую про­грам­му, ко­то­рая и хра­нит­ся в фай­ле с рас­ши­ре­ни­ем EXE или СОМ.

Осу­ще­ст­в­ля­ет дан­ное пре­вра­ще­ние еще одна специальная ком­пь­ю­тер­ная про­грам­ма, на­зы­вае­мая ре­дак­тор свя­зей. Де­ло в том, что объ­ект­ный мо­дуль пред­став­ля­ет со­бой как бы схе­му бу­ду­щей про­грам­мы. В нем от­сут­ст­ву­ет мас­са кон­крет­ных деталей, свя­зан­ных с кон­крет­ной опе­ра­ци­он­ной сис­те­мой, осо­бен­но­стя­ми ее об­ме­на с кла­виа­ту­рой, дис­пле­ем, дис­ком, опе­ра­тив­ной па­мя­тью и т.п. Ре­дак­тор свя­зей бе­рет из сис­тем­ной биб­лио­те­ки все не­об­хо­ди­мые для ра­бо­ты бло­ки (под­про­грам­мы) и в фай­ле с рас­ши­ре­ни­ем EXE “склеи­ва­ет” ис­пол­няе­мую про­грам­му из объ­ект­но­го мо­ду­ля и этих бло­ков.

Д. Обоб­щая все вы­ше­ска­зан­ное, мож­но уточ­нить схе­му по­лу­че­ния ис­пол­няе­мой про­грам­мы (рис. 2).

Рис. 2. Ал­го­ритм по­лу­че­ния ис­пол­няе­мой про­грам­мы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]