日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

像設(shè)計電路一樣編程(2)電路設(shè)計與軟件編程的區(qū)別

 guitarhua 2014-08-11

像設(shè)計電路一樣編程(2) 電路設(shè)計與軟件編程的區(qū)別

版權(quán)聲明:《像設(shè)計電路一樣編程》系列博客文章由陳明計原創(chuàng),版權(quán)完全屬于陳明計,轉(zhuǎn)載請務(wù)必完全轉(zhuǎn)載。歡迎訪問陳明計的博客:http://blog.sina.com.cn/cmj2。


高級編程語言可分為命令式語言(Imperative programming language)和聲明式語言(declarative programming language),兩者的編程方法有很大的不同。聲明式語言又可分為函數(shù)式語言、邏輯式語言等;而命令式語言可分為馮.諾伊曼式編程語言、腳本編程語言、面向?qū)ο缶幊陶Z言等。目前,軟件編程中命令式語言主導(dǎo)地位,這里將以此為例說明軟件編程與電路設(shè)計的區(qū)別。

電路設(shè)計與軟件編程的區(qū)別表面上看只是一個圖形形式,一個是文字形式;但實質(zhì)上有很大的不同。

迄今為止,凡是能夠?qū)嵱玫碾娮佑嬎銠C都是按照馮·諾依曼提出的結(jié)構(gòu)體系和工作原理來設(shè)計制造的,簡而言之,計算機就是存儲程序并按地址順序執(zhí)行的。其要點如下:

*         計算機是按照事先編好的程序執(zhí)行的;

    *         計算機的程序被事先輸入到存儲器中,程序運算的結(jié)果也被存放在存儲器中;

*         計算機能自動連續(xù)地完成程序;

    *         程序運行的所需要的信息和結(jié)果可以通輸入/輸出設(shè)備完成;

計算機由運算器、控制器、存儲器、輸入設(shè)備與輸出設(shè)備所組成。其中最廣泛應(yīng)用編程語言的C語言(屬于馮.諾伊曼式編程語言)充分表達計算機結(jié)構(gòu)原理。

因此,計算機編程實際上是“按步驟解決問題”:把解決問題的方法分成若干的大步驟,每個大步驟又分為若干個小步驟,一直分下去,直到分不可分;然后計算機就按照步驟來一絲不茍的執(zhí)行。這種“按步驟解決問題”的思路很利于執(zhí)行,但從步驟中分析解決問題的思路就非常困難了;進而分析程序是否完全符合解決問題的思路也是很困難的。很簡單的例子,網(wǎng)上有大量的教程,很多也是step by step的,但很多人按照教程做,依然無法解決問題。

與計算機編程不同,電路是連續(xù)工作的,沒有“步驟”一說。數(shù)據(jù)(電流或電壓)持續(xù)的流入一個器件,經(jīng)過一個器件加工后,又流出這個器件。例如放大器,會只要通電,就會持續(xù)不斷的對輸入信號放大,在工作范圍內(nèi),輸出信號一直與輸入信號成正比或反比。數(shù)字電路同樣如此,例如二輸入與門,其輸出信號時時刻刻是兩個輸入信號的與。即使有時鐘參與的時序數(shù)字電路,可認(rèn)為時鐘也是一個輸入信號,同樣脫離不了上述規(guī)律。即使不把時鐘當(dāng)作輸入信號,時序電路也沒有“步驟”,只是信號處理不再是連續(xù)的,而是離散的而已。

綜上所述,計算機編程關(guān)注的是解決問題的步驟。如果步驟太多(程序規(guī)模較大),則編程時很容膝疏忽某些步驟,造成程序隱含的BUG。而電路設(shè)計關(guān)注的是數(shù)據(jù)流動,每個器件都對數(shù)據(jù)進行特定的處理,數(shù)據(jù)按照指定的方式路徑流過這些器件后,自然就解決了要解決的問題。因此,電路的行為比計算機編程更容易預(yù)測,更容易理解,也就更不容易出錯。計算機領(lǐng)域中,硬件發(fā)展的速度遠(yuǎn)高于軟件發(fā)展的速度就很好的證明了這一點。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多