Реферат: Программирование ориентированное на объекты
┌─ ┌───────────────────┐ ─┐
│ │ Переменная А │ │
│ ├───────────────────┤ > Локальная среда
│ │ Адрес возврата │ │ для W1
Занятое прост- < ├───────────────────┤ ─┤
ранство │ │ Переменная А │ │
│ ├───────────────────┤ > Локальная среда
│ │ Адрес возврата │ │ для W2
Вершина ──> └─ │───────────────────┤ ─┤
стека │ │ │
автоматической │ │ │
памяти │ │ │ Свободное
│ │ > пространство
Пассивация │ │ │ памяти
│ ^ │ │ │
│ │ │ │ │
│ │ │ │ │
v │ └───────────────────┘ ─┘
Активация
При активации каждого нового объекта вершина стека "опускается вниз" на величину, определяемую размерами локальной среды этого объекта,- при его пассивации вершина стека "поднимается вверх". С использованием автоматической памяти связаны две основные проблемы: рекурсии и множественности ассоциаций.
Рекурсия - механизм, позволяющий объекту совершать самоактивац-ию. Например, по схеме:
W1-->W1 (прямая рекурсия)
или W1-->W2 ...-->W1 (косвенная рекурсия).
Прямая рекурсия связана с непосредственной повторной (вложенной) активацией, а косвенная - с опосредованной (причем число посредников в схеме W1-->...-->W1 может быть произвольным). Использование рекурсии напрямую связано с размерами рабочего пространства автоматической памяти. Использование рекурсивных активаций объектов, с одной стороны, позволяет иметь очень лаконичные и емкие по содержанию программы, с другой стороны, в рекурсивных схемах (особенно в косвенной рекурсии) возрастает вероятность появления трудно идентифицируемых ошибок.
Множественность ассоциаций заключается в том, что в классе автоматической памяти могут быть одновременно размещены несколько одноименных объектов, имеющих в общем случае различные значения и относящиеся к разным активностям одного и того же или опять-таки разных объектов. В приведенном примере существуют два одноименных объекта: переменная А, связанная (ассоциированная) с активностью W1, и переменная А, ассоциированная с активностью объекта W2. В соответствии с принципом стека система упpавления автоматической памятью всегда pассматpивает в качестве активной последнюю созданную ассоциацию (самую "ближнюю" к вершине стека автоматической памяти). Возникновение множественности ассоциаций обусловлено только использованием в прикладных программах одноименных переменных с различной областью действия (областью видимости). Если уж использование таких переменных и является необходимым (в чем всегда стоит усомниться), то при их интерпретации следует помнить о множественности ассоциаций.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄А___Б___v_Г___ Д___q_U___ Г___m_╜___ ╛___h_╤___ ¤___e_└___ ╟___b_е__ ┬________ ____Z___________________@___
____@____@_________ -___x_о___ ├___s_ч___ ■___n_Ф___ й___i_з__ │__d_└__ ╨____w"__ Ы"__Z_B#__ __________________________________B#__C#__t_j#__ k#__m_r#__ s#__f_а#__ б#____Ў#__ ў#__X_∙#__ ·#__Q_Н%__ w"__ Ы"_______Ї______Ї______Ї______Ї______Ї______Ї
Н%__О%__t_с&__ т&__m_='__ >'__f_P'__ Q'____0(__ 1(__X_3(__ 4(__Q_q(__ w"__ Ы"_______Ї______Ї______Ї______Ї______Ї______Ї
q(__(__v_к(__ ┤(__q_╗*__ ╩*__l_/+__ N+__g_S+__ T+__`_я+__ _,__[__,__ 5,__V__0__ __________________Ї____________________
_0__*0__v_51__ X1__q_Q9__ b9__n__;__ у;__k_O<__ T<__f_У<__ Я<__a_Y=__ v=__\_OA__ _______________________________________
OA___A__x_yA__ ИA__u_▒B__ ╛B__p_ЕC__ ЩC__k_▀C__ ьC__f_TD__ eD__a_УD__ жD__\_3J__ _______________________________________
3J__CJ__v_~J__ ЮJ__q_WK__ sK__l_ёL__ ўL__g_VN__ gN__b_hN__ iN____"O__ 2O__Z_+T__ _______________________________________
+T__;T__v_<T__q_╥U__ ╘U__l_┘X__ сX__g_╢\__ ╧\__b_Va__ ka__]_Ъb__ Ыb__V_3c__ +T__ ________
______________________________3c__5c__t_Уc__ Фc__m__f__ _f__f__g__ _g__a_▀g__ щg__^_ak__ ik__Y_jk__V_╪k__ +T__ ________________________
______
______
╪k__┘k__t_ l__ #l__o_/m__ 0m__h_╓p__ ·p__c_]q__ nq__a_Чq__ │q____├q__ Zr__]_░t__ Вu__Z_____7_7_7___________
___________
_Вu__pv__ zv__v_
w__ 1w__q_╫x__ яx__l_нy__ ├y__g_|z__ Иz__d_┼{__ ▄{__a_F~__ b~__^_BД__ __________________________________BД__DД__y_dД__ eД__w_ЭД__ ЯД__u_┴Д__ ├Д__s_уД__ фД__q__Е__ _Е__o_>Е__ @Е__m_`Е__ aЕ__k_ПЕ__ СЕ__i_____7_7_7_7_7_7_7_7_7_СЕ__ШЕ__ нЕ__y_├Е__ ┼Е__w_хЕ__ цЕ__u__Ж__ _Ж__s_ЭЗ__ ║З__n__Й__ Й__i_zЙ__ МЙ__d_YЛ__ ПЕ__ СЕ__________________7_7_7_7_YЛ__jЛ__v_ Л__ _М__q_┘М__ уМ__l_шМ__ яМ__g_шН__ ЄН__b_UО__ aО__]__Т__ _Т__V__Т__ YЛ______
______________________________
_Т___Т__t_эТ__r_мЧ__ ╦Ч__p_╪Ч__ ┘Ч__n_єЧ__ √Ч__l__Ш__ 4Ш__j_6Ш__ `Ш__h_bШ__ eШ__f_gШ__ КШ__d______7_7_7_7_7_7_7________
_КШ__МШ__ еШ__y_жШ__ оШ__w_╗Ш__ ┌Ш__u_█Ш__ ▀Ш__s_уШ__ _Щ__q_#Щ__ MЩ__o_OЩ__ RЩ__m__Щ__ ЙЩ__k_НЩ__ _7_7__7_7_7_7_7_7_7_7_НЩ__╖Щ__y_╣Щ__ ╝Щ__w_═Щ__ ўЩ__u__Ъ__ 2Ъ__s_4Ъ__ ^Ъ__q_█Ы__ эЫ__l_╫Э__ 'Ю__j_-Ю__ .Ю__h_6Ю__ 7Ю__f__7_7_7______7_7_7_7_7_7Ю__HЮ__ IЮ__y_RЮ__ SЮ__w_]Ю__ ^Ю__u_цЮ__ чЮ__s_ыЮ__ ЇЮ__q_¤Ю__ Я__o__Я__ _Я__m__Я__ XЯ__k_ZЯ__ _7_7__7_7_7_7_7_7_7_7_ZЯ__ХЯ__y_ЧЯ__ ╥Я__w_╘Я__ _а__u__а__ Hа__s_Jа__ Ба__q_ъл__ _м__l_
▒__ ╧▒__i_b┤__ n┤__f_S╢__ ZЯ__ ____________7_7_7_7_7_S╢___╢__v_"╣__ A╣__q_t╣__ П╣__l_p╝__ ╝__g_у┼__ х┼__`_╞__ _╞__Y__╞__ _╞__R_b┤________
______
______
_____________________╞___╞__ _╞__t_У╨__ ж╨__o_Я╪__ ╗╪__j_u▌__ Л▌__e_╬▌__ _▐__`_Y▀__ }▀__[_ф__ "ф__X_______________________________________
"ф__Aх__ [х__x_Qц__ mц__s_нц__ ┬ц__n_╪ш__ тш__i_шш__ Єш__d_#щ__ :щ____Bщ__ Pщ__Z__ы__ ___________________________________ы__&ы__v_Оы__ еы__q_бь__ вь__o_▒ь__ █ь__m_ э__ Pё__k_~ё__f_zў__d_вў____\___]__ __ _ы__ ____7_6____7_6____7_7_7__________
_ __ __v_\
__ c
__s_F___
___p_K___ W___m_Z___ f___j_╠___ ┌___g_+___ C___b_\___ s___]___________________________________s___ъ___ ____v_В___ М___q_└___ с___l_=___ h___g_▀___ !‑__b_k‑__ Ж‑__]_а#__ ╢#__Z_ь(__ __________________________________ь(__є(__v_5,__ N,__t_P,__ ?0__r_A0__ у1__p_ц1__k__@__i_#@__d_╦B__b_┌B__]_^G__[_sG__V_ь(_6____7_6____7_6____7______7_7_7_____
sG__НG__y_ЧG__t_╙G__
H__o_║M__m_▀M__h_сM__f_уM__a_ыM__^_?N__ ╪P__\_ЄP__Y_СQ__ _S__W_ь(__7____7____6____7_6____7_6____6____7
_S__:S__v__T__t__T__o_)T__ █T__m_▄T__ сM__f_уM__a_ыM__^_?N__ ╪P__\_ЄP__Y_СQ__ _S__W_ь(__7____7____6____7_6____7_6____7_6____А___Г___i_Ж___W_╔___J_с___J_у___H_______________________________╪P__\_ЄP__Y__C
B_!_____7_р__< ‑_______Ё_______<"‑_______Ё_______у_______n_:___n_<___l_>___l_L_____U___]_Г___[____________________________________________р__<
‑_?_C
B_!_____7_р__C
B_!_____7_р__Г___Е___n_Ц___k_Ш___i_Ъ___i_Ь___i_Ю___i_а___i_в___i_________________________________________________B_!_____7_C_<_
B_!_____7_р__в___д___y_ж___y_и___y_к___y_м___y_о___y_╝___l_╜___ ________________________________________________B_!_____7_C_
B_!_____7_р__C_╜___└___i_╧___g_╤___e_U___c_j___c_Ц___c_ ___c_Т___c_________________________________________________B_!_I_C_I_<!‑_______Ё_______Т___к___y_ш___y_%___y_3___w_*
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11