編程軟件可以編寫它本身嗎?

羅福添


可以的,編程軟件是集成了編輯器、編譯器、調試器等眾多功能於一身的集成開發環境,俗稱IDE。

接著我們從編程軟件的實現角度來看,軟件是使用某一種具體語言開發而成,比如c++。首先用c++語言規範書寫需要實現的功能,然後經過預處理、編譯、彙編、鏈接,最終生成可以在目標機器上運行的程序。

然後我們回到問題本身,拿大名鼎鼎的gcc 來說,Linux下大多數的c/c++語言開發的程序都離不開它。那麼,gcc又是用什麼開發的呢?這是不是有點類似,先有雞還是先有蛋的問題。

其實,現代的編譯器都有自舉的功能,就是說可以拿上一代成熟的編譯器,開發新一代的編譯器。新版的gcc就是拿上一版的自己開發而成。

因此,依此類推,拿一套功能完善的編程軟件是可以編寫它本身的。


代碼的藝術


編程軟件是編寫記錄生成軟件的工具。如果把軟件當做一個產品比如刀這個產品,那麼編程軟件就是生產這把刀錘子和爐具,最開始生產刀的工具很原始,所以第一把刀是石頭的,人們用這把刀除了殺野獸,也可以挖土,從而讓人們有了第一個鍊鐵的土爐。從這個土爐人們生產出了第一把青銅鐵刀。。。。軟件和編程軟件也是一樣,最開始人們生產音樂盒,天文觀測臺都是靠木匠師傅的工具來製作具有簡單程序的音樂盒及時鐘。。。。隨著科技的發展出現了半導體,人們開始用半導體搭建一些簡單功能程序的產品,比如打孔機,手搖計算器等,當然那個時代編程軟件還不是自動的還是要靠人們手工製作,程序過程記錄在紙上,保存這些程序需要大量的紙張和房間。後來出現了集成電路,集成電路出現了有記憶功能的存儲器,這就代替了紙張把程序存在了半導體內,後來出現了硬盤,硬盤就更能存儲更多程序數據了。給予硬件的發展,編程工具慢慢就從圖紙手繪轉入了電腦繪製了,電腦裡也就開始出現了簡單的編譯器。原始的軟件編程是,人們在text裡按規則寫好程序,然後通過一個asm編譯器將文本轉譯成機器碼,這個機器碼再通過下載工具下載到存儲器裡或者卡帶裡,然後CPU讀取卡帶開始自動運行程序,人們為了開發更高級的更自動的軟件,又開發出功能更多的編程軟件,在編程軟件裡可以寫代碼,編譯等而不需要像最初那樣在text裡寫,並且編程軟件有糾錯功能,text是沒有的.....所以軟件可以促進編程軟件的升級,編程軟件又可以開發出更高級智能的軟件。編程軟件和軟件互相促進從而達到了今天的水平。後面所謂的AI就是讓擁有高度智能軟件的機器人擁有自我編程能力,一旦機器人擁有自我編程能力那麼機器人將能脫離人類自我發展。如果還有不明白軟件和編程軟件的人可以私我。抬槓的請繞道,沒時間抬槓。


TABERISYS


如果你說的編程軟件是指編譯器或解釋器的話,那是可以的。舉個例子,go語言最早是通過C語言實現的,然後之後的版本就是通過go語言實現,也就是所謂的自舉。

所以理論上你完全可以通過一門語言去設計一門新的語言,然後寫出它的編譯器或解釋器。當這個新語言所有的規定都和原語言一樣,你就可以認為它實現了自己。


華語天地1990


可以!

好比工廠機械手可以製造出機械手一樣


分享到:


相關文章: