你好,我是一位科技領(lǐng)域創(chuàng)作者,同時也是一名長期將Python作為自己主要使用的編程語言。
首先回答題主的疑問,編程語言是可以編寫自身的。歷史上所有編程語言都是通過別的程序編譯鏈接自己,然后再通過自己重寫自己!
接下來舉例說明,比如C語言,歷史上C語言是在B語言的基礎(chǔ)上設(shè)計出了C語言,通過B語言編譯出C語言的編譯器,然后又通通C語言的編譯器,自我更新。
所以說編程語言是可以編寫自身的!而且一些簡單的測試demo是很容易編寫的,題主也可以嘗試一下哦!
本回答純屬于個人觀點(diǎn),如果你有更好的觀點(diǎn),歡迎留言評論,我好完善本文的內(nèi)容?;蛘呦肓私飧啵堦P(guān)注我。
編程軟件是編寫記錄生成軟件的工具。如果把軟件當(dāng)做一個產(chǎn)品比如刀這個產(chǎn)品,那么編程軟件就是生產(chǎn)這把刀錘子和爐具,最開始生產(chǎn)刀的工具很原始,所以第一把刀是石頭的,人們用這把刀除了殺野獸,也可以挖土,從而讓人們有了第一個煉鐵的土爐。從這個土爐人們生產(chǎn)出了第一把青銅鐵刀。。。。軟件和編程軟件也是一樣,最開始人們生產(chǎn)音樂盒,天文觀測臺都是靠木匠師傅的工具來制作具有簡單程序的音樂盒及時鐘。。。。隨著科技的發(fā)展出現(xiàn)了半導(dǎo)體,人們開始用半導(dǎo)體搭建一些簡單功能程序的產(chǎn)品,比如打孔機(jī),手搖計算器等,當(dāng)然那個時代編程軟件還不是自動的還是要靠人們手工制作,程序過程記錄在紙上,保存這些程序需要大量的紙張和房間。后來出現(xiàn)了集成電路,集成電路出現(xiàn)了有記憶功能的存儲器,這就代替了紙張把程序存在了半導(dǎo)體內(nèi),后來出現(xiàn)了硬盤,硬盤就更能存儲更多程序數(shù)據(jù)了。給予硬件的發(fā)展,編程工具慢慢就從圖紙手繪轉(zhuǎn)入了電腦繪制了,電腦里也就開始出現(xiàn)了簡單的編譯器。原始的軟件編程是,人們在text里按規(guī)則寫好程序,然后通過一個asm編譯器將文本轉(zhuǎn)譯成機(jī)器碼,這個機(jī)器碼再通過下載工具下載到存儲器里或者卡帶里,然后CPU讀取卡帶開始自動運(yùn)行程序,人們?yōu)榱碎_發(fā)更高級的更自動的軟件,又開發(fā)出功能更多的編程軟件,在編程軟件里可以寫代碼,編譯等而不需要像最初那樣在text里寫,并且編程軟件有糾錯功能,text是沒有的.....所以軟件可以促進(jìn)編程軟件的升級,編程軟件又可以開發(fā)出更高級智能的軟件。編程軟件和軟件互相促進(jìn)從而達(dá)到了今天的水平。后面所謂的AI就是讓擁有高度智能軟件的機(jī)器人擁有自我編程能力,一旦機(jī)器人擁有自我編程能力那么機(jī)器人將能脫離人類自我發(fā)展。如果還有不明白軟件和編程軟件的人可以私我。抬杠的請繞道,沒時間抬杠。
可以的,編程軟件是集成了編輯器、編譯器、調(diào)試器等眾多功能于一身的集成開發(fā)環(huán)境,俗稱IDE。
接著我們從編程軟件的實(shí)現(xiàn)角度來看,軟件是使用某一種具體語言開發(fā)而成,比如c++。首先用c++語言規(guī)范書寫需要實(shí)現(xiàn)的功能,然后經(jīng)過預(yù)處理、編譯、匯編、鏈接,最終生成可以在目標(biāo)機(jī)器上運(yùn)行的程序。
然后我們回到問題本身,拿大名鼎鼎的gcc 來說,Linux下大多數(shù)的c/c++語言開發(fā)的程序都離不開它。那么,gcc又是用什么開發(fā)的呢?這是不是有點(diǎn)類似,先有雞還是先有蛋的問題。
其實(shí),現(xiàn)代的編譯器都有自舉的功能,就是說可以拿上一代成熟的編譯器,開發(fā)新一代的編譯器。新版的gcc就是拿上一版的自己開發(fā)而成。
因此,依此類推,拿一套功能完善的編程軟件是可以編寫它本身的。
如果你說的編程軟件是指編譯器或解釋器的話,那是可以的。舉個例子,go語言最早是通過C語言實(shí)現(xiàn)的,然后之后的版本就是通過go語言實(shí)現(xiàn),也就是所謂的自舉。
所以理論上你完全可以通過一門語言去設(shè)計一門新的語言,然后寫出它的編譯器或解釋器。當(dāng)這個新語言所有的規(guī)定都和原語言一樣,你就可以認(rèn)為它實(shí)現(xiàn)了自己。
可以,gcc編譯器就是拿老一代開發(fā)新一代的。
插件方式,支持編程軟件擴(kuò)展
可以!
好比工廠機(jī)械手可以制造出機(jī)械手一樣
