操作系統(tǒng)和語言的關(guān)系(轉(zhuǎn)載)

“我一直弄不懂windows程序是什么?也不知道c++windows程序有什么關(guān)系荸镊,哪位高手知道,能不能告訴我一下堪置,謝謝……”

反正天黑躬存,我就胡扯一通,才發(fā)現(xiàn)完全答非所問舀锨。寫到這里來岭洲。

--------------------------------------------------

Windows 是一個(gè)操作系統(tǒng)……

操作系統(tǒng)必須支持他人(軟件開發(fā)人員)在它上面開發(fā)出新程序……

開發(fā)程序,自然要有開發(fā)語言的選擇雁竞,c? c++? pascal? BASIC? C#? java钦椭?Python??

這些語言在這個(gè)層面上,并不是平等的……

因?yàn)楸撸瑸閣indows等操作系統(tǒng)最初只提供了一種語言的開發(fā)接口——

那就 C語言彪腔。

這當(dāng)然也不能懷疑微軟開發(fā)人員偷懶,而是因?yàn)椤?/p>

因?yàn)闅v史的原因进栽,C語言尾隨匯編被選為操作系統(tǒng)開發(fā)的主要語言德挣。

而在對(duì)外(提供給軟件開發(fā)人員上)接口語言選擇上,匯編不僅太復(fù)雜了快毛,而且是硬件相關(guān)的……

所以(加上種種其它原因)格嗅,歷史讓C語言成為了操作系統(tǒng)開發(fā)接口上的第一語言。

事情當(dāng)然不會(huì)僅僅是這樣……

因?yàn)槿绻麅H僅操作系統(tǒng)的支持唠帝,那C語言也稱霸不了多久……

關(guān)鍵是屯掖,既然操作系統(tǒng)不直接支持其它語言……

那其它語言就只好倒過來去支持操作系統(tǒng)——

所謂既然沒辦法讓山走向穆罕默德,但穆罕默德可以走向山襟衰。

而c++,c,pascal,java,python等等語言贴铜,雖然在走的方式上有所不同,

但都要走向操作系統(tǒng)這座山瀑晒,

既然操作系統(tǒng)這座山的近乎唯一的路是C語言——

所有開發(fā)語言就只好放下身段

都提供了對(duì)C的支持(編譯的或者鏈接的)绍坝。

關(guān)于C就這樣了:

?操作系統(tǒng)是天子

其它語言是諸侯

那句曹孟德說的話,我就不說了苔悦。

C的江山就是這樣打下的轩褐。


八仙過海,各顯神通……

現(xiàn)在來說說它們各用各的什么招數(shù)走入C的內(nèi)心……


C++

既然你問的C++玖详,那我就先說它把介,并且說得正經(jīng)一點(diǎn)——

c++勤讽,噢,它是走得最近的拗踢,基本在語言地技,語法上都完全兼容C。

當(dāng)初世上最早的C++編譯器秒拔,不過是把C++語言直接翻譯成C語言,

然后再調(diào)用C語言的編譯器……

如果那時(shí)候有馬甲這個(gè)詞——

Cer 一定要嘲笑Cpper了飒硅,說它們是馬甲砂缩,是山寨,是……

但隨著名稱為“C with class”到"C++"的變換……

這一切都是過去式了三娩,C++終于有了真正的編譯器庵芭,

可以直接將C++搞成匯編,不再需要通過C的中轉(zhuǎn)雀监。

當(dāng)然了双吆,C++也可以直接使用匯編 。

而語言的兼容会前,以及庫的兼容依然不變好乐。

雖然后面二者慢慢的也有一些各走各的路了,但——

C++永遠(yuǎn)是眾多語言中瓦宜,對(duì)C最直接的支持者蔚万。

?Pascal

Pascal曾經(jīng)是C的競(jìng)爭(zhēng)者……

曾經(jīng)在在歐洲大陸,它的使用者甚至比C還多……

因?yàn)榱俦樱菍W(xué)院里首選的語言反璃。

它有自己的庫……比如那些數(shù)學(xué)庫,這其中原因假夺,當(dāng)然是因?yàn)椋?/p>

它同樣可以驕傲直接使用匯編語言淮蜈,以及

