Главная » Просмотр файлов » В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006)

В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006) (1134633), страница 26

Файл №1134633 В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006) (В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006)) 26 страницаВ.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006) (1134633) страница 262019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

 ýòîì ñëó÷àå íåêîòîðûå èç êîìïîíåíò òð¼õàäðåñíîãî êîäà ìîãóò íå èñïîëüçîâàòüñÿ. Íàïðèìåð, óñëîâíûé îïåðàòîð8.2. Òð¼õàäðåñíûé êîä185if A > B then S1 else S2ìîæåò áûòü ïðåäñòàâëåí ñëåäóþùèì êîäîì:t := A - BJGT t, S2...Çäåñü JGT äâóìåñòíàÿ îïåðàöèÿ óñëîâíîãî ïåðåõîäà, íåâûðàáàòûâàþùàÿ ðåçóëüòàòà.Ðàçáèåíèå àðèôìåòè÷åñêèõ âûðàæåíèé è îïåðàòîðîâóïðàâëåíèÿ äåëàåò òð¼õàäðåñíûé êîä óäîáíûì ïðè ãåíåðàöèè ìàøèííîãî êîäà è îïòèìèçàöèè. Èñïîëüçîâàíèå èì¼íïðîìåæóòî÷íûõ çíà÷åíèé, âû÷èñëÿåìûõ â ïðîãðàììå, ïîçâîëÿåò ëåãêî ïåðåóïîðÿäî÷èâàòü òð¼õàäðåñíûé êîä.t1t2t3t4t5a:=:=:=:=:=:=-cb * t1-cb * t3t2 + t4t5t1t2t5aà:=:=:=:=-cb * t1t2 + t2t5áÐèñ. 8.3.Ïðåäñòàâëåíèÿ ñèíòàêñè÷åñêîãî äåðåâà è ãðàôà ðèñ.

8.1â âèäå òð¼õàäðåñíîãî êîäà äàíî íà ðèñ. 8.3, à, è 8.3, á,ñîîòâåòñòâåííî.Òð¼õàäðåñíûé êîä ýòî àáñòðàêòíàÿ ôîðìà ïðîìåæóòî÷íîãî êîäà.  ðåàëèçàöèè òð¼õàäðåñíûé êîä ìîæåò áûòüïðåäñòàâëåí çàïèñÿìè ñ ïîëÿìè äëÿ îïåðàöèè è îïåðàíäîâ.Ðàññìîòðèì òðè ñïîñîáà ðåàëèçàöèè òð¼õàäðåñíîãî êîäà:÷åòâ¼ðêè, òðîéêè è êîñâåííûå òðîéêè.×åòâ¼ðêà ýòî çàïèñü ñ ÷åòûðüìÿ ïîëÿìè, êîòîðûå áóäåì íàçûâàòü op, arg1, arg2 è result. Ïîëå op ñîäåðæèòêîä îïåðàöèè.

 îïåðàòîðàõ ñ óíàðíûìè îïåðàöèÿìè òèïàx := −y èëè x := y ïîëå arg2 íå èñïîëüçóåòñÿ.  íåêîòîðûõ186Ãëàâà 8. Ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììûîïåðàöèÿõ (òèïà ¾ïåðåäàòü ïàðàìåòð¿) ìîãóò íå èñïîëüçîâàòüñÿ íè arg2, íè result. Óñëîâíûå è áåçóñëîâíûå ïåðåõîäûïîìåùàþò â result ìåòêó ïåðåõîäà. Íà ðèñ. 8.4, à, ïðèâåäåíû ÷åòâ¼ðêè äëÿ îïåðàòîðà ïðèñâàèâàíèÿ a := b∗−c+b∗−c.Îíè ïîëó÷åíû èç òð¼õàäðåñíîãî êîäà íà ðèñ.

