Flow-sensitive typing: Difference between revisions

Content deleted Content added
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5
Clements (talk | contribs)
m Implementations: replace apparently-broken LtU URL with official ACM URL
Line 76:
==Implementations==
 
Typed Scheme, a type system for [[Scheme (programming language)|Scheme]], was the first type system with this feature.<ref>{{cite web |title=The Design and Implementation of Typed Scheme {{!}} Lambda the UltimatePOPL, 2008 |url=httphttps://lambda-the-ultimatedl.acm.org/nodedoi/262210.1145/1328438.1328486 |website=lambda-the-ultimatedl.acm.org}}</ref> Its successor, Typed Racket (a dialect of [[Racket (programming language)|Racket]]), stillis makesalso extensivebased use ofon occurrence typing.<ref>{{cite web |title=5 Occurrence Typing |url=https://docs.racket-lang.org/ts-guide/occurrence-typing.html |website=docs.racket-lang.org}}</ref> Shortly after Typed Scheme, David J. Pearce independently reinvented flow-typing in [[Whiley (programming language)|Whiley]].<ref>{{cite web | url=http://whiley.org/2010/09/22/on-flow-sensitive-types-in-whiley/ | title=On Flow-Sensitive Types in Whiley | publisher=whiley.org | date=22 September 2010 | access-date=11 March 2016 | author=David J. Pearce | archive-date=11 March 2016 | archive-url=https://web.archive.org/web/20160311184700/http://whiley.org/2010/09/22/on-flow-sensitive-types-in-whiley/ | url-status=dead }}</ref><ref>{{cite web | url=http://whiley.org/guide/typing/flow-typing/ | title=Whiley - Flow Typing | publisher=whiley.org | date=8 April 2012 | access-date=11 March 2016 | author=David J. Pearce | archive-date=11 March 2016 | archive-url=https://web.archive.org/web/20160311184703/http://whiley.org/guide/typing/flow-typing/ | url-status=dead }}</ref>
 
Typed JavaScript observed that in "scripting" languages, flow-typing depends on more than conditional predicates; it also depends on state and control flow.<ref>{{cite web | url=https://cs.brown.edu/~sk/Publications/Papers/Published/gsk-flow-typing-theory/ | title=Typing Local Control and State Using Flow Analysis | access-date=14 November 2016}}</ref> This style has since been adopted in languages like [[Ceylon (programming language)|Ceylon]],<ref>{{cite web | url=http://ceylon-lang.org/documentation/1.2/introduction/#typesafe_null_and_flow_sensitive_typing | title=Ceylon - Quick introduction - Typesafe null and flow-sensitive typing | publisher=ceylon-lang.org | access-date=11 March 2016}}</ref> [[TypeScript]]<ref>{{cite web |url=https://blogs.msdn.microsoft.com/typescript/2014/11/18/typescript-1-4-sneak-peek-union-types-type-guards-and-more | title=TypeScript 1.4 sneak peek: union types, type guards, and more | publisher=blogs.msdn.microsoft.com | date=18 November 2014 | access-date=11 March 2016 | author=Ryan Cavanaugh}}</ref> and [[Facebook]] Flow.<ref>{{cite web | url=https://code.facebook.com/posts/1505962329687926/flow-a-new-static-type-checker-for-javascript | title=Flow, a new static type checker for JavaScript | publisher=code.facebook.com | date=18 November 2014 | access-date=11 March 2016 |author=Avik Chaudhuri |author2=Basil Hosmer |author3=Gabriel Levi}}</ref>