Обзорный курс по языкам программирования [Антон Евгеньевич Москаль kouzdra] (pdf) читать постранично
Книга в формате pdf! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
Àíòîí Ìîñêàëü
17 ÿíâàðÿ 2003 ã.
Îãëàâëåíèå
1
2
Îñíîâíûå êîíöåïöèè ÿçûêîâ ïðîãðàììèðîâàíèÿ
2
1.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1.1
ïåðåõîäû, õâîñòîâàÿ ðåêóðñèÿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1.2
if, match
2
1.1.3
öèêëû,
1.1.4
èñêëþ÷åíèÿ
Óïðàâëÿþùèå êîíñòðóêöèè
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
while
÷åðåç ðåêóðñèþ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
ßçûêè ïðîãðàììèðîâàíèÿ
3
2.1
3
2.2
2.3
2.4
ßçûêè àññåìáëåðà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PDP-11
2.1.1
Ñèñòåìà êîìàíä
2.1.2
Ìåòêè, ëîêàëüíûå ìåòêè, îïåðàòîðû ïðèñâàèâàíèÿ è ñåêöèîíèðîâàíèÿ . . . . . . . . .
5
2.1.3
Ìàêðîñðåäñòâà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1.4
Ìèíèìàëüíàÿ àðõèòåêòóðà:
ßçûê
C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PDP-8
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.1
CPL, BCPL,
ñîçäàíèå
B
2.2.2
Îïèñàíèå
B
2.2.3
PDP-11 :
2.2.4
Äàëüíåéøàÿ ýâîëþöèÿ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Ýâîëþöèÿ
Ôóíêöèîíàëüíûå ÿçûêè
B
â
C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
C
λ-èñ÷èñëåíèÿ
2.3.1
Îñíîâíûå ïîíÿòèÿ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.2
LISP, Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.3
ML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.4
ëåíèâûå ÿçûêè: Haskell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.5
Ââîä-âûâîä â ÷èñòî ôóíêöèîíàëüíûõ ÿçûêàõ, ëèíåéíûå òèïû â Clean
. . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4.1
Simula-67 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4.2
SmallTalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4.3
Self: Áåcêëàññîâûé ÎÎ-ÿçûê . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4.4
Ðàçëè÷íûå âèäû íàñëåäîâàíèÿ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4.5
Ìóëüòèìåòîäû: ßçûê Cecil
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Îáúåêòíî-îðèåíòèðîâàííûå ÿçûêè
1
Ãëàâà 1
Îñíîâíûå êîíöåïöèè ÿçûêîâ
ïðîãðàììèðîâàíèÿ
1.1
Óïðàâëÿþùèå êîíñòðóêöèè
1.1.1
ïåðåõîäû, õâîñòîâàÿ ðåêóðñèÿ
1.1.2
if, match
1.1.3
öèêëû,
1.1.4
èñêëþ÷åíèÿ
while
÷åðåç ðåêóðñèþ
2
Ãëàâà 2
ßçûêè ïðîãðàììèðîâàíèÿ
2.1
ßçûêè àññåìáëåðà
ßçûêè àññåìáëåðà ÿâëÿþòñÿ ÿçûêàìè íèçêîãî óðîâíÿ, ïðåäíàçíà÷åííûìè äëÿ ïðîãðàììèðîâàíèÿ â òåðìèíàõ ìàøèííûõ êîìàíä. Íàèáîëåå ñóùåñòâåííûìè èõ îñîáåííîñòÿìè ÿâëÿþòñÿ:
•
ïðÿìîå ñîîòâåòñòâèå îïåðàòîðîâ àññåìáëåðà è ìàøèííûõ êîìàíä
•
ñðåäñòâà, ïîçâîëÿþùèå äåòàëüíî óïðàâëÿòü ðàçìåùåíèåì ïðîãðàììû è äàííûõ â ïàìÿòè
•
ìàêðîñðåäñòâà, ïîçâîëÿþùèå ñîçäàâàòü ïñåâäîêîìàíäû íåñêîëüêî áîëåå âûñîêîãî óðîâíÿ, íåæåëè
ìàøèííûå îïåðàöèè
 ñâîå âðåìÿ ÿçûêè àññåìáëåðà èñïîëüçîâàëèñü êàê ÿçûêè äëÿ ñèñòåìíîãî ïðîãðàììèðîâàíèÿ: íà íèõ
