ISCOPE(3.icon) Icon Program Library ISCOPE(3.icon) NNNNAAAAMMMMEEEE Descr, Indir, Word1, Word2, Symbol, Efp, Gfp, Pfp - examine Icon internals DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These functions deal with Icon internals, producing values that exist in memory and registers as Icon is executing. Internal values are represented as Icon integers. A knowledge of the implementation of Icon is needed to use these functions properly. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS DDDDeeeessssccccrrrr((((iiii,,,,jjjj)))) compose a descriptor whose first word is iiii and whose second word is jjjj. IIIInnnnddddiiiirrrr((((iiii)))) return an integer corresponding to the value where the descriptor at iiii points. WWWWoooorrrrdddd1111((((xxxx,,,,iiii)))) return Icon integer whose value is the first word of the descriptor xxxx. If iiii is zero, xxxx is derefer- enced; otherwise it is not. An omitted value of iiii defaults to 0. WWWWoooorrrrdddd2222((((xxxx,,,,iiii)))) like WWWWoooorrrrdddd1111, except that the value is for the second word of the descriptor xxxx. SSSSyyyymmmmbbbboooollll((((ssss)))) returns the address of the symbol ssss. The allowable values of ssss are: globals address of the global vector eeeegggglllloooobbbbaaaallllssss address of the end of the global vector ggggnnnnaaaammmmeeeessss address of the global name vector ssssttttrrrriiiinnnnggggssss beginning of the string region ssssffffrrrreeeeeeee string region free pointer hhhhppppbbbbaaaasssseeee beginning of the heap region hhhhppppffffrrrreeeeeeee heap region free pointer ssssttttaaaacccckkkkssss beginning of the co-expression stack region eeeessssffffrrrreeeeeeee co-expression stack region free pointer SSSSyyyymmmmbbbboooollll((((ssss)))) fails if ssss is not one of these strings. EEEEffffpppp(((()))) return the address of the expression frame pointer GGGGffffpppp(((()))) return the address of the generator frame pointer PPPPffffpppp(((()))) return the address of the frame pointer CCCCAAAAVVVVEEEEAAAATTTTSSSS _I_s_c_o_p_e is inherently dangerous. For example, the composition Version 5.9 The University of Arizona - 8/17/84 1 ISCOPE(3.icon) Icon Program Library ISCOPE(3.icon) of an arbitrary descriptor using DDDDeeeessssccccrrrr may cause the Icon system to malfunction in mysterious ways. Addresses that are represented by integers are not relocated during garbage collection; such addresses generally are invalidated by a garbage collection. RRRREEEEQQQQUUUUIIIIRRRREEEEMMMMEEEENNNNTTTTSSSS _I_s_c_o_p_e only works for the VAX-11 implementation of Icon. SSSSEEEEEEEE AAAALLLLSSSSOOOO Griswold, Ralph E., Robert K. McConeghy, and William H. Mitchell. _A _T_o_u_r _T_h_r_o_u_g_h _t_h_e _C _I_m_p_l_e_m_e_n_t_a_t_i_o_n _o_f _I_c_o_n; _V_e_r_- _s_i_o_n _5._9, Department of Computer Science, The University of Arizona. 1984. Griswold, Ralph E. ``A Portable Diagnostic Facility for SNO- BOL4'', _S_o_f_t_w_a_r_e--_P_r_a_c_t_i_c_e _a_n_d _E_x_p_e_r_i_e_n_c_e, Vol. 5 (1975), pp. 93-105. Griswold, Ralph E. ``Linguistic Extension of Abstract Machine Modelling to Aid Software Development'', _S_o_f_t_w_a_r_e-- _P_r_a_c_t_i_c_e _a_n_d _E_x_p_e_r_i_e_n_c_e, Vol. 10 (1980), pp. 1-9. AAAAUUUUTTTTHHHHOOOORRRRSSSS Ralph E. Griswold and William H. Mitchell Version 5.9 The University of Arizona - 8/17/84 2