If a variable or a code or block or anything, that is not in my function but in other function, Then my function will use "access link" of Activation record to access them.
Displays are an optimization technique that replaces access links. There are implemented as an array (of pointer) in this array each entry points to one of the activation records.
The size of the array is the maximum nesting depth in the program
use: if disp is the display, then disp[i] points to the activation record associated with the current
scope at nesting depth i.
Now if function j wants to access something that is in function i then
Step-1: go to the activation record pointed to by disp[i]
Step-2: find the nonlocal via an offset in this activation record