8.3, à.op arg1 arg2 result(0) ct1(1) *bt1t2(2) ct3(3) *bt3t4(4) +t2t4t5(5) := t5aop arg1 arg2(0) c(1) *b(0)(2) c(3) *b(2)(4) + (1)(3)(5) :=a(4)à) ÷åòâ¼ðêèá ) òðîéêèÐèñ. 8.4.Îáû÷íî ñîäåðæèìîå ïîëåé arg1, arg2 è result ýòî óêàçàòåëè íà âõîäû òàáëèöû ñèìâîëîâ äëÿ èì¼í, ïðåäñòàâëÿåìûõ ýòèìè ïîëÿìè. Âðåìåííûå èìåíà âíîñÿòñÿ â òàáëèöóñèìâîëîâ ïî ìåðå èõ ãåíåðàöèè.×òîáû èçáåæàòü âíåñåíèÿ íîâûõ èì¼í â òàáëèöó ñèìâîëîâ, íà âðåìåííîå çíà÷åíèå ìîæíî ññûëàòüñÿ, èñïîëüçóÿïîçèöèþ âû÷èñëÿþùåãî åãî îïåðàòîðà.

 ýòîì ñëó÷àå òð¼õàäðåñíûå îïåðàòîðû ìîãóò áûòü ïðåäñòàâëåíû çàïèñÿìèòîëüêî ñ òðåìÿ ïîëÿìè: op, arg1 è arg2, êàê ýòî ïîêàçàíîíà ðèñ. 8.3, á. Ïîëÿ arg1 è arg2 ýòî ëèáî óêàçàòåëè íà òàáëèöó ñèìâîëîâ (äëÿ èì¼í, îïðåäåë¼ííûõ ïðîãðàììèñòîì,èëè êîíñòàíò), ëèáî óêàçàòåëè íà òðîéêè (äëÿ âðåìåííûõçíà÷åíèé). Òàêîé ñïîñîá ïðåäñòàâëåíèÿ òð¼õàäðåñíîãî êîäà íàçûâàþò òðîéêàìè. Òðîéêè ñîîòâåòñòâóþò ïðåäñòàâëåíèþ ñèíòàêñè÷åñêîãî äåðåâà èëè ÎÀà ñ ïîìîùüþ ìàññèâàâåðøèí.×èñëà â ñêîáêàõ ýòî óêàçàòåëè íà òðîéêè, à èìåíà ýòî óêàçàòåëè íà òàáëèöó ñèìâîëîâ. Íà ïðàêòèêå èíôîðìàöèÿ, íåîáõîäèìàÿ äëÿ èíòåðïðåòàöèè ðàçëè÷íîãî òèïàâõîäîâ â ïîëÿ arg1 è arg2, êîäèðóåòñÿ â ïîëå op èëè äîïîë-8.2.

Òð¼õàäðåñíûé êîä187op arg1 arg2(0) [ ]=xi(1) := (0)yop arg1 arg2(0) =[ ]yi(1) :=x(0)à) x[i] := yá ) x := y[i]Ðèñ. 8.5.íèòåëüíûõ ïîëÿõ. Òðîéêè ðèñ. 8.4, á, ñîîòâåòñòâóþò ÷åòâ¼ðêàì ðèñ. 8.4, à.Äëÿ ïðåäñòàâëåíèÿ òðîéêàìè òð¼õìåñòíîé îïåðàöèè òèïà x[i] := y òðåáóåòñÿ äâà âõîäà, êàê ýòî ïîêàçàíî íàðèñ. 8.5, à, ïðåäñòàâëåíèå x := y[i] äâóìÿ îïåðàöèÿìè ïîêàçàíî íà ðèñ. 8.5, á.Òð¼õàäðåñíûé êîä ìîæåò áûòü ïðåäñòàâëåí íå ñïèñêîì òðîåê, à ñïèñêîì óêàçàòåëåé íà íèõ.

