Its contents is what I consider the meta game of programming. Understanding types seems to be a real boost to think about architecture, implementation, etc.
Its contents is what I consider the meta game of programming. Understanding types seems to be a real boost to think about architecture, implementation, etc.
> A type system is a syntactic method for enforcing levels of abstraction in programs.
Why is it called a syntactic method? Because type errors are caught at compile time, by analyzing the source code?
This gets especially confusing when you bring in dispatch, where the types are now deciding what functions get called.
> The word "static" is sometimes added explicitly—we speak of a "statically typed programming language," for example—to distinguish the sorts of compile-time analyses we are considering here from the dynamic or latent typing found in languages such as Scheme, where run-time type tags are used to distinguish different kinds of structures in the heap. Terms like "dynamically typed" are arguably misnomers and should probably be replaced by "dynamically checked," but the usage is standard.
A static type system is syntactic insofar as the syntax itself is what is being analyzed, not the actual runtime behavior.