Restrictions are placed on constructs in programming languages due to numerous factors such as implementation, language security, reliability and understandability. How the restriction could be removed. In Pascal and C, every variable must be declared before being used. Explain your answers. Dynamic scoping renders compile-time type checking impossible.
Recursive procedures require only storage for the return address on the stack.
BNF grammars are used to specify the syntax and semantics of a programming language. Static scoping prohibits compile time checking. Be able to describe the phases of compilation. Be able to describe the strings generated by a grammar. Be able to construct parse trees.