лекции (2008) (by Kravets), страница 4
Описание файла
PDF-файл из архива "лекции (2008) (by Kravets)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
 îòëè÷èè îò java ñèñòåì, åñòüECMA íåçàâèñèìàÿ àññîöèàöèÿ ïðîèçâîäèòåëåé êîìïüþòåðîâ, â òîì÷èñëå îíà ñòàíäàðòèçóåò êîìïüþòåðíûå ñèñòåìû, â òîì ÷èñëå è ßÏ.CLI èÑ# ñòàíäàðòèçîâàíû ECMA. Îäíàêî ñòàíäàðòû ECMA íå ñîâñåì ïîëíîñîîòâåòñòâóþò ñïåöèôèêàöèè ÿçûêà Ñ#, íî òåì íå ìåíåå ôîðìàëüíî âëàäåëüöåì C# ÿâëÿåòñÿ ECMA. Òàê æå ECMA Script - ñòàíäàðòèçîâàííûåâàðèàíò java script.Ñåé÷àñ - C# æèâîé è äèíàìè÷íûé ßÏ - ñåé÷àñ óæå C# 3.0. Âî âòîðîéâåðñèè Ñ# ïîÿâèëèñü îáîáùåíèÿ, â òðåòüåé âåðñèè - lambda ôóíêöèè.14Îñíîâíîå ðàçâèòèå ñèñòåìû java øëî ïî ïóòè ðàçâèòèÿ ñòàíäàðòíîéáèáëèîòåêè, íî âåðñèè ÿçûêà ìåíÿëèñü íå ñèëüíî, õîòÿ â 2005 ãîäó ïðîèçîøëà ãåíåðàëüíàÿ ðåâèçèÿ ÿçûêà, Java5 (âåðñèÿ 2005 ãîäà), â êîòîðóþäîáàâèëèñü îáîáùåíèÿ êàê â Ñ#.Ïîêà çà ïðåäåëàìè ðàññìîòðåíèå îñòàëèñü ñêðèïòîâûå ßÏ -ïðèíöèïèàëüíîèíòåðïðåòèðóåìûå ßÏ, áåç âñÿêîé êîìïèëÿöèè.
