Python
- Exceptions
- Threading for compute bound tasks is synchronous
- Python has a Global Interpreter Lock (GIL); mutex
Data
- Variable: symbolic name associated with location that contains a value or pointer
- Value: piece of data with a type that is either referred to by a variable or computed by a program expression
- Variable facets:
- Name
- Type
- Value
- Binding
- Storage
- Lifetime
- Scope
- Mutability
- Type: category of data
- Not every typed language must have typed variables
- Value vs reference types
- Strong typing: the language’s type system guarantees that all operations are only invoked on objects/values of appropriate types
- Weak typing: “” does not “”
- Static typing: prior to execution, type checker determines the type of every expression and ensures all operations are compatible with the types of their operands
- Dynamic typing: as the program executes, the type checker ensures that each primitive operation is invoked with values of the right types, and raises an exception otherwise