Flow-sensitive typing: Difference between revisions

Content deleted Content added
Clements (talk | contribs)
m Implementations: replace apparently-broken LtU URL with official ACM URL
Clements (talk | contribs)
Benefits: PL Perspective, this is what finally made union types practical.
Line 73:
|author=[[Tony Hoare]]
|quote=I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language ([[ALGOL W]]). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.}}</ref>
 
From a Programming Languages perspective, it's reasonable to say that flow-sensitive typing is the feature that finally made it possible to build usable programming languages with union types. Until this point, attempts to add this feature to languages such as Scheme generally resulted in intractably large type representations. One example of a system with limited support for union types is Wright and Cartwright's "Soft Scheme."<ref>{{cite journal |last1=Wright |first1=Andrew |last2=Cartwright |first2=Robert |title=A practical soft type system for scheme |journal=ACM Transactions on Programming Languages and Systems |date=1 Jan 1997 |volume=19 |issue=1 |pages=87--152 |doi=https://doi.org/10.1145/239912.239917 |url=https://dl.acm.org/doi/abs/10.1145/239912.239917 |access-date=2024-05-04}}</ref>
 
==Implementations==