The principal argument in favor of dynamic scoping is that it facilitates the customization of subroutines. Suppose, for example, that we have a library routine print integer that is capable of...



The principal argument in favor of dynamic scoping is that it facilitates


the customization of subroutines. Suppose, for example, that we have a


library routine print integer that is capable of printing its argument in any


of several bases (decimal, binary, hexadecimal, etc.). Suppose further that


we want the routine to use decimal notation most of the time, and to use


other bases only in a few special cases: we do not want to have to specify


a base explicitly on each individual call. We can achieve this result with


dynamic scoping by having print integer obtain its base from a nonlocal


variable print base. We can establish the default behavior by declaring a


variable print base and setting its value to 10 in a scope encountered early


in execution. Then, any time we want to change the base temporarily, we


can write


begin – – nested block


print base : integer := 16 – – use hexadecimal


print integer(n)


The problem with this argument is that there are usually other ways to


achieve the same effect, without dynamic scoping. Describe at least two


for the print integer example.



May 19, 2022
SOLUTION.PDF

Get Answer To This Question

Submit New Assignment

Copy and Paste Your Assignment Here