Обзорный курс по языкам программирования [Антон Евгеньевич Москаль 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 ) â
??? ãîäó. Õîòÿ ìàøèíà ïîëíîñòüþ óñòàðåëà, åå àðõèòåêòóðà îêàçàëà áîëüøîå âëèÿíèå íà
Последние комментарии
6 часов 29 минут назад
8 часов 46 минут назад
23 часов 27 минут назад
23 часов 28 минут назад
1 день 4 часов назад
1 день 8 часов назад