軟體是用編程軟體編寫的,那麼編程軟體又怎麼來的?

2020-12-15 EmacserVimer

軟體是用編程軟體寫成的,那麼編程軟體是怎麼來的呢?

這個吧,我真的沒辦法一個個給你解釋到底,不然你要是打破砂鍋問到底,可能一頓火鍋的功夫我也沒辦法給你說完。舉個例子哈,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語言風格。

Go語言

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

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

eclipse

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

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

Emacs

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

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

相關焦點

  • 單片機編程軟體大佬:明確單片機編程軟體編寫單片機程序步驟
    單片機用什麼軟體編程?單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。機器彙編是通過彙編軟體將源程序變為機器碼,用於MCS-51單片機的彙編軟體有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用彙編語言到逐漸使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最流行開發MCS-51系列單片機的軟體,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。
  • 軟體編程是什麼意思,可以自學嗎?
    近期很多朋友都開始學習軟體編程了(常被教育機構宣傳為「編程學習」,「計算機編程」等),而且大部分報名學習的價格不菲。對於許多沒有接觸過電腦的讀者們來說可能感覺很陌生,那麼這個軟體編程到底是學習些什麼內容,是否可以自學呢?
  • 讓軟體自己寫軟體,機器編程未來會取代程式設計師嗎?
    【CSDN 編者按】機器編程的可行性增大促使這一想法加快落入實地,事情的發展開始令人期待。英特爾為未來跨架構編程時代所設計的機器編程將會怎樣影響程式設計師的世界?軟體能否實現編寫軟體?在 2018 年英特爾研究院和麻省理工學院聯合發布的《機器編程的三大支柱》論文中,「機器編程」一詞首次出現在人們的視野。它融合了機器學習、形式化方法、程式語言、編譯器、計算機系統等多個領域。通俗地說,機器編程就是通過機器學習和自動化方法,設計出可以自己編寫軟體的軟體,即教系統自己編程。
  • Scratch編程軟體操作界面介紹
    1.1可視化的Scratch程式語言Scratch編程軟體介紹Scratch是由麻省理工學院(MIT) 設計開發的一款面向少年兒童的簡易編程工具,由於其圖形化編程方式,簡單易學,通過積木塊編寫程序,可以導演故事、編寫動畫、設計遊戲、開發實用工具等,鍛鍊了孩子們的「編程思維
  • CNC編程該選擇哪個軟體呢?編程軟體對比
    CNC數控編程人員如何選擇編程軟體?
  • S7-200 smart編程軟體的介紹
    安裝完成之後會在桌面上顯示STEP 7-MicroWIN SMART的圖標,我們雙擊,進入軟體界面。軟體的安介紹進入軟體後,界面如下。菜單欄:跟我們使用的辦公軟體一樣,大多數的菜單及功能都在菜單欄中選擇,個人感覺smart的編程軟體要比200系列的編程軟體好看,而且看著很直觀。
  • 智能狗編程軟體發布,助力青少兒編程釋放無限創造力
    TDOG Coding智能狗編程軟體助力青少兒編程釋放無限創造力經過為期一年的準備,近日,TDOG青少兒編程正式對外發布了自主研發的新一代圖形化編程編輯器——智能狗編程軟體(TDOG Coding)。,軟體以新一代編程教學技術為基礎、以中小學教育教學理論為指導、以TDOG青少兒編程百萬人次編程學習大數據為核心參考,充分體現青少年編程學習規律,有效激發青少年編程學習興趣。
  • 簡談三菱PLC編程軟體
    三菱PLC軟體應用非常廣泛,其中很多軟體我也是第一次使用,比如AD/DA/SC等等,不過這些都只能用於Q系列,FX系列還是得用原來的指令,比如DA/AD的話,只能使用FROM 和 TO 。下面就是三菱可程序設計控制器系列軟體介紹.
  • 高中第一個編程軟體|FrontPage
    現在編程軟體好用的真的太多了,最紅的莫過於vs了,可是我們高中居然用的是下面這款,咱也不敢問,雖說low吧,但是真的是太簡單了,所見即所得。| 軟體簡介姓名:Frontpage2003功能:是一款優秀的網頁初學者軟體。
  • 兒童編程用什麼軟體好?極客晨星推薦4款超實用兒童編程啟蒙工具
    兒童編程用什麼軟體好?極客晨星推薦4款超實用兒童編程啟蒙工具    隨著網際網路教育在國內的迅速發展,兒童編程教育也成為孩子教育學習的重中之重。
  • 用Python編程需要什麼軟體?
    用Python編程需要什麼軟體?Python編程是一門適合新手入門的程式語言,現在有不少程式設計師業餘時間學習Python程式語言,學習Python找到好工具會大大提高學習的效率。好用的Python編程軟體能將工作效率多倍速提升。
  • 深圳推出編程教學軟體——慧編程
    金羊網訊 記者王俊報導:26日,深圳市創客工場科技有限公司召開線上發布會,推出編程教學軟體慧編程(mBlock5),同時上線PC端和移動端版本。慧編程是為教育工作者量身打造的一款功能強大的編程教育工具,基於全球最流行的青少年程式語言Scratch開發,不僅支持軟硬體結合,而且可以實現圖形化編程到代碼編程的轉換,讓Python代碼編程教學變得簡單有趣。創客工場創始人兼CEO王建軍在發布會上說,目前mBlock系列軟體已經進入超過140個國家,累計全球用戶達450萬人,支持28種語言。
  • c語言編程軟體哪個好?c語言編程軟體下載地址
    c語言編程軟體哪個好?c語言編程軟體下載地址 2019年1月14日 HuangJiang來源:網際網路 繁體
  • 少兒編程:Scratch軟體介紹
    少兒編程:Scratch編程Scratch是麻省理工學院開發的圖形化編程工具,主要面對青少年。該軟體為開源軟體,下載和使用都是免費的。與寫代碼編程的不同,Scratch使用者不需要記住命令,它採用積木拖拽模式進行編程。
  • 圖形化編程軟體最全測評,2020年這10款軟體怎麼選?
    二、同樣基於scratch/makecode,國內各種軟體怎麼選知道了scratch之後,再去做調研的時候,我又聽到像mixly、mBlock、KittenBlock、Mind+這些軟體的名字。這些國產軟體有一個共同點,都是基於scratch或者makecode開發。
  • 如果是為了掙錢,我應該選擇競爭性編程還是軟體開發
    在給出任何意見之前,我們先來看看一些在大型科技巨頭公司工作的工程師的意見。根據Microsoft工程師Satendra Verma的說法,「儘管它可以提高您的技能,但優秀的軟體工程師所需要的遠遠超出競爭性編程所提供的。競爭性編程並不是成為一名優秀軟體工程師的必要條件。「但是如果我們談論另一面,那麼很多工程師也同意參加競爭性編程可以幫助他們抓住工作機會並成為軟體工程師。
  • 西門子PLC編程軟體下載_西門子PLC編程軟體官方免費下載「中文版...
    西門子plc編程軟體是一款專為西門子設備而專門開發的plc編程軟體。西門子編程軟體中文版的主要為了幫助用戶使用西門子的設備,機械設備需要進行特定的程序才能夠進行工作,這款軟體就是讓你的設備按你的想法去工作。太平洋下載中心為您提供西門子plc編程軟體官方下載。
  • Arduino圖形化編程軟體大推薦
    那在今天的文章裡,小A準備為大家一口推薦幾款國內主流的Arduino圖形化編程軟體,並對這幾款軟體的優缺點進行簡單地打分。前言:什麼是圖形化編程在推薦之前,首先我們來了解一下圖形化編程的概念。如果你是Arduino初學者,在學習Arduino編程的過程中,第一接觸到的就是官方的編程軟體Arduino IDE。
  • 三菱GPP編程軟體簡介
    1、基本概況SW3D5-GPPW-E是三菱電氣公司開發的用於可編程控制器的編程軟體,可在Windows 3.1及Windows 95下運行,適用於IBM PC/AT(兼容)其CPU為i486SX或更高,內存需
  • S7-200 SMART編程軟體程序的上傳與下載方法
    S7-200 SMART的編程軟體叫做STEP 7-MicroWIN SMART,能夠實現對S7-200SMART系列PLC的編程與監視工作。這裡說一下注意事項,如果電腦裡面存在其他的版本編程軟體,比如說是V2.2,V2.3等,在雙擊setup.exe後執行的是卸載工作,只有把之前版本的軟體卸載完成之後,再次進入安裝包,選擇setup.exe雙擊,才開始進行新版本的安裝。具體安裝操作步驟如下: