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

          主站蜘蛛池模板: 延吉市| 华容县| 桑植县| 临湘市| 广元市| 大余县| 淳化县| 西青区| 龙泉市| 巴青县| 沁源县| 鄂伦春自治旗| 东乡族自治县| 湖州市| 通州市| 和林格尔县| 邳州市| 金门县| 大田县| 铜陵市| 卢龙县| 乌兰察布市| 文登市| 威海市| 孙吴县| 仁布县| 郓城县| 峨山| 南乐县| 柳林县| 措美县| 嫩江县| 广安市| 图木舒克市| 佛冈县| 石阡县| 乌苏市| 东港市| 桐庐县| 沛县| 仙游县|