したがって、2 つの異なるスコープ ルールを使用して出力を把握する必要があるという問題があります。a=3レキシカルスコープを使用した出力がandであることは知っていますがb=1、動的スコープを使用した出力を理解するのに苦労しています。
  注: 以下のコード例では C 構文を使用していますが、疑似コードとして扱いましょう。
int a,b;
int p() {
    int a, p;
    a = 0; b = 1; p = 2;
    return p;
}
void print() {
    printf("%d\n%d\n",a,b);
}
void q () {
    int b;
    a = 3; b = 4;
    print();
}
main() {
    a = p();
    q();
}
これが私が思いついたものです。動的スコープを使用すると、 および への非ローカル参照aがb変更される可能性があります。だから私はa=2( p() から戻る)、そしてb=4( q() の中で)持っています。出力は2 4?