ïèñàëèñü îïåðàöèîííûå ñèñòåìû, êîìïèëÿòîðû è ïðîñòî ñòàíäàðòíûå óòèëèòû. Âûçûâàëîñü ýòî ñ îäíîé
ñòîðîíû íåäîñòàòêîì ãèáêîñòè òîãäàøíèõ ÿçûêîâ âûñîêîãî óðîâíÿ, ñ äðóãîé ñòîðîíû êðàéíåé îãðàíè÷åííîñòüþ ðåñóðñîâ. Àññåìáëåð ïîçâîëÿåò âûæàòü èç àïïàðàòóðû ìàêñèìóì âîçìîæíîãî, îñîáåííî,
ïîêà îáúåìû ïðîãðàìì ñðàâíèòåëüíî íåâåëèêè è ïðîáëåìû, ñâÿçàííûå ñî ñëîæíîñòüþ è óïðàâëÿåìîñòüþ
ïðîåêòà íå íà÷èíàþò ñòàíîâèòüñÿ îïðåäåëÿþùèìè.
À íà ìàøèíàõ, ó êîòîðûõ îáúåì ïàìÿòè èñ÷èñëÿëñÿ òûñÿ÷àìè, â ëó÷øåì ñëó÷àå äåñÿòêàìè òûñÿ÷
ñëîâ, îíè íå ìîãëè áûòü âåëèêè.
Ñî âðåìåíåì îáëàñòü ïðèìåíåíèÿ àññåìáëåðà ñóæàëàñü, è â íàñòîÿùèé ìîìåíò îíà îãðàíè÷åíà ïðîãðàììèðîâàíèåì êðèòè÷åñêèõ ïî ýôôåêòèâíîñòè ôðàãìåíòîâ êîäà (÷àñòî ïåðåïèñûâàíèå íåñêîëüêèõ äåñÿòêîâ
ñòðîê êðèòè÷åñêîãî ó÷àñòêà êîäà íà àññåìáëåð ñïîñîáíî äàòü âûèãðûø â ñêîðîñòè â íåñêîëüêî ðàç, èíîãäà
íà ïîðÿäêè), îñîáåííî, åñëè òàì âîçìîæíî èñïîëüçîâàíèå ñïåöèàëèçèðîâàííûõ êîìàíä, íàïîäîáèå êîìàíä
ñèãíàëüíûõ ïðîöåññîðîâ èëè
IA-32 SSE .
Êðîìå ýòîãî, ÿçûê àññåìáëåðà ÷àñòî èñïîëüçóåòñÿ êàê ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììû â
Unix,
ïðîöåññå êîìïèëÿöèè: áîëüøèíñòâî êîìïèëÿòîðîâ, ðàáîòàþùèõ ïîä
ïîðîæäàþò èìåííî àññåìáëåð,
êîòîðûé ïîòîì óæå êîìïèëèðóåòñÿ â îáúåêòíûé êîä.
2.1.1
PDP-11
Ñèñòåìà êîìàíä
PDP-11
îäíà èç âû÷èñëèòåëüíûõ ìàøèí, ðàçðàáîòàííûõ ôèðìîé
DEC
(
Digital Equipment Corporation ) â
??? ãîäó. Õîòÿ ìàøèíà ïîëíîñòüþ óñòàðåëà, åå àðõèòåêòóðà îêàçàëà áîëüøîå âëèÿíèå íà
Последние комментарии
19 часов 23 минут назад
19 часов 58 минут назад
20 часов 51 минут назад
20 часов 56 минут назад
21 часов 7 минут назад
21 часов 20 минут назад