軟件是用編程軟件編的,編程軟件又怎么來的?
軟件是用編程軟件寫的,那么編程軟件是怎么來的呢?
嗯,我真的可以。;Idon'我不一一解釋給你聽,否則,如果你問接下來是什么,我可能吃不完一頓火鍋。比如IntelliJIDEA和Eclipse都是JavaIDEs,用這兩個ide可以寫很多軟件。比如AndroidStudio就是基于這兩個軟件,Android上的所有軟件都是用這個工具開發的,但是這兩個ide也是用Java語言開發的。這兩個ide一開始肯定是用Vim/EmacsJava開發的,所以I我先停在這里,否則我我會沒完沒了地說下去。
我我給你出個主意。按照這個思路,你可以找到自己感興趣的問題。我我來告訴你GooglebootstrappingGo1.5移除所有C語言程序的過程。你會逐漸明白,基本上計算機技術都是迭代的,比如怎么先有C語言,現在有Unix,在這些基礎上誕生了多少Emacs,C等新軟件新技術。
其實所有新的編程語言基本都會建立在C語言的基礎上,Go語言也不例外,更何況Go語言的重要設計者之一KenThompson也是C語言和Unix之父。Go語言發展的第一階段是開發一個從C語言到Go語言的翻譯器,把C語言編譯器翻譯成Go語言。但是Go語言核心設計團隊中的三位大神都很機智,他們避免使用了Go語言的很多特性,比如宏,比如指針,這些都是C和C遺留下來的一些不好的設計,不符合現在的編程語言設計趨勢。轉換編譯器源碼樹產生一個Go語言編譯器,但此時仍然是典型的C語言風格。
接下來,Google對編譯器進行了優化,解決了編譯器占用CPU、內存等硬件資源的問題,并引入了并行的概念。為了改進編譯器的消除邊界檢查和其他問題的能力,在獨立于體系結構的節點和程序之間引入了中間表示。這些事情完成后,Google進行了最后一步,用當時Go語言的最新版本Go1.5,用go/parser和go/types替換了編譯器前端。至此,Go語言實現了自舉,獲得了穩定高效的編譯器實現。
Go語言本身比C更難編程,因為Go語言和很多高級語言一樣,拋棄了指針,避免了內存泄漏,解決了緩沖區溢出,深度遞歸棧溢出,拋棄了宏的定義。Go語言工具鏈對模塊化、單元測試和能分析支持更好,在修改內部API或者重構的時候,應用自動化程序重構的前景更值得期待。
你看,這就是從用C語言編寫編譯器,到最終實現Go語言完整自舉的過程。當然,大家都知道圖靈完全編程語言可以實現bootstrap。理論上,圖靈完全編程語言都是這樣發展的,C也是這樣發展的。只有滿足這個條件的編程語言,你才能成為其他編程語言的基礎。
所以讓我們讓我們回到最初的問題。寫軟件的編程軟件是在什么環境下開發的?計算機技術發展至今,在機器語言的基礎上做出了匯編語言,然后兩位老爺爺做出了C語言和Unix系統,然后在此基礎上又有人做出了Emacs、Vim和GCC。你看,基本上現代計算機技術的基本技術都有。
然后用C語言編寫各種操作系統,針對各種需求編寫各種編程語言,根據各種需求開發各種集成開發環境,然后根據各種應用需求在集成開發環境中編寫其他應用軟件。這是計算機技術發展的一個完整的進化過程。
編程軟件也是如此。在鉆的時代,創造發明了匯編語言。在匯編語言的基礎上,發明了B語言。然后在B語言的基礎上發明了C語言,C語言改寫了Unix,于是現代計算機的雛形也就有了。早期機器語言誕生了匯編,然后機器和匯編語言誕生了C語言。C語言時代,萬物誕生,C語言孕育萬物。現在,一切都誕生了。這是計算機技術發展的過程。
適合孩子學習的編程軟件有哪些?
唐不說偏門的軟件,說主流:
部分軟件編程
這種類型以入門指導為主,代表的編程軟件就是大名鼎鼎的Scratch。基于Scratch,孩子們可以通過簡單的圖形積木實現一些互動的動畫、游戲和應用。如果孩子在小學,用Scratch比較合適,很多學校也有這個課程?,F在它s的Scratch3.0版本,功能更強大。還支持一些硬件比如樂高ev3,micro:bit,所以don學習的時候不要買2.0的書。