您好,登錄后才能下訂單哦!
【強類型語言/弱類型語言】
強類型語言偏向于不容忍隱式類型轉換。強類型語言有 Java、C#、Python 等。示例如下(Python):
>>> 67 + 8 75 >>> 67 + '8' Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> 67 + '8' TypeError: unsupported operand type(s) for +: 'int' and 'str'
弱類型語言偏向于容忍隱式類型轉換。弱類型語言有 C、C++、JavaScript 等。示例如下(JavaScript):
> 67 + 8 75 > 67 + '8' "678"
無類型語言:匯編
【動態語言/靜態語言】
動態語言是運行時檢查變量類型的語言。動態語言有 Python、JavaScript 等。示例如下(Python):
>>> a = 7 >>> type(a) <class 'int'> >>> a = 'z' >>> type(a) <class 'str'>
靜態語言是編譯時檢查變量類型的語言。靜態語言有 C、C++、Java、C# 等。
【編譯型語言/解釋型語言】
編譯型語言需通過編譯器將源代碼編譯成機器碼,之后才能執行。一般需經過編譯、鏈接這兩個步驟。編譯型語言有 C、C++ 等。
解釋性語言的程序不需要編譯,相比編譯型語言省了道工序,解釋性語言在運行程序的時候才逐行翻譯。解釋型語言有 Python、JavaScript 等。
半編譯/半解釋型語言,編譯時不生成機器碼,生成中間碼(/字節碼)。代碼語言有 Java、C# 等。(Java 執行時接近解釋型,C# 執行時接近編譯型)
【強弱動靜象限圖】(圖片來源:Dynamic Typing is NOT Weak Typing)
本文根據以下兩篇文章整理:
1、知乎:弱類型、強類型、動態類型、靜態類型語言的區別是什么?
2、100多種編程語言學什么?編程范型/編程范式
3、有什么編譯型語言是動態類型的嗎?
*** walker ***
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。