Òàêàÿ ðåàëèçàöèÿ îáû÷íî íàçûâàåòñÿ êîñâåííûìè òðîéêàìè. Íàïðèìåð,òðîéêè ðèñ. 8.4, á, ìîãóò áûòü ðåàëèçîâàíû òàê, êàê ýòîèçîáðàæåíî íà ðèñ. 8.6.(0)(1)(2)(3)(4)(5)îïåðàòîð(14)(15)(16)(17)(18)(19)(14)(15)(16)(17)(18)(19)op**+:=arg1cbcb(15)aarg2(14)(16)(17)(18)Ðèñ. 8.6.Ïðè ãåíåðàöèè îáúåêòíîãî êîäà êàæäîé ïåðåìåííîé,êàê âðåìåííîé, òàê è îïðåäåë¼ííîé â èñõîäíîé ïðîãðàììå, íàçíà÷àåòñÿ ïàìÿòü ïåðèîäà èñïîëíåíèÿ, àäðåñ êîòîðîéîáû÷íî õðàíèòñÿ â òàáëèöå ãåíåðàòîðà êîäà. Ïðè èñïîëüçîâàíèè ÷åòâ¼ðîê ýòîò àäðåñ ëåãêî ïîëó÷èòü ÷åðåç ýòó òàáëèöó.188Ãëàâà 8. Ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììûÁîëåå ñóùåñòâåííî ïðåèìóùåñòâî ÷åòâ¼ðîê ïðîÿâëÿåòñÿ â îïòèìèçèðóþùèõ êîìïèëÿòîðàõ, êîãäà ìîæåò âîçíèêíóòü íåîáõîäèìîñòü ïåðåìåùàòü îïåðàòîðû. Åñëè ïåðåìåùàåòñÿ îïåðàòîð, âû÷èñëÿþùèé x, íå òðåáóåòñÿ èçìåíåíèéâ îïåðàòîðå, èñïîëüçóþùåì x.

 çàïèñè æå òðîéêàìè ïåðåìåùåíèå îïåðàòîðà, îïðåäåëÿþùåãî âðåìåííîå çíà÷åíèå,òðåáóåò èçìåíåíèÿ âñåõ ññûëîê íà ýòîò îïåðàòîð â ìàññèâàõ arg1 è arg2. Èç-çà ýòîãî òðîéêè òðóäíî èñïîëüçîâàòü âîïòèìèçèðóþùèõ êîìïèëÿòîðàõ. ñëó÷àå ïðèìåíåíèÿ êîñâåííûõ òðîåê îïåðàòîð ìîæåòáûòü ïåðåìåù¼í ïåðåóïîðÿäî÷èâàíèåì ñïèñêà îïåðàòîðîâ.Ïðè ýòîì íå íàäî ìåíÿòü óêàçàòåëè íà op, arg1 è arg2.Ýòèì êîñâåííûå òðîéêè ïîõîæè íà ÷åòâ¼ðêè.

Êðîìå òîãî, ýòè äâà ñïîñîáà òðåáóþò ïðèìåðíî îäèíàêîâîé ïàìÿòè.Êàê è â ñëó÷àå ïðîñòûõ òðîåê, ïðè èñïîëüçîâàíèè êîñâåííûõ òðîåê âûäåëåíèå ïàìÿòè äëÿ âðåìåííûõ çíà÷åíèé ìîæåò áûòü îòëîæåíî íà ýòàï ãåíåðàöèè êîäà. Ïî ñðàâíåíèþñ ÷åòâ¼ðêàìè ïðè èñïîëüçîâàíèè êîñâåííûõ òðîåê ìîæíîñáåðå÷ü ïàìÿòü, åñëè îäíî è òî æå âðåìåííîå çíà÷åíèå èñïîëüçóåòñÿ áîëåå îäíîãî ðàçà. Íàïðèìåð, íà ðèñ. 8.6 ìîæíîîáúåäèíèòü ñòðîêè (14) è (16), ïîñëå ÷åãî ìîæíî îáúåäèíèòü ñòðîêè (15) è (17).8.3.

