動態(tài) 靜態(tài)語言

1.動態(tài)語言和靜態(tài)語言

先說下什么是動態(tài)語言

動態(tài)語言胰蝠,是指程序在運(yùn)行時可以改變其結(jié)構(gòu):新的函數(shù)可以被引進(jìn),已有的函數(shù)可以被刪除等在結(jié)構(gòu)上的變化亩码。

ECMAScript(JavaScript)便是一個動態(tài)語言季率。除此之外如Ruby、Python等也都屬于動態(tài)語言描沟,而C飒泻、C++等語言則不屬于動態(tài)語言。

動態(tài)類型語言吏廉,意思就是類型的檢查是在運(yùn)行時做的泞遗,比如如下代碼是不是合法的要到運(yùn)行時才判斷(注意是運(yùn)行時的類型判斷)

而靜態(tài)類型語言的類型判斷是在運(yùn)行前判斷(如編譯階段),比如C#席覆、java就是靜態(tài)類型語言

2.Objective-C的動態(tài)運(yùn)行性

Objective-C語言是C語言的一個子類史辙,所以O(shè)bjective-C是一個靜態(tài)語言,但是Objective-C的三大特性之一的多態(tài)性讓其擁有了動態(tài)性。

oc的動態(tài)性讓程序可以在運(yùn)行時判斷其該有的行為聊倔,而不是像c等靜態(tài)語言一樣在編譯構(gòu)建時就確定下來晦毙。它的動態(tài)性主要體現(xiàn)在一下三個方面:

2.1。動態(tài)類型耙蔑。 如id類型见妒。實際上靜態(tài)類型因為其固定性和可預(yù)知性而使用得更加廣泛。靜態(tài)類型是強(qiáng)類型甸陌,而動態(tài)類型屬于弱類型须揣。運(yùn)行時決定接收者。

這里補(bǔ)充講一下強(qiáng)钱豁、弱類型:語言有無類型返敬、強(qiáng)類型和弱類型三種。無類型的不做任何檢查寥院,甚至不區(qū)分指令和數(shù)據(jù)劲赠;弱類型的檢查很弱,僅能區(qū)分指令和數(shù)據(jù)秸谢;強(qiáng)類型的嚴(yán)格在編譯期進(jìn)行檢查凛澎。強(qiáng)類型語言在沒有強(qiáng)制類型轉(zhuǎn)化前,不允許兩種不同類型的變量相互操作

2.2估蹄。 動態(tài)綁定塑煎。讓代碼在運(yùn)行時判斷需要調(diào)用什么方法,而不是在編譯時臭蚁。與其他面向?qū)ο笳Z言一樣最铁,方法調(diào)用和代碼并沒有在編譯時連接在一起,而是在消息發(fā)送時才進(jìn)行連接垮兑。運(yùn)行時決定調(diào)用哪個方法冷尉。

2.3。 動態(tài)載入系枪。讓程序在運(yùn)行時添加代碼模塊以及其他資源雀哨。用戶可以根據(jù)需要加載一些可執(zhí)行代碼和資源,而不是在啟動時就加載所有組件私爷∥砉祝可執(zhí)行代碼中可以含有和程序運(yùn)行時整合的新類。

3.運(yùn)行時機(jī)制

主要是將數(shù)據(jù)類型的確定由編譯時衬浑,推遲到了運(yùn)行時捌浩。 這個問題其實淺涉及到兩個概念,運(yùn)行時和多態(tài)工秩。?簡單來說尸饺,運(yùn)行時機(jī)制使我們直到運(yùn)行時才去決定一個對象的類別宏榕,以及調(diào)用該類別對象指定方法。

多態(tài):不同對象以自己的方式響應(yīng)相同的消息的能力叫做多態(tài)侵佃。

