Programming Languages
Static typed programming languages are those in which variables need to be explicitly declared, including type, before used
True
Strongly typed language: type errors are more likely to be detected (at compile or at runtime) than weakly typed language
True
A programming language is considered 'strongly typed' if and only if all type errors are detected statically by the compiler.
False
A programming language is considered 'strongly typed' if every variable must be associated with a single primitive data type.
False
A variable's scope is the time during which the variable is bound to a storage location
False
Automatic memory management is incompatible with free union data types
False
Languages where reclaiming memory is the responsibility of the programmer generally produce slower running code
False
Languages with static typing do not allow user-defined types.
False
Most modern programming languages use dynamic scoping for functions.
False
Most programming languages prohibit redeclaring the same subroutine name within a scope
False
One of the advantages of Java is that its pointers are represented as objects, making pointer arithmetic easier.
False
Static type checking adds some execution-time overhead, but improves reliability of programs
False
A language is dynamically typed if the type of a variable can vary at run time depending on the value being assigned to it
True
A union type is a type that can store different type values at different times during the execution of a program
True
A variable's lifetime is the time during which the variable is bound to a storage location in memory
True
A variable's type constrains the values it can take on and also the kinds of operations that can be applied to it
True
Axiomatic semantics is an approach that is often used to prove that programs correctly implement their requirements
True
Dynamic type checking adds some execution-time overhead, but improves reliability of programs
True
For languages that automatically manage memory ('Garbage Collection') there has to be a run-time component
True
In languages with dynamic typing, type errors are in general only detected at run time
True
Misuse of union types can be a source of errors in some programming languages
True
Operational semantics is the meaning of statements, in a programming language, on a particular machine.
True
Programming languages use scopes (e.g., {...}, begin...end) to limit the lifetime of a variable name and its binding
True