Ëèíåàðèçîâàííûå ïðåäñòàâëåíèÿ êà÷åñòâå ïðîìåæóòî÷íûõ ïðåäñòàâëåíèé âåñüìà ðàñïðîñòðàíåíû ëèíåàðèçîâàííûå ïðåäñòàâëåíèÿ äåðåâüåâ.Ëèíåàðèçîâàííîå ïðåäñòàâëåíèå ïîçâîëÿåò îòíîñèòåëüíîëåãêî õðàíèòü ïðîìåæóòî÷íîå ïðåäñòàâëåíèå âî âíåøíåéïàìÿòè è îáðàáàòûâàòü åãî. Íàèáîëåå ðàñïðîñòðàí¼ííîéôîðìîé ëèíåàðèçîâàííîãî ïðåäñòàâëåíèÿ ÿâëÿåòñÿ ïîëüñêàÿ çàïèñü ïðåôèêñíàÿ (ïðÿìàÿ) èëè ïîñòôèêñíàÿ(îáðàòíàÿ).Ïîñòôèêñíàÿ çàïèñü ýòî ñïèñîê âåðøèí äåðåâà, â êîòîðîì êàæäàÿ âåðøèíà ñëåäóåò (ïðè îáõîäå ñíèçó-ââåðõñëåâà-íàïðàâî) íåïîñðåäñòâåííî çà ñâîèìè ïîòîìêàìè.

Äå-8.3. Ëèíåàðèçîâàííûå ïðåäñòàâëåíèÿ189ðåâî íà ðèñ. 8.1, à, â ïîñòôèêñíîé çàïèñè ìîæåò áûòü ïðåäñòàâëåíî ñëåäóþùèì îáðàçîì:a b c - * b c - * + := ïîñòôèêñíîé çàïèñè âåðøèíû ñèíòàêñè÷åñêîãî äåðåâà ÿâíî íå ïðèñóòñòâóþò. Îíè ìîãóò áûòü âîññòàíîâëåíû èçïîðÿäêà, â êîòîðîì ñëåäóþò âåðøèíû è èç ÷èñëà îïåðàíäîâñîîòâåòñòâóþùèõ îïåðàöèé. Âîññòàíîâëåíèå âåðøèí àíàëîãè÷íî âû÷èñëåíèþ âûðàæåíèÿ â ïîñòôèêñíîé çàïèñè ñ èñïîëüçîâàíèåì ñòåêà. ïðåôèêñíîé çàïèñè ñíà÷àëà óêàçûâàåòñÿ îïåðàöèÿ, àçàòåì å¼ îïåðàíäû. Íàïðèìåð, äëÿ ïðèâåä¼ííîãî âûøå âûðàæåíèÿ èìååì:= a + * b - c * b - cÐàññìîòðèì äåòàëüíåå îäíó èç ðåàëèçàöèé ïðåôèêñíîãî ïðåäñòàâëåíèÿ Ëèäåð [12]. Ëèäåð ýòî àááðåâèàòóðàîò ¾ËÈíåàðèçîâàííîå ÄÅÐåâî¿. Ýòî ìàøèííî-íåçàâèñèìàÿïðåôèêñíàÿ çàïèñü.  Ëèäåðå ñîõðàíÿþòñÿ âñå îáúÿâëåíèÿè êàæäîìó èç íèõ ïðèñâàèâàåòñÿ ñâîé óíèêàëüíûé íîìåð,êîòîðûé èñïîëüçóåòñÿ äëÿ ññûëêè íà îáúÿâëåíèå.

