4 ms·
Why disqualify languages (like Python) simply because they execute type checks dynamically? You could as well try to find programs in these languages that crash
by afc 3y ago
Why disqualify languages (like Python) simply because they execute type checks dynamically? You could as well try to find programs in these languages that crash (without containing any issues that the language's dynamic type system detects at any point, before the crash).
- dtech 3y agoBecause the definition of soundness is that if a program typechecks it does not crash at runtime. This is a collection of unsound programs that syill typecheck. Since there is no difference in Python and other untyped languages between a potential typechecking stage and runtime the definition is meaningless for them.
- Jtsummers 3y agoBecause it isn't appropriate to their objective: > It's intended as a resource for researchers, designers and implementors of static type systems, as well as programmers interested in how type systems fit together (or don't). [emphasis added] Change the objective, and dynamic type systems would be appropriate.
- z3t4 3y agoDynamic type languages usually have a very strong type system - that makes it impossible to cause a type error.
- lmm 3y agoWhat Python has literally isn't a type system; expressions in Python don't have (the thing that Python calls) types, only values do. So it wouldn't even be possible to do any of the stuff this page is doing in Python.