一種編程的思維嗎?只不過(guò)是指令對(duì)應(yīng)硬件?
2021-10-21
語(yǔ)
計(jì)算機(jī)語(yǔ)言是指用于人與計(jì)算機(jī)之間交流的語(yǔ)言,即通常所說(shuō)的編程語(yǔ)言
編程
指令的概念很早就形成了,其實(shí)指令本身就是一種編程
指令代替機(jī)電/機(jī)械類型中的一組邏輯電路或計(jì)算單元
您只需要一條指令即可操作整個(gè)模塊
這不也是一種編程思維嗎編程語(yǔ)言發(fā)展史,只是硬件對(duì)應(yīng)的指令
隨著指令在現(xiàn)代計(jì)算機(jī)中的應(yīng)用,計(jì)算機(jī)程序得到了迅速的發(fā)展
因?yàn)橐坏┠阒烙?jì)算機(jī)可以執(zhí)行什么指令,它實(shí)際上就是什么功能和能力
您可以按照一定的邏輯順序重新排列和組合這些指令
這是廣義上的計(jì)算機(jī)程序
計(jì)算機(jī)語(yǔ)言的發(fā)展有兩個(gè)階段
從面向機(jī)器到無(wú)機(jī)器的轉(zhuǎn)變
不同方向的發(fā)展,解決不同場(chǎng)景的不同業(yè)務(wù)邏輯問(wèn)題
機(jī)器語(yǔ)言
為了使用計(jì)算機(jī)計(jì)算,必須將程序指令輸入計(jì)算機(jī)
最原始的時(shí)候是開(kāi)關(guān)和紙帶,相當(dāng)于直接用二進(jìn)制來(lái)工作,是手動(dòng)操作
即使用機(jī)器指令01組合的字符串
那是機(jī)器語(yǔ)言,它實(shí)際上是純計(jì)算機(jī)語(yǔ)言
匯編語(yǔ)言
就像母語(yǔ)是普通話的人無(wú)法自然地與母語(yǔ)是英語(yǔ)的人交流一樣
要交流,必須有人學(xué)習(xí)外語(yǔ)
而想學(xué)計(jì)算機(jī)語(yǔ)言,一門外語(yǔ),遠(yuǎn)比學(xué)英語(yǔ)要復(fù)雜和晦澀。
因?yàn)闄C(jī)器語(yǔ)言01字符串完全等同于人類認(rèn)知的亂碼
難以閱讀、難以編輯、難以記憶且容易出錯(cuò)
你永遠(yuǎn)不知道這意味著什么
隨后,用與代碼指令實(shí)際含義相近的英文縮寫(xiě)、字母、數(shù)字等符號(hào)代替指令代碼的描述。
有匯編語(yǔ)言,它只是機(jī)器語(yǔ)言的一種助記語(yǔ)言
不同的機(jī)器有不同的匯編語(yǔ)言
匯編程序需要翻譯成計(jì)算機(jī)可以識(shí)別的二進(jìn)制機(jī)器語(yǔ)言
本質(zhì)還是面向機(jī)器的低級(jí)語(yǔ)言
機(jī)器語(yǔ)言和匯編語(yǔ)言都是面向硬件的具體操作,語(yǔ)言過(guò)于依賴機(jī)器,所以被稱為低級(jí)語(yǔ)言
高級(jí)語(yǔ)言
為了能夠更通用地解決問(wèn)題,而不是專注于硬件本身,高級(jí)語(yǔ)言應(yīng)運(yùn)而生
高級(jí)語(yǔ)言不需要關(guān)注機(jī)器的指令,使用接近人類習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言符號(hào)。
能夠?qū)W⒂趩?wèn)題本身的業(yè)務(wù)邏輯
顯然,高級(jí)語(yǔ)言不能直接在機(jī)器上運(yùn)行,需要將翻譯程序轉(zhuǎn)換成機(jī)器可以執(zhí)行的目標(biāo)代碼程序。
高級(jí)語(yǔ)言雖然不涉及寄存器之類的東西,但是你不需要了解硬件
但這是因?yàn)楦呒?jí)語(yǔ)言隱藏了它們,并不是說(shuō)這些東西不存在不重要,所有語(yǔ)言都逃不過(guò)這個(gè)障礙
總是要編程機(jī)器語(yǔ)言
也是因?yàn)殡[藏的東西太多,好像隔了好幾層玻璃
雖然你可以看到它,但自然銳度會(huì)降低
直接后果就是編譯出來(lái)的文件變大了,執(zhí)行速度會(huì)變慢(相比匯編)
網(wǎng)上找個(gè)統(tǒng)計(jì),可能不會(huì)編程語(yǔ)言發(fā)展史,作為理解
1951 –
1952 –
1954 – IPL(LISP 語(yǔ)言的祖先)
1955 – FLOW-(語(yǔ)言的祖先)
1957 –(第一種編譯語(yǔ)言)
1957 – (語(yǔ)言的祖先)
1958 年 – LISP
1958 – 58
1959 – FACT(語(yǔ)言的祖先)
1959 –
1959 年 - 角色扮演游戲
1962 年 - APL
1962 –
1962 –
1963 – CPL(C 語(yǔ)言之祖)
1964 –
1964 年 – PL/I
1966 年 – 喬斯
1967 – BCPL(C 語(yǔ)言的祖先)
1968 年 – 標(biāo)志
1969-B(C語(yǔ)言的祖先)
1970 –
1970 –
1972 年 – C
1972 –
1972 –
1973 年 – ML
1975 –
1978-SQL
1980-C++(現(xiàn)有C語(yǔ)言,1983年7月更名)
1983 年 – 艾達(dá)
1984 年 - Lisp
1984 –
1985 –
1986 – -C
1986 年 –
1987 年——Perl
1988 年 – Tcl
1988 年 –
1989 年 - 佛羅里達(dá)州
1990 –
1991 –
1991 –
1993 年 – 紅寶石
1993 年 – 盧阿
1994 – CLOS(ANSI Lisp 的一部分)
1995-Java
1995 – ()
1995 –
1995-PHP
1996 –
1997 –
1999 – D
2000 –
2001 – C#
2001 年 – .NET
2002 – F#
2003 –
2003 –
2007 –
2009 年 – 去
2011 – 飛鏢