Ðàññìîòðèì ïðèìåð.module M;var X,Y,Z: integer;procedure DIF(A,B:integer):integer;var R:integer;begin R:=A-B;return(R);end DIF;begin Z:=DIF(X,Y);end M.Ýòîò ôðàãìåíò èìååò ñëåäóþùèé îáðàç â Ëèäåðå.program 'M'var intvar int190Ãëàâà 8. Ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììûvar intprocbody proc int int end intvar intbegin assign var 1 7 endint int mi par 1 5 end par 1 6 endresult 0 int var 1 7 endreturnendbegin assign var 0 3 end inticall 0 4 int var 0 1 endint var 0 2 end endendÐàññìîòðèì åãî áîëåå äåòàëüíî:program 'M'Èìÿ ìîäóëÿ íóæíî äëÿ ðåäàêòîðàñâÿçåé.var intÝòî îáðàç ïåðåìåííûõ X, Y, Z;var intïåðåìåííûì X, Y, Z ïðèñâàèâàþòñÿvar intíîìåðà 1, 2, 3 íà óðîâíå 0.procbody procÎáúÿâëåíèå ïðîöåäóðû ñ äâóìÿint int endöåëûìè ïàðàìåòðàìè, âîçâðàùàþùåé öåëîå.intÏðîöåäóðà ïîëó÷àåò íîìåð 4 íàóðîâíå 0 è ïàðàìåòðû èìåþò íîìåðà5, 6 íà óðîâíå 1.var intÏåðåìåííàÿ R èìååò íîìåð 7 íàóðîâíå 1.beginÍà÷àëî òåëà ïðîöåäóðû.assignÎïåðàòîð ïðèñâàèâàíèÿ.var 1 7 endËåâàÿ ÷àñòü ïðèñâàèâàíèÿ (R).intÒèï ïðèñâàèâàåìîãî çíà÷åíèÿ.int miÖåëîå âû÷èòàíèå.par 1 5 endÓìåíüøàåìîå (A).par 1 6 endÂû÷èòàåìîå (B).result 0Ðåçóëüòàò ïðîöåäóðû óðîâíÿ 0.intÐåçóëüòàò èìååò öåëûé òèï.var 1 7 endÐåçóëüòàò ïåðåìåííàÿ R.returnÎïåðàòîð âîçâðàòà.8.4.

Âèðòóàëüíàÿ ìàøèíà Javaendbeginassignvar 0 3inticall 0int varint varendendend40 1 end0 2 end191Êîíåö òåëà ïðîöåäóðû.Íà÷àëî òåëà ìîäóëÿ.Îïåðàòîð ïðèñâàèâàíèÿ.Ëåâàÿ ÷àñòü ïåðåìåííàÿ Z.Òèï ïðèñâàèâàåìîãî çíà÷åíèÿ.Âûçîâ ëîêàëüíîé ïðîöåäóðû DIF.Ôàêòè÷åñêèå ïàðàìåòðû Xè Y.Êîíåö âûçîâà.Êîíåö òåëà ìîäóëÿ.8.4. Âèðòóàëüíàÿ ìàøèíà JavaÏðîãðàììû íà ÿçûêå Java òðàíñëèðóþòñÿ â ñïåöèàëüíîå ïðîìåæóòî÷íîå ïðåäñòàâëåíèå, êîòîðîå çàòåì èíòåðïðåòèðóåòñÿ òàê íàçûâàåìîé ¾âèðòóàëüíîé ìàøèíîé Java¿.Âèðòóàëüíàÿ ìàøèíà Java ïðåäñòàâëÿåò ñîáîé ñòåêîâóþìàøèíó: îíà íå èìååò ïàìÿòè ïðÿìîãî äîñòóïà, âñå îïåðàöèè âûïîëíÿþòñÿ íàä îïåðàíäàìè, ðàñïîëîæåííûìè íàâåðõóøêå ñòåêà.

