Names, binding, and scope: Programming Language Design course | Zoonk
16. Names, binding, and scope
Define lexical and dynamic scope, shadowing, namespaces, declarations, and visibility. Implement symbol tables and a resolver that detects undefined or duplicate names before execution.