Ðàçâèòèå òàêèõ ßÏ ñâÿçàííî ñ ðàçâèòèåì âåá óçëîâ.Perl,PHP,Python. - ïðèìåðû òàêèõ ÿçûêîâ,íî ñ êîíöåïòóàëüíîé òî÷êè çðåíèÿ îíè íå ñèëüíî îòëè÷àþòñÿ îò òåõ ßÏî êîòîðûõ ãîâîðèëîñü âûøå.15Ëåêöèÿ 5Ãëàâà 3 Îñíîâíûå ïîíÿòèÿ ßÏÏóíêò 1. Îñíîâíûå ïîçèöèè ïðè ðàññìàòðèâàíèè ßÏ1.Òåõíîëîãè÷åñêàÿ.Ñ òî÷êè çðåíèÿ òåõíîëîãè÷åñêèõ ïîòðåáíîñòåé, îäíîé èç ñàìûõ âàæíûõ âîçìîæíîñòåé ÿçûêà ïðîãðàììèðîâàíèÿ ÿâëÿåòñÿ âîçìîæíîñòü ðàçäåëåíèÿ ïðîãðàììû íà ìîäóëè ( ýòî íåîáõîäèìî äëÿ èíäóñòðèàëüíîãîïðîãðàììèðîâàíèÿ)2.Ðåàëèçàòîðñêàÿ ïîçèöèÿ àâòîðà/ ðåàëèçàòîðà ßÏ.Ñóùåñòâóåò ìíåíèå, ÷òî ñåé÷àñ äàííàÿ ïîçèöèÿ íå àêòóàëüíà, òî åñòüìîæíî îáúÿñíèòü ëþáîé ßÏ áåç äàííîé ïîçèöèè.
Íî òåì íå ìåíåå â 60õ ñóùåñòâîâàëî ìíåíèå ÷òî ßÏ ýòî òî ÷òî ðåàëèçóåò äàííûé êîìïèëÿòîð. Ýòî ïðèâåëî áû ê îïðåäåëåííûì ïðîáëåìàì, ïîýòîìó áûëî ââåäåíîïîíÿòèå ñòàíäàðòà. äàííîì êóðñå ïîíÿòèå ðåàëèçàöèè îñîáî íå çàòðàãèâàåòñÿ, òî åñòüßÏ îïèñûâàþòñÿ â îñíîâíîì àáñòðàãèðîâàíî îò ðåàëèçàöèè, íî áóäåìêàñàòüñÿ ýòîé ïîçèöèè â òåõ ñëó÷àÿõ êîãäà äåòàëè ðåàëèçàöèè âàæíû ñòî÷êè çðåíèÿ îïðàâäàííîñòè èñïîëüçîâàíèÿ òîé èëè îíîé êîíñòðóêöèè(Ñ++ âèðòóàëüíûå ôóíêöèè, ëîêàëüíûå ïåðåìåííûå â ñòåêå è òàê äàëåå).Íàïðèìåð ÎÎßÏ íå âñåãäà ðåàëèçóþò ìíîæåñòâåííîå íàñëåäîâàíèå ïðè÷èíà ýòîìó òî ÷òî äèíàìè÷åñêîå ñâÿçûâàíèå òðóäíî ýôôåêòèâíî ðåàëèçîâàòü.Àâòîðñêàÿ ïîçèöèÿ.Ëþáîé ßÏ ñîâîêóïíîñòü êîìïðîìèññîâ.
Òî åñòü íåëüçÿ äîáàâëÿòüâ ßÏ âñå ÷òî õî÷åòñÿ, òàê êàê â ðåçóëüòàòå ìîãóò ïîëó÷èòüñÿ òàêèå ¾ìîíñòðû¿ êàê ÀÄÀ. Àâòîðñêàÿ ïîçèöèÿ ðàññìàòðèâàåò ïî÷åìó äàííàÿ êîíñòðóêöèÿ áûëà ðåàëèçîâàíà â äàííîì ÿçûêå â òîì èëè èíîì âèäå. Íàïðèìåð, â Ñ++ íå âîøëè íåêîòîðûå ïîíÿòèÿ èç Àäû (õîòÿ êîìèòåò ïîñòàíäàðòèçàöèè ïðåäëàãàë ââåñòè èõ), â íåì íåò âèðòóàëüíûõ êîíñòðóêòîðîâ, è òàê äàëåå.4.Ñåìèîòå÷åñêàÿ (ñåìèîòèêà íàóêà î çíàêîâûé ñèñòåìàõ).Ðàññìîòðåíèåñ ýòîé ïîçèöèè ïîçâîëÿåò óâèäåòü ïðîáëåìû êîòîðûå ìîãóò âîçíèêíóòüâ ßÏ ñ áîëåå îáùåãî âèäà. Íàïðèìåð ïðîáëåìà íåîäíîçíà÷íîñòè ñîîáùåíèé. (Ñèíòàêñèñ, ñåìàíòèêà, ïðàãìàòèêà). Ïðèìåð ñèíòàêñè÷åñêîé íåîäíîçíà÷íîñòè ñóáúåêò ïîñûëàåò ñîîáùåíèå, à ïðèíèìàþùèé ïî-äðóãîìóèíòåðïðåòèðóåò åãî ñòðóêòóðó (¾Ïðèâåò îñâîáîäèòåëÿì âîñòîêà îò Ôåëèêñà Ýäìóíîâè÷à Äåðæèíñêîãî¿).
 ßÏ òàêèõ íåîäíîçíà÷íîñòåé ïðàêòè÷åñêèõ íåò,íî â íåêîòîðûå îíè åñòü. Íàïðèìåðif B1 then if B2then S116else S2Çäåñü íå ÿñíî ê êàêîìó áëîêó îòíîñèòñÿ else.Îäíàêî ïîäîáíûå íåîäíîçíà÷íîñòè ðåøàþòñÿ ëèáî íà ýòàïå îáñóæäåíèå ñòàíäàðòà, ëèáî óæå ïîñëå âûõîäà. Çàìåòèì ÷òî âñå ßÏ èìåþò ïî÷òèâñåãäà îäíîçíà÷íóþ ñèíòàêñè÷åñêóþ ñòðóêòóðó.Ñåìàíòè÷åñêàÿ íåîäíîçíà÷íîñòü òîæå î÷åíü íåïðèÿòíà âåùü, ïðèýòîì ïðîùå âñåãî íàïèñàòü êîìïèëÿòîð äëÿ ïðîñòîãî ßÏ, êîòîðûé ïîëíîñòüþ óäîâëåòâîðÿåò ñòàíäàðòó. Õóäøèé âàðèàíò, êîãäà îäèíàêîâûåêîíñòðóêöèè ïî-ðàçíîìó òðàíñëèðóþòñÿ èëè ðåàëèçóþòñÿ áåç íèêàêèõñîîáùåíèé îá îøèáêàõ.Ïðàãìàòè÷åñêàÿ îøèáêà (îøèáêà â ïîíèìàíèè ¾çà÷åì?¿).
