日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

使用計算機就要給計算機輸入指令,早期給計算機的指令是寫在穿孔紙帶上的,如圖1所示。

計算機基本原理—語言與算法
 
 
 

圖1 早期的計算機語言

紙帶勻速通過一個光源,光線透過紙帶的穿孔后被接收器接收,產生一個電壓,遇到紙帶無孔時,光線就被紙帶遮蔽,紙帶后面的接收器就不產生電壓,這樣就將“100100”形式的二進制信號輸給了計算機。這個發明源于圖靈1936年的設想——圖靈機(Turing machine)。在計算機發明者名單中,圖靈是名氣最大的。由美國計算機協會(ACM)于1966年設立的圖靈獎(Turing Award),至今仍然是計算機科學領域的最高榮譽。

計算機基本原理—語言與算法
 
 
 

盡管計算機的輸入設備從穿孔紙帶一路發展到硬盤、鍵盤和鼠標,但其基本原理還是給計算機輸入“100100”形式的機器碼。人們為了方便與計算機交流,發明了計算機操作系統。其實它就是預裝在計算機存儲器里面的一套機器碼,計算機一旦通電啟動,這套機器碼首先被讀入計算機內存并被執行,它使得計算機CPU、輸入輸出設備、存儲器等等初始化,提供各類硬件功能接口供應用程序調用。人們借助計算機操作系統和預裝的一些“工具軟件”,用計算機完成諸如寫文件、繪圖表、做計算等簡單工作。如果要使計算機完成千差萬別的復雜工作,就必須給計算機輸入專門的指令——計算機程序。由于計算機只能認識機器碼,而機器碼又實在太難學了,因此科學家就發明了“計算機語言”,人們可以借助這種語言編寫計算機讀得懂的程序。

最接近機器碼的計算機語言是匯編語言(Assembly language)。在匯編語言中,用簡單英文單詞構成的助記符(Mnemonics)代替機器碼,再加上地址符號(Symbol),組成如圖2所示的計算機程序。

計算機基本原理—語言與算法
 
 
 

圖2 一個匯編語言計算機程序片段

圖中左邊綠色字是程序的注釋,它們不參加運行。

我們再舉一個計算機程序的例子:完成任意三個數從小到大重新排列。比如,任意給計算機輸入三個數:65.73、21.01、1.022,要求計算機將它們從小到大排列成:1.022、21.01、65.73。首先,我們必須設計一個算法如下:

第一步

比較第一個數與第二個數的大小。假如第一個數大于第二個數,則將它們調換順序,否則就不調換順序。現在第一個數是65.73,它大于第二個數21.01,因此將它們調換順序。現在三個數排列為:21.01、65.73、1.022;

第二步

再比較第第二個數與第三個數的大小。假如第二個數大于第三個數,則將它們調換順序,否則就不調換順序。現在第二個數是65.73,它大于第三個數1.022,因此將它們調換順序。現在三個數排列為:21.01、1.022、65.73;

第三步

再比較第一個數與第二個數的大小。假如第一個數大于第二個數,則將它們調換順序,否則就不調換順序。現在第一個數是21.01,它大于第二個數1.022,因此將它們調換順序。現在三個數排列為:1.022、21.01、65.73,完成任務。

圖3是一個用Fortran語言編寫的計算機程序,它將輸入計算機的任意三個數從小到大排序。

計算機基本原理—語言與算法
 
 
 

圖3 一個完整的Fortran語言計算機程序

同樣,圖中左邊綠色字是程序的注釋,它們不參加運行。將這個計算機程序輸入計算機后運行,只要在計算機屏幕上用鍵盤任意敲入3個數,計算機立即就會將此三個數從小到大重新排列,并且顯示在計算機屏幕上。當然,三個數字的重新排序非常容易,人們一目了然就可以完成。如果經常要將成千上萬的數字重新排序,就是一件困難的工作。這時編一個計算機程序,就可以比人工既快又省事。這個例子也說明,計算機必須依賴人類提供的算法完成任務,或者說人類完成創造性工作,計算機幫助人類完成耗時費力的工作,這基本上是長久以來的傳統觀點。但是,未來計算機會發展出與人類并駕齊驅甚至超越人類的智能嗎?那時的計算機能夠獨立完成創造性工作嗎?

咱們再回到計算機語言問題。比較圖2與圖3,讀者馬上會覺得:前者猶如天書一般根本無法讀懂,而后者的每一行都與英語近似。人們通常將前者稱為計算機底層語言,將與人類語言近似的計算機語言稱為計算機高級語言。高級語言不僅僅是與人類語言近似,而且在不同CPU之間可以通用。反之,底層語言所編寫的計算機程序隨著CPU硬件的改變必須改變。無論是計算機底層語言還是高級語言,它們都要靠被稱為“編譯器”的計算機程序,將其“翻譯”成計算機讀得懂得機器碼。

計算機高級語言除了上面舉例的Fortran語言以外,更加常見的是C、C++、JAVA、JavaScript 、Python等等。Fortran語言源自于“公式翻譯”(英語:Formula Translation)的縮寫, 最早是1954年約翰.貝克斯在紐約發布的。Fortran語言經過不斷的改進,它至今仍然應用于科學和工程計算領域。C、C++、Java、Javascript是軟件程序員(外號“碼農”)的看家本領。 Python語言是一種比C、C++、Java、Javascript更加高級的、更加接近人類語言的計算機語言,代碼極其簡潔,編程效率極高,用C語言編寫的上千行的程序,用Python語言編寫往往只有短短幾十行。Python有大量免費、開源程序,在科學計算領域被大量使用,從統計、排序到機器學習、人工智能等等,幾乎是應有盡有,還可以直接調用C、C++、Java程序。

現在懂得計算機底層語言的人實在是太少了,除了計算機科學專業的學生,一般都不學習它們了。其實,不懂得計算機底層語言者,其應用計算機高級語言的水平就不會太高。另外,用底層語言編寫的計算機程序運行效率遠比高級語言高得多,并且需要計算機內存資源也要小很多,因此,在實時性要求高的應用中,都是用底層語言編寫程序的。可以說,在實時控制領域,采用Python語言編寫程序的工程師,一般都是水平較低者,真正的高手是用底層語言的,這就好比做高水平科學實驗,要自己制作實驗設備一樣的道理。

盡管目前有的計算機高級語言(比如python)已經很接近人類語言了。但是,要讓計算機進一步讀懂摻雜了許多隨機因素的人類自然語言,容忍自然語言的模糊性,目前還做不到。隨著計算機語言的發展,未來會出現一種與人類的自然語言完全相同的計算機高級語言嗎?

本文上面提出的兩個問題,正是人工智能面臨的大問題,現在給出這些問題答案為時尚早。

分享到:
標簽:算法
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定