×òîáû, íàïðèìåð, âûïîëíèòü îïåðàöèþ ñó÷àñòèåì êîíñòàíòû èëè ïåðåìåííîé, èõ ïðåäâàðèòåëüíîíåîáõîäèìî çàãðóçèòü íà âåðõóøêó ñòåêà. Êîä îïåðàöèè âñåãäà îäèí áàéò. Åñëè îïåðàöèÿ èìååò îïåðàíäû, îíè ðàñïîëàãàþòñÿ â ñëåäóþùèõ áàéòàõ.Ê ýëåìåíòàðíûì òèïàì äàííûõ, ñ êîòîðûìè ðàáîòàåòìàøèíà, îòíîñÿòñÿ short, integer, long, float, double (âñåçíàêîâûå).8.4.1. Îðãàíèçàöèÿ ïàìÿòèÌàøèíà èìååò ñëåäóþùèå ðåãèñòðû:pc ñ÷¼ò÷èê êîìàíä;optop óêàçàòåëü âåðøèíû ñòåêà îïåðàöèé;frame óêàçàòåëü íà ñòåê-ôðåéì èñïîëíÿåìîãî ìåòîäà;vars óêàçàòåëü íà 0-þ ïåðåìåííóþ èñïîëíÿåìîãî ìåòîäà.Âñå ðåãèñòðû 32-ðàçðÿäíûå.

Ñòåê-ôðåéì èìååò òðè êîìïîíåíòû: ëîêàëüíûå ïåðåìåííûå, ñðåäó èñïîëíåíèÿ, ñòåê îïåðàíäîâ. Ëîêàëüíûå ïåðåìåííûå îòñ÷èòûâàþòñÿ îò àäðåñà192Ãëàâà 8. Ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììûâ ðåãèñòðå vars. Ñðåäà èñïîëíåíèÿ ñëóæèò äëÿ ïîääåðæàíèÿ ñàìîãî ñòåêà. Îíà âêëþ÷àåò óêàçàòåëü íà ïðåäûäóùèéôðåéì, óêàçàòåëü íà ñîáñòâåííûå ëîêàëüíûå ïåðåìåííûå,íà áàçó ñòåêà îïåðàöèé è íà âåðõóøêó ñòåêà. Êðîìå òîãî,çäåñü æå õðàíèòñÿ íåêîòîðàÿ äîïîëíèòåëüíàÿ èíôîðìàöèÿ,íàïðèìåð, äëÿ îòëàä÷èêà.Êó÷à ñáîðêè ìóñîðà ñîäåðæèò ýêçåìïëÿðû îáúåêòîâ,êîòîðûå ñîçäàþòñÿ è óíè÷òîæàþòñÿ àâòîìàòè÷åñêè. Îáëàñòü ìåòîäîâ ñîäåðæèò êîäû, òàáëèöû ñèìâîëîâ è ò.ä.Ñ êàæäûì êëàññîì ñâÿçàíà îáëàñòü êîíñòàíò. Îíà ñîäåðæèò èìåíà ïîëåé, ìåòîäîâ è äðóãóþ ïîäîáíóþ èíôîðìàöèþ, êîòîðàÿ èñïîëüçóåòñÿ ìåòîäàìè.8.4.2.

Íàáîð êîìàíä âèðòóàëüíîé ìàøèíûÂèðòóàëüíàÿ Java-ìàøèíà èìååò ñëåäóþùèå êîìàíäû:ïîìåùåíèå êîíñòàíò íà ñòåê,ïîìåùåíèå ëîêàëüíûõ ïåðåìåííûõ íà ñòåê,çàïîìèíàíèå çíà÷åíèé èç ñòåêà â ëîêàëüíûõ ïåðåìåííûõ,îáðàáîòêà ìàññèâîâ,óïðàâëåíèå ñòåêîì,àðèôìåòè÷åñêèå êîìàíäû,ëîãè÷åñêèå êîìàíäû,ïðåîáðàçîâàíèÿ òèïîâ,ïåðåäà÷à óïðàâëåíèÿ,âîçâðàò èç ôóíêöèè,òàáëè÷íûé ïåðåõîä,îáðàáîòêà ïîëåé îáúåêòîâ,âûçîâ ìåòîäà,îáðàáîòêà èñêëþ÷èòåëüíûõ ñèòóàöèé,ïðî÷èå îïåðàöèè íàä îáúåêòàìè,ìîíèòîðû,îòëàäêà.Ðàññìîòðèì íåêîòîðûå êîìàíäû ïîäðîáíåå.8.4. Âèðòóàëüíàÿ ìàøèíà Java193Ïîìåùåíèå ëîêàëüíûõ ïåðåìåííûõ íà ñòåêÊîìàíäà iload çàãðóçèòü öåëîå èç ëîêàëüíîé ïåðåìåííîé.

