電腦安裝舊版計(jì)算器 80年代的鎮(zhèn)江是什么樣子的?
80年代的鎮(zhèn)江是什么樣子的?四十多歲還回顧了鎮(zhèn)江的風(fēng)光。大市場(chǎng)門口,五條街仿佛是昨天,但前幾天,我收到了敬老金。那一年,我的自行車踏遍了鎮(zhèn)江城。車牌號(hào)碼最多只有前綴2的五位數(shù)。如今,有30多萬輛汽車。
80年代的鎮(zhèn)江是什么樣子的?
四十多歲還回顧了鎮(zhèn)江的風(fēng)光。
大市場(chǎng)門口,五條街仿佛是昨天,但前幾天,我收到了敬老金。
那一年,我的自行車踏遍了鎮(zhèn)江城。車牌號(hào)碼最多只有前綴2的五位數(shù)。如今,有30多萬輛汽車。
軟件是用編程軟件編的,編程軟件又怎么來的?
軟件是用編程軟件寫的,那么編程軟件是怎么來的呢?
嗯,我真的可以。;I don'我不一一解釋給你聽,否則,如果你問接下來是什么,我可能吃不完一頓火鍋。比如IntelliJ IDEA和Eclipse都是Java IDEs,用這兩個(gè)ide可以寫很多軟件。比如Android Studio就是基于這兩個(gè)軟件,Android上的所有軟件都是用這個(gè)工具開發(fā)的,但是這兩個(gè)ide也是用Java語言開發(fā)的。這兩個(gè)ide一開始肯定是用Vim/Emacs Java開發(fā)的,所以I 我先停在這里,否則我 我會(huì)沒完沒了地說下去。
我 我給你出個(gè)主意。按照這個(gè)思路,你可以找到自己感興趣的問題。我 我來告訴你Google bootstrapping Go 1.5和移除所有C語言程序的過程。你會(huì)逐漸明白,基本上計(jì)算機(jī)技術(shù)都是迭代的,比如怎么先有C語言,現(xiàn)在有Unix,在這些基礎(chǔ)上誕生了多少Emacs,C等新軟件新技術(shù)。
其實(shí)所有新的編程語言基本都會(huì)建立在C語言的基礎(chǔ)上,Go語言也不例外,更何況Go語言的重要設(shè)計(jì)者之一Ken Thompson也是C語言和Unix之父。Go語言發(fā)展的第一階段是開發(fā)一個(gè)從C語言到Go語言的翻譯器,把C語言編譯器翻譯成Go語言。但是Go語言核心設(shè)計(jì)團(tuán)隊(duì)中的三位大神都很機(jī)智,他們避免使用了Go語言的很多特性,比如宏,比如指針,這些都是C和C遺留下來的一些不好的設(shè)計(jì),不符合現(xiàn)在的編程語言設(shè)計(jì)趨勢(shì)。轉(zhuǎn)換編譯器源碼樹產(chǎn)生一個(gè)Go語言編譯器,但此時(shí)仍然是典型的C語言風(fēng)格。
接下來,Google對(duì)編譯器進(jìn)行了優(yōu)化,解決了編譯器占用CPU、內(nèi)存等硬件資源的問題,并引入了并行的概念。為了改進(jìn)編譯器 的消除邊界檢查和其他問題的能力,在獨(dú)立于體系結(jié)構(gòu)的節(jié)點(diǎn)和程序之間引入了中間表示。這些事情完成后,Google進(jìn)行了最后一步,用當(dāng)時(shí)Go語言的最新版本Go 1.5,go/parser和go/types代替了編譯器前端。到目前為止,Go語言已經(jīng)實(shí)現(xiàn)了自舉,獲得了穩(wěn)定高效的編譯。翻譯器實(shí)現(xiàn)。
Go語言本身比C更難編程,因?yàn)镚o語言和很多高級(jí)語言一樣,拋棄了指針,避免了內(nèi)存泄漏,解決了緩沖區(qū)溢出,深度遞歸棧溢出,拋棄了宏的定義。Go語言工具鏈更好地支持模塊化、單元測(cè)試和性能分析,在修改內(nèi)部API或重構(gòu)時(shí),應(yīng)用自動(dòng)化程序重構(gòu)的前景更值得期待。
你看,這就是從用C語言編寫編譯器,到最終實(shí)現(xiàn)Go語言完整自舉的過程。當(dāng)然,大家都知道圖靈完全編程語言可以實(shí)現(xiàn)bootstrap。理論上,圖靈完全編程語言都是這樣發(fā)展的,C也是這樣發(fā)展的。只有滿足這個(gè)條件的編程語言,你才能成為其他編程語言的基礎(chǔ)。
所以讓我們 讓我們回到最初的問題。寫軟件的編程軟件是在什么環(huán)境下開發(fā)的?計(jì)算機(jī)技術(shù)發(fā)展至今,在機(jī)器語言的基礎(chǔ)上做出了匯編語言,然后兩位老爺爺做出了C語言和Unix系統(tǒng),然后在此基礎(chǔ)上又有人做出了Emacs、Vim和GCC。你看,基本上現(xiàn)代計(jì)算機(jī)技術(shù)的基本技術(shù)都有。
然后用C語言編寫各種操作系統(tǒng),針對(duì)各種需求編寫各種編程語言,根據(jù)各種需求開發(fā)各種集成開發(fā)環(huán)境,然后根據(jù)各種應(yīng)用需求在集成開發(fā)環(huán)境中編寫其他應(yīng)用軟件。這是計(jì)算機(jī)技術(shù)發(fā)展的一個(gè)完整的進(jìn)化過程。
編程軟件也是如此。在鉆的時(shí)代,創(chuàng)造發(fā)明了匯編語言。在匯編語言的基礎(chǔ)上,發(fā)明了B語言。然后在B語言的基礎(chǔ)上發(fā)明了C語言,C語言改寫了Unix,于是現(xiàn)代計(jì)算機(jī)的雛形也就有了。早期機(jī)器語言誕生了匯編,然后機(jī)器和匯編語言誕生了C語言。C語言時(shí)代,萬物誕生,C語言孕育萬物?,F(xiàn)在,一切都誕生了。這是計(jì)算機(jī)技術(shù)發(fā)展的過程。