0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

計算機的基本原理是什么?語言與算法的資料和歷史詳細講解

Wildesbeast ? 來源:人工智能 ? 作者:光電科學史 ? 2020-01-25 13:01 ? 次閱讀

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

圖1 早期的計算機語言

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

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

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

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

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

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

第一步

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

第二步

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

第三步

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

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

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

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

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

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接收器
    +關注

    關注

    14

    文章

    2472

    瀏覽量

    71920
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211799
  • 計算機
    +關注

    關注

    19

    文章

    7494

    瀏覽量

    87981
收藏 人收藏

    評論

    相關推薦

    計算機組成原理與單片機原理

    組成原理,計算機組成原理是介紹計算機基本原理,不涉及具體機型,比如說intel 8086,不以具體機型進行介紹與講解。而微機原理與接口技術這門課程,是以8086為
    發(fā)表于 12-30 10:25

    C語言教程(算法、數(shù)組、函數(shù)、指針)全方位講解PPT合集

    。做任何事情都要有一定的步驟?! ?b class='flag-5'>計算機算法--計算機能夠執(zhí)行的算法。  計算機算法的分類:  
    發(fā)表于 10-16 14:12

    視頻增強算法基本原理是什么?

    視頻增強算法基本原理是什么?單尺度算法的原理是什么?視頻增強能解決的實際問題及應用領域
    發(fā)表于 06-03 07:14

    微型計算機的用途

    接口技術實驗大綱.《匯編語言與接口技術》實驗指導河南大學計算機與信息工程學院概 述學習微機接口技術,實踐是非常重要的環(huán)節(jié)。我們學習微型計算機不僅要掌握其基本原理、基本概念、基本方法,更
    發(fā)表于 09-10 07:32

    什么是計算機

    我們人類無時無刻不想著,自己能夠創(chuàng)造一個世界。什么是計算機?計算社會我們人類已經(jīng)步入了計算社會??v覽人類社會的計算歷史,從“結繩記事”中的繩
    發(fā)表于 09-10 08:41

    熟悉計算機軟件定義和分類

    基本原理,了解集成電路,掌握信息在計算機中表示。2.熟悉計算機軟件定義和分類,掌握操作系統(tǒng)基本概念,熟悉程序設計語言語法基礎,掌握幾種常見數(shù)據(jù)結構及基本操作,掌握軟件工程基礎。3.掌
    發(fā)表于 09-13 07:45

    計算機視覺及其在焊接中的應用

    簡要闡述了計算機視覺的基本原理、系統(tǒng)結構和計算機視覺的基本處理方法,并著重講解了在焊接自動化領域的應用情況。關鍵詞:計算機視覺.焊縫跟蹤.視
    發(fā)表于 07-18 10:19 ?9次下載

    什么是計算機算法?

    什么是計算機算法?要使計算機工作,您就必須編寫計算機程序。要編寫計算機程序,您就必須一步步地告訴計算機
    發(fā)表于 08-03 08:50 ?3107次閱讀

    基于邏輯語言計算機軟件設計(JAVA語言

    研究基于邏輯語言計算機軟件開放設計問題。應用對比法分析在計算機軟件開放設計之中,當前應用不同計算機邏輯語言的優(yōu)勢,并可應用最優(yōu)的
    發(fā)表于 11-01 15:19 ?0次下載
    基于邏輯<b class='flag-5'>語言</b><b class='flag-5'>計算機</b>軟件設計(JAVA<b class='flag-5'>語言</b>)

    計算機語言的分類

    本視頻主要詳細介紹了計算機語言的分類,分別有機器語言、匯編語言、高級語言等。
    的頭像 發(fā)表于 12-27 16:04 ?2.6w次閱讀
    <b class='flag-5'>計算機語言</b>的分類

    計算機圖論算法詳細資料說明

    本文檔的主要內容詳細介紹的是計算機圖論算法詳細資料說明 圖論算法計算機科學中扮演著很重要的
    發(fā)表于 02-14 08:00 ?7次下載
    <b class='flag-5'>計算機</b>圖論<b class='flag-5'>算法</b>的<b class='flag-5'>詳細資料</b>說明

    計算機的機器語言和匯編語言與高級語言詳細資料介紹

    計算機語言通常是一個能完整、準確和規(guī)則地表達人們的意圖,并用以指揮或控制計算機工作的“符號系統(tǒng)”。計算機語言通常分為三類:即機器語言、匯編語言
    的頭像 發(fā)表于 02-06 16:11 ?5838次閱讀

    一圖詳細講解計算機預備知識

    一圖詳細講解計算機預備知識
    發(fā)表于 04-19 09:14 ?2次下載

    計算機通信的基本原理

     計算機通信的基本原理是將電信號轉換為邏輯信號,其轉換方式是將高低電平表示為二進制數(shù)中的1和0, 再通過不同的二進制序列來表示所有的信息。
    發(fā)表于 05-09 16:41 ?4291次閱讀

    計算機視覺的十大算法

    隨著科技的不斷發(fā)展,計算機視覺領域也取得了長足的進步。本文將介紹計算機視覺領域的十大算法,包括它們的基本原理、應用場景和優(yōu)缺點。這些算法在圖
    的頭像 發(fā)表于 02-19 13:26 ?1242次閱讀
    <b class='flag-5'>計算機</b>視覺的十大<b class='flag-5'>算法</b>