Îïåðàíäîì ÿâëÿåòñÿ ñìåùåíèå ïåðåìåííîé â îáëàñòèëîêàëüíûõ ïåðåìåííûõ. Óêàçûâàåìîå çíà÷åíèå êîïèðóåòñÿíà âåðõóøêó ñòåêà îïåðàöèé. Èìåþòñÿ ïîäîáíûå êîìàíäûäëÿ ïîìåùåíèÿ ïëàâàþùèõ, äâîéíûõ öåëûõ, äâîéíûõ ïëàâàþùèõ è ò.ä.Êîìàíäà istore ñîõðàíèòü öåëîå â ëîêàëüíîé ïåðåìåííîé. Îïåðàíäîì îïåðàöèè ÿâëÿåòñÿ ñìåùåíèå ïåðåìåííîé â îáëàñòè ëîêàëüíûõ ïåðåìåííûõ. Çíà÷åíèå ñ âåðõóøêèñòåêà îïåðàöèé êîïèðóåòñÿ â óêàçûâàåìóþ îáëàñòü ëîêàëüíûõ ïåðåìåííûõ. Èìåþòñÿ ïîäîáíûå êîìàíäû äëÿ ïîìåùåíèÿ ïëàâàþùèõ, äâîéíûõ öåëûõ, äâîéíûõ ïëàâàþùèõ èò.ä.Âûçîâ ìåòîäàÊîìàíäà invokevirtual.Ïðè òðàíñëÿöèè îáúåêòíî-îðèåíòèðîâàííûõ ÿçûêîâïðîãðàììèðîâàíèÿ èç-çà âîçìîæíîñòè ïåðåêðûòèÿ âèðòóàëüíûõ ìåòîäîâ, âîîáùå ãîâîðÿ, íåëüçÿ ñòàòè÷åñêè ïðîòðàíñëèðîâàòü âûçîâ ìåòîäà îáúåêòà.

Ýòî ñâÿçàíî ñ òåì,÷òî åñëè ìåòîä ïåðåêðûò â ïðîèçâîäíîì êëàññå, è âûçûâàåòñÿ ìåòîä îáúåêòà-ïåðåìåííîé, òî ñòàòè÷åñêè íåèçâåñòíî,îáúåêò êàêîãî êëàññà (áàçîâîãî èëè ïðîèçâîäíîãî) õðàíèòñÿ â ïåðåìåííîé. Ïîýòîìó ñ êàæäûì îáúåêòîì ñâÿçûâàåòñÿòàáëèöà âñåõ åãî âèðòóàëüíûõ ìåòîäîâ: äëÿ êàæäîãî ìåòîäà òàì ïîìåùàåòñÿ óêàçàòåëü íà åãî ðåàëèçàöèþ â ñîîòâåòñòâèè ñ ïðèíàäëåæíîñòüþ ñàìîãî îáúåêòà êëàññó â èåðàðõèè êëàññîâ. ÿçûêå Java ðàçëè÷íûå êëàññû ìîãóò ðåàëèçîâûâàòüîäèí è òîò æå èíòåðôåéñ. Åñëè îáúÿâëåíà ïåðåìåííàÿ èëèïàðàìåòð òèïà èíòåðôåéñ, òî äèíàìè÷åñêè íåëüçÿ îïðåäåëèòü îáúåêò êàêîãî êëàññà ïðèñâîåí ïåðåìåííîé:interface I;class C1 implements I;class C2 implements I;194Ãëàâà 8. Ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììûI O;C1 O1;C2 O2;...O=O1;...O=O2;... ýòîé òî÷êå ïðîãðàììû, âîîáùå ãîâîðÿ, íåëüçÿ ñêàçàòü,êàêîãî òèïà çíà÷åíèå õðàíèòñÿ â ïåðåìåííîé O.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее