Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          關于編程語言的typing(一些基本概念)

          Posted on 2009-09-28 19:19 laogao 閱讀(1133) 評論(0)  編輯  收藏 所屬分類: Programming in General

          最近圍觀一本JavaScript的書籍引發的爭論,一不小心碰到一篇講編程語言類型系統劃分的帖子,回想起當年還在公司內部的Tech Session上主講過這個話題,不過只涉及到靜態/動態、強類型/弱類型,遠沒有這位仁兄總結的那么全面。

          原文鏈接
          http://www.reddit.com/r/programming/comments/63tnv/bruce_eckel_33104_im_over_it_java/c02qx55

          不多廢話,直入正題:

          [維度一] Static vs Dynamic Typing
          靜態類型和動態類型,區分的關鍵點為編譯期或運行期確定類型:靜態類型在編譯期確定,動態類型在運行期確定。
          靜態類型代表 Java、Scala、Haskell
          動態類型代表 Ruby、Python、Erlang

          [維度二] Strong vs Weak Typing
          強類型和弱類型,區分的關鍵點為運行時是否自動轉換到與實際類型不符的類型:強類型要求手工類型轉換,弱類型自動轉換。
          強類型代表 Java、Scala、Python
          弱類型代表 C、Assembly、JavaScript

          [維度三] Latent (Implicit) vs Manifest (Explicit) Typing
          隱式類型和顯式類型,區分的關鍵點為是否要在源碼中聲明類型:隱式類型不需要,顯式類型需要。
          隱式類型代表 Haskell、Erlang、Python
          顯式類型代表 C、C++、Java

          [維度四] Nominal vs Structural Typing
          名義類型和結構類型,區分的關鍵點為類型判定是根據標稱還是根據內容:名義類型根據標稱,結構類型根據內容。
          名義類型代表 C、C++、Java
          結構類型代表 Haskell、Erlang、Python

          關于JavaScript書籍的爭論,請移步如下網址:
          1- 網友Hax的"炮轟"帖 http://www.javaeye.com/topic/474725
          2- 周愛民(aimingoo)的MSN空間 http://aimingoo.spaces.live.com/blog/
          3- 火星常駐JE辦事處相關帖 http://mars.group.javaeye.com/group/topic/14325

          主站蜘蛛池模板: 尼玛县| 临洮县| 惠州市| 姚安县| 富蕴县| 遂平县| 榆社县| 松阳县| 珠海市| 庄浪县| 哈尔滨市| 团风县| 美姑县| 合川市| 德江县| 武穴市| 龙里县| 杭锦后旗| 绥中县| 共和县| 堆龙德庆县| 石屏县| 湘乡市| 灵宝市| 伊金霍洛旗| 台湾省| 汝州市| 英超| 金沙县| 永济市| 綦江县| 馆陶县| 垫江县| 拜城县| 田林县| 芷江| 太原市| 安丘市| 新宁县| 攀枝花市| 唐山市|