Skip to content

Commit 65a120c

Browse files
committed
New: Gradual Typing
1 parent 591463f commit 65a120c

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
========================================
2+
Gradual Typing
3+
========================================
4+
5+
6+
.. contents:: 目錄
7+
8+
9+
介紹
10+
========================================
11+
12+
Gradual Typing 為混合 Static Typing 和 Dynamic Typing 所形成的型別系統,
13+
部份變數會在編譯時期知道型別並檢查型別的正確性,
14+
部份變數則會保持不知道型別的狀態,
15+
直到執行時期才撿查型別錯誤。
16+
在許多實際案例上,Gradual Typing 為在原本的動態語言上加入靜態型別的選擇而成,
17+
在某些案例上則是語言在一開始的設計就選擇了 Gradual Typing。
18+
19+
20+
21+
範例
22+
========================================
23+
24+
Dynamically Typed -> Gradually Typed
25+
26+
* TypeScript (改自 JavaScript)
27+
* Hack (改自 PHP)
28+
* Typed Racket (改自 Racket)
29+
* Typed Clojure (改自 Clojure)
30+
* Cython (改自 Python)
31+
32+
33+
Statically Typed -> Gradually Typed
34+
35+
* C#
36+
37+
38+
Others
39+
40+
* Dart
41+
* Dylan
42+
* Perl 6
43+
44+
45+
46+
參考
47+
========================================
48+
49+
* `Wikipedia - Gradual typing <https://en.wikipedia.org/wiki/Gradual_typing>`_
50+
* `ECOOP 2016 - Gradual Type Systems <http://2016.ecoop.org/event/summer-school-gradual-type-system>`_
51+
* `ECOOP 2016 - 28 Years of Types for Untyped Languages: A Random Walk Thru TypeLand <http://2016.ecoop.org/event/summer-school-gradual-typing>`_
52+
* `POPL 2016 Papers <https://github.com/gasche/popl2016-papers>`_
53+
* `Lambda the Ultimate - Progress on Gradual Typing <http://lambda-the-ultimate.org/node/5292>`_
54+
* `A bibliography on Gradual Typing <https://github.com/samth/gradual-typing-bib>`_
55+
* [2015] `Towards Practical Gradual Typing <http://www.ccs.neu.edu/racket/pubs/ecoop2015-takikawa-et-al.pdf>`_
56+
* `What is Gradual Typing <http://homes.soic.indiana.edu/jsiek/what-is-gradual-typing/>`_
57+
58+
59+
Python
60+
61+
* `PEP 483 -- The Theory of Type Hints <https://www.python.org/dev/peps/pep-0483/>`_
62+
* `Reticulated Python - Types for Python <https://github.com/mvitousek/reticulated>`_

0 commit comments

Comments
 (0)