Skip to main content
  1. Notes/

Static Typing

  • stricter, catches more errors
  • can prove that the program is free of type errors
  • no runtime overhead
  • can be inconvenient: might need additional code/annotations
  • not all properties can be checked statically (array bounds)
  • error messages from the type checker can be hard to understand
  • type annotations help document the code
  • types can be used to control the behaviour of code (overloading)
  • indispensable for serious software development:
    • proves the absence of certain errors
    • helps with interface design
    • helps with refactoring
  • advantages apply mostly to symbolic computations, less so to numeric ones