它覺得其實(shí)自己在效率上根本不比C差。

WINDOWS提供的函數(shù)接口形式已卷,最初就命名為PASCAL

不過……歷史沒有選擇它梧田,大概是因?yàn)椤?/p>

人類總是懶的,誰讓在用花括號(hào)的地方悼尾,pascal偏偏喜歡用begin和end呢柿扣?

當(dāng)然,這是一句玩笑話闺魏。

誰當(dāng)真誰是250——C采用的{}未状,在N多國(guó)家的鍵盤上,根本找不到析桥。

這一點(diǎn)還得倒過來說pascal有國(guó)際觀……

言歸正傳司草,歷史在發(fā)展艰垂,操作系統(tǒng)作用突然變大……

于是pascal終于還是要能調(diào)用C的函數(shù)……

用于Delphi的老人都知道,它要調(diào)用windows的某個(gè)DLL埋虹,那個(gè)方便的猜憎,VB簡(jiǎn)直要流汗——

MS自家的VB,在這點(diǎn)上竟然比不過別人家的delphi……

也沒有什么神奇的搔课,不過是borland的程序員兄弟們比較勤快胰柑,

早早的將一大堆的Windows C形式的接口,翻譯成了Pascal的爬泥。

停柬讨,關(guān)于pascal,我說太多了袍啡。

還是要補(bǔ)充一句踩官,操作系統(tǒng)已經(jīng)在又一次變得不重要了……

?Python

我要跳過java,先說說可愛的python.

啊境输,它當(dāng)然可以有 Java的實(shí)現(xiàn)蔗牡,也可以有.NET的實(shí)現(xiàn)。

因?yàn)樗陌l(fā)明者說:實(shí)現(xiàn)了python的語言嗅剖,及它的必須運(yùn)行時(shí)庫辩越,那就是一門python。

(原話是怎么說的信粮?要不怕被某奇怪的事實(shí)給傷到我的心区匣,可以去官方查一查)

但CPython必然是Python中的Python。

它和C語言可以雙向互調(diào)——

它可以非常方便地調(diào)C寫的模塊

C也可以嵌一個(gè)它的解釋器蒋院,有肚子里運(yùn)行Python寫的腳本亏钩。

對(duì)C++也有很好的支持,包括數(shù)據(jù)結(jié)構(gòu)……推薦一下boost.python欺旧。

Pythoner已經(jīng)不認(rèn)為Python只是一個(gè)解釋器姑丑,他們說:

Python其實(shí)已經(jīng)是一個(gè)虛擬機(jī)。

其實(shí)這根本是侮辱Python.

Python真正強(qiáng)大的地方在于:有C/C++的XXX

基本上辞友,就會(huì)有一個(gè)pyXXX在神奇地那兒候著——

什么叫老牌腳本語言栅哀!

不管啥場(chǎng)子內(nèi),都有人認(rèn)識(shí)他称龙,這才尊稱“老”留拾。

?Java

好吧說到虛擬機(jī),Java當(dāng)然應(yīng)該要出場(chǎng)鲫尊。

雖然VM這個(gè)東西痴柔,60年代Pascal就在玩了……但

誰叫它出生得太早?沒遇上Internet疫向?

?(網(wǎng)絡(luò)當(dāng)然只是表象,關(guān)鍵是那用K計(jì)的內(nèi)存喝兩杯啤酒就得溢)

操作系統(tǒng)是匯編和C寫的,猜一下虛擬機(jī)會(huì)是誰寫的细卧?

Java.exe 是操作系統(tǒng)萬千進(jìn)程中的的一個(gè)進(jìn)程……

而所有java寫成的class

都活在是java.exe這個(gè)進(jìn)程從OS里分來的內(nèi)存里……

其中某個(gè)帶有靜態(tài)的,名叫main的函數(shù)的類侈询,是某個(gè)java程序的最外面的那個(gè)門。

進(jìn)了這個(gè)門糯耍,那叫一個(gè)大同世界……

再也沒有人世間鬧人的差距……就差連貧富分化也解決了扔字。

偶爾Javaer也覺得不爽,于是在那個(gè)門口温技,伸出了一只腳啦租。

