<u id="6q4ql"><tbody id="6q4ql"></tbody></u>
          軟件是用編程軟件編的,編程軟件又怎么來的?
          來源:δ? 日期:2022-08-12 02:11 作者:admin

          軟件是用編程軟件寫成的,那么編程軟件是怎么來的呢?

          這個吧,我真的沒辦法一個個給你解釋到底,不然你要是打破沙鍋問到底,可能一頓火鍋的功夫我也沒辦法給你說完。舉個例子哈,IntelliJ IDEA和Eclipse都是Java的IDE,用這兩個IDE可以寫非常多的軟件,比如Android Studio先后分別基于這兩個軟件,Android上所有的軟件都是用這玩意兒開發的,但是這兩個IDE本身也都是Java語言開發的,這兩個IDE呢最初肯定是在Vim/Emacs+Java開發的,咱就先說到這里,不然要喋喋不休了。

          我給大家提一個思路,大家按照這個思路可以自己去找自己感興趣的問題。我給大家說一說Google實現Go 1.5自舉、去除所有的C語言程序的過程,大家慢慢就明白了,基本上計算機技術都是這樣迭代出來的,比如怎么先有了C語言、現有了Unix,又如何在這些基礎上,誕生了Emacs、C++等眾多新的軟件和技術。

          事實上現在所有新的編程語言,基本上都會考慮在C語言的基礎之上構建,Go語言也不例外,何況Go語言的重要設計者之一肯湯普森老爺子,還是C語言、Unix之父。Go語言發展的第一階段,就是開發一個從C語言到Go語言的翻譯器,將C語言編譯器翻譯成Go語言的,不過了Go語言核心設計團隊的三位大神非常機智,他們最大程度避免了在Go語言編譯器設計中,大量使用未來很難移植到Go語言的一些特性,比如宏、比如指針,這些都是C、C++留下的一些糟糕的設計,不符合現在的編程語言設計潮流。轉換編譯器源碼樹產生一個Go語言編譯器,不過這時候還是典型C語言風格。

          接下來,Google對編譯器進行了優化,將編譯器CPU、內存等硬件資源占用的問題解決了,并且引入了并行概念。為了改進編譯器在消除邊界檢查等問題下的能力,同時在不依賴架構的node*s、prog*s之間引入一個中間表示。這些事情完成之后,Google就做了最后一步,用Go 1.5、也就是當時Go語言最新版本,用go/parser和go/types替換了編譯器前端,至此Go語言實現了自舉,并且獲得了一個穩定高效的編譯器實現。

          Go語言本身編程難度要比C更簡單,這是因為Go語言跟很多高級語言一樣,摒棄了指針、規避了內存泄漏、解決了緩沖區溢出,深度遞歸時棧的溢出,摒棄了宏這些定義。Go語言工具鏈對模塊化、單元測試、以及性能分析支持更好,在修改內部API或重構時,應用自動化程序重構前景更加值得期待。

          你看這就是Go語言從C語言寫編譯器 ,到最終實現Go語言完全自舉的過程,當然大家都知道圖靈完備的編程語言都可以實現自舉,理論上符合圖靈完備的編程語言都是這么發展的,C++就是這么發展的,滿足這個條件的編程語言,你才能作為其他編程語言的基礎。

          那么我們回到最初的問題上,編寫軟件的編程軟件又是在什么環境下開發的呢?計算機技術發展至今,在機器語言的基礎上,弄出了匯編語言,接著兩位祖師爺弄了C語言和Unix系統,接著在這個基礎上,又有人弄了Emacs、Vim、GCC,你看基本上現代計算機技術的所有根基技術就有了。

          接著就是用C語言寫各種操作系統,為了各種需求寫各種編程語言,又根據各種需求開發各種集成開發環境,然后又根據各種應用需求用集成開發環境寫其他應用軟件,這就是一個完整的計算機技術發展進化流程。

          編程軟件也是,先有了機器語言,打孔時代創造和發明了匯編語言,匯編語言的基礎上又有了B語言,然后B語言的基礎上發明了C語言,C語言重寫Unix,于是現代計算機的雛形也就有了。早期是一生一、機器語言生匯編,然后機器和匯編語言生C語言,到C語言時代就是一生萬物、C語言生萬物,現在就是多生萬物。這就是計算機技術發展的過程。

          首先要明確幾個概念,計算機語言、軟件和開發平臺,計算機語言是軟件開發的基礎,通過計算機語言才能實現和計算機硬件的通訊,實現對硬件的操作,一般計算機語言分為低級語言和高級語言,低級語言如:機器語言、匯編語言,可以直接操作硬件,速度快,但是編寫和理解困難;高級語言如:C、C++、JAVA等,需要通過編譯轉換為機器語言實現對硬件操作,速度慢,但是更便于理解。

          軟件是通過計算機語言開發的,通過對計算機硬件的操作而實現某些功能的計算機程序的集合體,如:手機APP、PC端的應用、網站,甚至操作系統等都是軟件。

          一般所說的編程軟件都是指的開發平臺,也被稱為IDE(集成開發環境),它的主要作用是通過集成一些開發常用的環境或者工具來提升軟件開發的效率,如JAVA開發必須的JDK等。

          所以說軟件的基礎是計算機語言,通過計算機語言結合一系列的算法從而實現對計算機硬件的操作,實現某些功能,而開發平臺只是將代碼的編輯過程進行了簡化,使其更符合開發人員的思維邏輯。開發平臺本身也是一個軟件,也是通過某種計算機語言來寫的,并且很多開發平臺都是支持多語言的,如eclipse平臺,除了支持JAVA開發,還支持C/C++、PHP、Python等,甚至可以開發eclipse自身的插件。

          上一篇:沒有了 下一篇:沒有了
          猜你喜歡
          各種觀點
          熱門排行
          精彩
          • 用網絡PPT模板制作成完整的PPT侵權嗎
            用網絡PPT模板制作成完整的PPT侵權嗎
            1,個人使用,不用于商業營利的,不屬于侵權。但是在使用時應當注明作者。 2,《著作權法》規定: 第二十二條 在下列情況下使用作品,可以不經著作
          • html網頁制作中如何設置背景圖片(如何引用)
            html網頁制作中如何設置背景圖片(如何引用)
            1、首先打開Atom編輯器導入項目文件夾,先創建一個index.html的文件。定義一下html文件的主信息: 2、然后填寫自己的網頁內容,?設置一下樣式,直接在b
          • 基礎設施建設包括哪些
            基礎設施建設包括哪些
            基礎設施主要包括交通運輸,機場,港口,橋梁,通訊,水利及城市供排水供氣,供電設施和提供無形產品或服務于科教文衛等部門所需的固定資產,它是
          • 沒有基礎的人能學會小程序開發嗎?
            沒有基礎的人能學會小程序開發嗎?
            先說結論:可以,但是很難。 首先學會指的是多久學會,一個月,一年,或者更長時間,并且這個學會指的學到什么程度,不同的小程序實現的功能不同,
          • 零基礎小白如何學習建站和SEO,有什么建議嗎?
            零基礎小白如何學習建站和SEO,有什么建議嗎?
            你好,我是「前端雨爸」,希望我的回答對你有所幫助。 通過“工具”首先對于小白、零基礎的同學來說,通過工具的幫助來建站,我認為是最好不過的。
          他把舌头伸到我私密使劲捣

                <u id="6q4ql"><tbody id="6q4ql"></tbody></u>