Ìû íå áóäåì ðàññìàòðèâàòü òàêèå îøèáêè.5.Ñîöèàëüíàÿ ïîçèöèÿ.Âñå ßÏ ñîçäàíû ëþäüìè è ôóíêöèîíèðóþò â îáùåñòâå. Òî åñòü ìíîãèå ôåíîìåíû ñâÿçàííûå ñ ßÏ íåîáúÿñíèìû ñ òî÷êè çðåíèÿ ïåðâûõ 4ïðè÷èí (ýêîëîãè÷åñêèå íèøè, óñïåõ ôîðòðàíà è òàê äàëåå). Ñ ñîöèàëüíîé òî÷êè çðåíèÿ ìíîãèå ßÏ ÿâëÿþòñÿ õîðîøèìè, äàæå åñëè îíè ïëîõèåñ îñòàëüíûõ òî÷åê çðåíèÿ, íî òåì íå ìåíåå îíè ïîïóëÿðíû èìåííî â ñèëóñîöèàëüíîé ïîçèöèè. Òàê ñìåíà ßÏ ïðîöåññ äîâîëüíî òÿæåëûé èìåííîäëÿ ëþäåé, òî åñòü ýòî ñîöèàëüíàÿ ïîçèöèÿ.Åùå ïðèìåð 2 êîíêóðèðóþùèå ñèñòåìû ïîä win32 Delphi è VisualBasic, ïî ïåðâûì 4 ïîçèöèÿì Delphi ïðåâîñõîäèë VB, íî ïî ñîöèàëüíîéïîçèöèè îí ñèëüíî ïðîèãðûâàë VB (VB áûë ðàñêðó÷åí).Ïóíêò 2.
Îñíîâíûå ïîíÿòèÿ.Òðè îñíîâíûõ ïîíÿòèÿ äàííûå, îïåðàöèè è ñâÿçûâàíèå (ñ÷èòàþòñÿàòîìàðíûìè è íå îïðåäåëÿþòñÿ). ëþáîì ßÏ åñòü, î÷åâèäíî, äàííûå è îïåðàöèè. ×òî æå êàñàåòñÿñâÿçûâàíèÿ, òî îí íåì âïåðâûå çàãîâîðèëè â 70-õ. Ïîíÿòèå ñâÿçûâàíèåèãðàåò ðîëü íå ìåíüøóþ ÷åì äàííûå è îïåðàöèè. Ïðèìåð ñâÿçûâàíèå ìåõàíèçì ñâÿçûâàíèÿ ôîðìàëüíûõ è ôàêòè÷åñêèõ ïàðàìåòðîâ ( îñíîâíîå çíà÷åíèå ïðèäàåòñÿ âðåìåíè ñâÿçûâàíèÿ).Íàïðèìåð i=12; Âàæíî âêàêîé ìîìåíò ïðîèñõîäèò ñâÿçûâàíèå çíà÷åíèÿ i c 12. Íàïðèìåð const inti = 12 íà ýòàïå êîìïèëÿöèè. const X a; âî âðåìÿ çàïóñêà êîíñòðóêòîðà.Âûäåëÿþò íåñêîëüêî ýòàïîâ òðàíñëÿöèè, êîìïîíîâêè, âûïîëíåíèÿ...Ïðè ýòîì ýòè ýòàïû ìîãóò áûòü ðàñøèðåíû. ×àùå âñåãî âûäåëÿþòñÿ 2ýòàïà ñòàòè÷åñêîå ñâÿçûâàíèå è äèíàìè÷åñêîå ñâÿçûâàíèå.
Ñòàòè÷åñêîå âî âðåìÿ òðàíñëÿöèè èëè âî âðåìÿ ðåäàêòèðîâàíèÿ ñâÿçåé. Äèíàìè÷åñêîå âî âðåìÿ âûïîëíåíèÿ.Ðåàëèçàöèÿ ñòðîê (ïàñêàëåâñêèé è Ñèøíûé).17Íåêîòîðûå äàííûå ïðîùå èçîáðàæàòü êàê îïåðàöèè è íàîáîðîò , íàïðèìåð ïîëó÷åíèå äëèíû ñòðîêè äëÿ ïàñêàëåâñêîé ñòðîêè (äàííûå ïðåäñòàâëÿþòñÿ êàê îïåðàöèÿ). Îïåðàöèè ïðåäñòàâèìûå êàê äàííûå íàçûâàþòñÿ ñâîéñòâàìè. Íàïðèìåð âèçóàëüíîå îêíî èìååò ïðèâÿçêó (x,y) îáû÷íî êîîðäèíàòû ëåâîé âåðõíåé òî÷êè, è óñòàíîâëåíèå ýòèõ ïàðàìåòðîâ â êëàññå âûçîâ áîëüøîãî ÷èñëà ïðîöåäóð, õîòÿ âûçûâàåòñÿ îíî êàêîïåðàöèè ñ äàííûìè (x = <smth>). Èòàê ýòî òèïè÷íîå ñâîéñòâî, òîåñòü ýòî óäîáíî ðàññìàòðèâàòü êàê äàííûå, íî èçìåíåíèå ýòîãî âûçûâàåòîïåðàöèè.Ðàññìîòðèì áîëåå ïîäðîáíî ïîíÿòèå äàííûõ â ßÏ.
Ïî÷òè âñå äàííûå îáëàäàþò ñëåäóþùèìè àòðèáóòàìè òèï äàííûõ, èìÿ, çíà÷åíèå,âðåìÿ æèçíè, îáëàñòü âèäèìîñòè. Âñå äàííûå ïðèíàäëåæàòü îäíîìó èçíåñêîëüêèõ ìíîæåñòâ òèïîâ äàííûõ. Òèï äàííûõ ýòî ìíîæåñòâîçíà÷åíèé, êîòîðîå îïðåäåëÿåòñÿ ñòðóêòóðîé äàííûõ + íàáîð îïåðàöèéíàä ýòèì òèïîì.
Òîëüêî ïî âèäó äàííûõ íåëüçÿ îïðåäåëèòü ÷òî ýòî çàîáúåêò òàê êàê ðàçíûå òèïû äàííûõ ìîãóò èìåòü îäèíàêîâóþ ñòðóêòóðû( âàæíî çíàíèå ìíîæåñòâà îïåðàöèé è èõ ñåìàíòèêà).Íåò áåçòèïîâûõ ßÏ åñòü ÿçûêè ñ äèíàìè÷åñêîé òèïèçàöèåé ( òèïîáúåêòà îïðåäåëÿåòñÿ íà ýòàïå ðàáîòû ïðîãðàììû), áîëüøèíñòâî òàêèõßÏ èíòåðïðåòèðóåìûå. Ïðè ýòîì åñòü ßÏ â êîòîðûõ òèïû äàííûõìîãóò â ÿâíîì âèäå íå ñóùåñòâîâàòü ýòî òàê íàçûâàåìûå ïðîòîòèïíûåßÏ.Íàïðèìåð â C# ñóùåñòâóåò òàêîå îáúÿâëåíèå êàê var a; òî åñòü îïðåäåëÿåòñÿ ïðîñòî ïåðåìåííàÿ à, òèï êîòîðîé îïðåäåëÿåòñÿ êîãäà åé áóäåòïðèñâîåíî çíà÷åíèå.  ïðîòîòèïíûõ æå ßÏ åñòü îïðåäåëåííûå îáúåêòû,ó êîòîðûõ åñòü ñëîòû, â êîòîðûå ìîæíî ïîëîæèòü êàê îáúåêò äàííûõ,òàê è êîä ïðîöåäóðû.
 ëþáîì ïðîòîòèïíîì ßÏ åñòü îïåðàöèÿ êëîíèðîâàíèÿ, êîòîðàÿ âûäàåò ïîëíóþ êîïèþ îáúåêòà. Ïðèìåðîì òàêèõ ßÏÿâëÿþòñÿ javaScript, self. Ïðè ýòîì â javaScript ýòî ïîíÿòèå íåñêîëüêîçàâóàëèðîâàííî. Self ñòàë èçâåñòåí ñîâñåì íåäàâíî.Èòàê â ïðîòîòèïíûõ ßÏ òîæå åñòü òèï äàííûõ, íî åãî îïðåäåëåíèåîòëè÷àåòñÿ îò îïðåäåëåíèÿ òèïà äàííûõ â êëàññè÷åñêèõ ßÏ. Òî åñòüîáúåêò ìîæåò ïåðåõîäèòü èç îäíîãî òèïà äàííûõ â äðóãîé.