腳上一只鞋,牌子 JNI荒揣。(結(jié)論:Java仍然沒有放棄對(duì)C的支持)

若要問Java和Windows的關(guān)系?你可以一并問:

Java和Linux/UNIX的關(guān)系焊刹? Java和Android的關(guān)系系任?

我來回答你:沒什么關(guān)系,因?yàn)樗瞧脚_(tái)無關(guān)的虐块,操作系統(tǒng)就是平臺(tái)俩滥。

原因?

因?yàn)镴ava很牛贺奠,這么多年來霜旧,只有它真正成為語言界的穆罕默德……

它逼著操作系統(tǒng)走向了它——

方法不過幾句話:

先說: “當(dāng)今操作系統(tǒng),跨平臺(tái)是主流……”

然后說: “你是一個(gè)操作系統(tǒng)儡率?”

關(guān)鍵一問:“可是你居然不支持java語言挂据?”

結(jié)論:“那你還是一個(gè)正常的操作系統(tǒng)嗎?”儿普。

大多數(shù)男人在一句“那你還是一個(gè)正常的男人嗎崎逃?"

就生氣地脫下褲子證明一下……

但也有不吃這一套的,像微軟眉孩,反正已經(jīng)是微軟个绍,

脫了也還是微軟。

沒辦法浪汪,曾經(jīng)的“日”公司巴柿,只好自己替它寫一個(gè)。

用什么寫死遭? C和C++啊广恢。

還有其它的每個(gè)操作系統(tǒng)的廠商,也一樣呀潭。

操著C寫一個(gè)JVM實(shí)現(xiàn)了Java搶走了c++的曾經(jīng)的大塊地盤袁波。



C# 和 .NET


那一天一定是特別的一天……

Windows的開發(fā)人員學(xué)著上帝說:

操作系統(tǒng)要有支持多種語言的API瓦阐!

于是有了COM形工的編程接口。

它果真支持C——當(dāng)然篷牌,沒有它也支持C睡蟋。

它還支持C++,還是面向?qū)ο蟮募霞眨?dāng)然用起來那是怪怪的戳杀。

還愿意支持其它語言,不過數(shù)來數(shù)去夭苗,

也就Borland亦敵亦友跟著他玩啊啊……

生氣信卡,直接從borland挖走它們的靈魂人物:Anders Hejlsberg

于是一切有了很大的改觀:

先是終于borland也沒法陪他玩了——因?yàn)?/p>

Borland沒有了Ander Hejlberg,拖再久也終要在語言這條路上玩完题造。

而跑到微軟的Ander Hejlberg也沒閑著

先是搞了java比sun還要快傍菇,雷得SUN公司里焦外嫩……

硬是不允許這世上有MS自己寫的JVM。

后來sun也……落幕界赔。


突然的悲哀啊丢习,這段就不寫了……

還好有g(shù)ooooooogle,還有它們的go.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市淮悼,隨后出現(xiàn)的幾起案子咐低,更是在濱河造成了極大的恐慌,老刑警劉巖袜腥,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件见擦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡羹令,警方通過查閱死者的電腦和手機(jī)鲤屡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來福侈,“玉大人执俩,你說我怎么就攤上這事“┕簦” “怎么了役首?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)显拜。 經(jīng)常有香客問我衡奥,道長(zhǎng),這世上最難降的妖魔是什么远荠? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任矮固,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘档址。我一直安慰自己盹兢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布守伸。 她就那樣靜靜地躺著绎秒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尼摹。 梳的紋絲不亂的頭發(fā)上见芹,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音蠢涝,去河邊找鬼玄呛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛和二,可吹牛的內(nèi)容都是我干的徘铝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惯吕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼惕它!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起混埠,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诗轻,沒想到半個(gè)月后钳宪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扳炬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年吏颖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恨樟。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡半醉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劝术,到底是詐尸還是另有隱情缩多,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布养晋,位于F島的核電站衬吆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绳泉。R本人自食惡果不足惜逊抡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望零酪。 院中可真熱鬧冒嫡,春花似錦拇勃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胎许,卻和暖如春峻呛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辜窑。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工钩述, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人穆碎。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓牙勘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親所禀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子方面,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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