意思就是假設(shè)生物類(life)都用有一個相同的方法-eat;?那人類屬于生物麻昼,豬也屬于生物,都繼承了life后馋辈,實現(xiàn)各自的eat抚芦,但是調(diào)用是我們只需調(diào)用各自的eat方法。?也就是不同的對象以自己的方式響應(yīng)了相同的消息(響應(yīng)了eat這個選擇器)迈螟。 因此也可以說叉抡,運(yùn)行時機(jī)制是多態(tài)的基礎(chǔ)。

因此也可以說答毫,運(yùn)行時機(jī)制是多態(tài)的基礎(chǔ)

4.OC 和 Swift 的動靜

因為 OC 是動態(tài)的語言褥民,方法的調(diào)用并不是在編譯階段完全定死的,而是在運(yùn)行的時候以發(fā)送消息的形式進(jìn)行調(diào)用洗搂,所以這里就引出了一個比較受爭議的做法消返,就是通過運(yùn)行時的 api 對方法的調(diào)用進(jìn)行交換

Swift通過var和let聲明變量和常量,不需要指定數(shù)據(jù)類型耘拇,非常像JavaScript等動態(tài)語言撵颊。但是仔細(xì)學(xué)習(xí)可以發(fā)現(xiàn),其實Swift是靜態(tài)語言惫叛,而且是類型安全的靜態(tài)語言倡勇,即使是Int和Double也需要顯示轉(zhuǎn)換。那么不需要數(shù)據(jù)類型的聲明其實就是語法糖了嘉涌,是編譯器做的類型推斷妻熊,一旦類型確定就無法再改變了。所以Swift應(yīng)該還是靜態(tài)語言

5.補(bǔ)充:

做程序需三個階段仑最。

第一階段:編輯扔役,就是用寫字板、word之類或?qū)S玫能浖斎胲浖Z句词身。

第二階段:編譯厅目,把軟件語句翻譯準(zhǔn)機(jī)器代碼番枚,并進(jìn)行適當(dāng)?shù)膬?yōu)化法严,一般產(chǎn)生.obj文件。

第三階段:連接葫笼,把.obj根據(jù)里面的調(diào)用進(jìn)行優(yōu)化并產(chǎn)生可執(zhí)行文件深啤,即.exe或dll文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末路星,一起剝皮案震驚了整個濱河市溯街,隨后出現(xiàn)的幾起案子诱桂,更是在濱河造成了極大的恐慌,老刑警劉巖呈昔,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挥等,死亡現(xiàn)場離奇詭異,居然都是意外死亡堤尾,警方通過查閱死者的電腦和手機(jī)肝劲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郭宝,“玉大人辞槐,你說我怎么就攤上這事≌呈遥” “怎么了榄檬?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長衔统。 經(jīng)常有香客問我鹿榜,道長,這世上最難降的妖魔是什么锦爵? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任犬缨,我火速辦了婚禮,結(jié)果婚禮上棉浸,老公的妹妹穿的比我還像新娘胡桨。我一直安慰自己,他們只是感情好仆嗦,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布每币。 她就那樣靜靜地躺著,像睡著了一般嗡害。 火紅的嫁衣襯著肌膚如雪焚碌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天霸妹,我揣著相機(jī)與錄音十电,去河邊找鬼。 笑死叹螟,一個胖子當(dāng)著我的面吹牛鹃骂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播罢绽,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼畏线,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了良价?” 一聲冷哼從身側(cè)響起寝殴,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蒿叠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蚣常,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體市咽,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年抵蚊,在試婚紗的時候發(fā)現(xiàn)自己被綠了魂务。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡泌射,死狀恐怖粘姜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情熔酷,我是刑警寧澤孤紧,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站拒秘,受9級特大地震影響号显,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躺酒,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一押蚤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧羹应,春花似錦揽碘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裸违,卻和暖如春掖桦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背供汛。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工枪汪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人怔昨。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓雀久,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朱监。 傳聞我的和親對象是個殘疾皇子岸啡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容