Êîíòðîëüçà ïîâåäåíèåì îáúåêòà âî âðåìÿ âûïîëíåíèÿ èñõîäÿ èç åãî ñòàòè÷åñêèõõàðàêòåðèñòèê êâàçèñòàòè÷åñêèé êîíòðîëü.Àòðèáóòû òèïà äàííûõ. íåêîòîðûõ ñëó÷àÿõ èìÿ ÿâëÿåòñÿ åäèíñòâåííûì è ñàìûì âàæíûìàòðèáóòîì èäåíòèôèêàòîðà (àòîì à ÿçûêà LISP). Ïðè ýòîì áûâàþò èáåçûìÿííûå îáúåêòû.(êîíñòàíòà 5 ÿçûêà ïàñêàëü, îáúåêòû ïîëó÷åííûåïî new). Òàê æå äîïîëíèòåëüíóþ íåíàäåæíîñòü ââîäÿò ßÏ áåç ñáîðêèìóñîðà â êîòîðûõ àíîíèìíûå îáúåêòû íå îòëè÷àþòñÿ îò èìåíîâàííûõ.18 C# ïîÿâèëñÿ ñïåöèàëüíûé ñïåöèôèêàòîð readonly, êîòîðûé ñïåöèôèöèðóåò ìîìåíò ñâÿçûâàíèÿ (readonly òîëüêî ñòàòè÷åñêèå).Âðåìÿ æèçíè.Ñâÿçàííî ñ ïîíÿòèåì êëàññà ïàìÿòè.
Êëàññû ïàìÿòè ñòàòè÷åñêàÿ (âñå âðåìÿ ðàáîòû ïðîãðàììû), êâàçèñòàòè÷åñêàÿ (ñòàòè÷åñêèé â ïðåäåëàõ áëîêà), äèíàìè÷åñêàÿ (ñîçäàþòñÿ ïî new malloc è òàê äàëåå, óíè÷òîæåíèå delete, free, èëè ñáîðêà ìóñîðà),persistent(ñîõðàíÿåìûé ìåæäóçàïóñêàìè ïðîãðàììû. Ðåàëèçóåòñÿ òîëüêî áèáëèîòå÷íûìè âûçîâàìè).19Ëåêöèÿ 6Îáëàñòü äåéñòâèÿ (ïîíÿòèå èìååò ñìûñë äëÿ èìåíîâàííûõ îáúåêòîâäàííûõ) òà ÷àñòü ïðîãðàììû, â êîòîðîé èìÿ äåéñòâèòåëüíî. Âàæíûäâà ïîíÿòèå îïðåäåëÿþùåå âõîæäåíèå èìåíè (îïðåäåëåíèå èëè îáúÿâëåíèå èìåíè), îáû÷íî åäèíñòâåííî, è èñïîëüçóþùåå âõîæäåíèå èìåíè.Áîëüøèíñòâî ßÏ êîíñòðóèðóåòñÿ òàê ÷òîá ñóùåñòâîâàëî åäèíñòâåííîåîïðåäåëÿþùåå âõîæäåíèå.Åñòü 2 âèäà îáëàñòåé äåéñòâèÿ ñòàòè÷åñêèå ( îïðåäåëÿþòñÿ ïî òåêñòó ïðîãðàììû åùå äî åå çàïóñêà íà ýòàïå êîìïèëÿöèè) è äèíàìè÷åñêèå( âñòðå÷àþòñÿ ðåäêî).