日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

以图灵的方式编程

發(fā)布時間:2025/6/15 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 以图灵的方式编程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
程序的設(shè)計模式往往與計算機的體系結(jié)構(gòu)有很大關(guān)系,以函數(shù)作為協(xié)議的主要表現(xiàn)方式,語言具有簡單嚴格的語法結(jié)構(gòu),應該與馮·諾依曼體系,或者更準確的說與代碼線性循序執(zhí)行的方式不無關(guān)系。

  馮·諾依曼體系是圖靈機的實現(xiàn),但從實現(xiàn)之初,兩者便無多大交集,圖靈機具有理想性質(zhì),是不考慮控制和執(zhí)行成本的,而馮·諾依曼機器,最初的程序設(shè)計對計算成本是非常關(guān)注的,而且按照圖靈機思想設(shè)計的程序,轉(zhuǎn)換成通常的程序,會比較復雜而且顯得不直觀。正如lex與bison生成的程序代碼,我們只會認為程序是對的,而很少會去閱讀。

  以控制機器的思想設(shè)計程序,是圖靈機程序設(shè)計的主要方式,而對于計算細節(jié)(主要是比較運算)和控制細節(jié)(主要是條件轉(zhuǎn)移)的實現(xiàn)則基本不予關(guān)注。以機器的思想設(shè)計程序,以機器的思想而不是以庫函數(shù)的方式構(gòu)建系統(tǒng)的結(jié)構(gòu),其實在編譯、業(yè)務邏輯表示、流程等很多方面都可以讓問題得到簡化。而用于執(zhí)行的程序本身,則如數(shù)據(jù)一樣,可以動態(tài)動態(tài)組裝、動態(tài)執(zhí)行。

  在本質(zhì)上馮·諾依曼體系與圖靈機并無大的區(qū)別,但在形式上卻有比較大的區(qū)別,可以這樣說,圖靈機側(cè)重規(guī)則的描述,而馮·諾依曼體系編程則側(cè)重于規(guī)則的執(zhí)行,在計算機的計算能力受限制的過去,我們關(guān)注于執(zhí)行,關(guān)注于算法。而今我們是否是更應關(guān)注于我們所要解決的問題,及其這些問題的上下文,以及解決這些問題相關(guān)知識的描述。

  現(xiàn)在我們試著以圖靈機的方式書寫一個程序,掀開面紗,看看她的真容:

/*因為真實的圖靈機過于原始,為方便編程,在程序中做了以下約定:1、圖靈機有輸入的條帶,有輸出的條帶。2、非特別指定,匹配動作只在輸入條帶上執(zhí)行。3、非特別指定,打印只在輸出條帶上執(zhí)行。4、預定義匹配: =,>,< .。 =,>,< 操作語義,與序列比較的含義一致。. 不匹配條件。 5、預定義狀態(tài):s0, e0 ,f0s0 表示開始狀態(tài)。e0 表示正常結(jié)束狀態(tài)。如未有跟隨的動作,則自動在輸出條帶上打印字符 '1'。f0 表示非正常結(jié)束狀態(tài)。如未有跟隨的動作,則自動在輸出條帶上打印字符 '0'。6、預定義動作: -> <- #-> 表示條帶指針右移一格。<- 表示條帶指針左移一格。# 表示把輸入條帶當前指定的內(nèi)容,打印到輸出條帶上,同時輸出條帶的指針右移。? 對整個輸出條帶的數(shù)據(jù),做相應的轉(zhuǎn)換。7、句型:定義: <標志符> <參數(shù)> <參數(shù)> ... 句子: <當前狀態(tài)> <匹配表達式> <下一狀態(tài)> <動作> <動作> ...--: 函數(shù)用 '--' 間隔 *///>=操作 !>= x ------------- s0 x e0 s0 >x e0 --------------//<=操作 !<= x -------------------------- s0 x e0 s1 <x e0 -------------------------//范圍操作 !.. x y --------------------------- s0 x e0 s0 y e0 s0 >x n1 n1 <y e0 ---------------------------//字母 !letter -------------------------- s0 'a'..'z' e0 s0 'A'..'Z' e0 --------------------------//數(shù)字 !digital -------------------------- s0 '0'..'9' e0 --------------------------//字母數(shù)字 !letterdigital ---------------------------- s0 letter e0 s0 digital e0 ----------------------------//標志符 !indent ---------------------------- s0 letter n1 -> # n1 letterdigital n1 -> # n1 . e0 <- ?string ----------------------------//數(shù)字 !number ---------------------------- s0 digital n1 -> # n1 digital n1 -> # n1 '.' n2 -> # n1 . e0 <- ?int n2 digital n2 -> # n2 'e' n3 -> # n2 'E' n3 -> # n3 digital n3 -> # n2 . e0 <- ?double n3 . e0 <- ?double ----------------------------

  

  上面只是一個偽程序,但可以看出,這樣的編程方式比較適合于以規(guī)則為主體的各種應用,比如編譯、業(yè)務規(guī)則、業(yè)務流程等方面,同時作為自動機的控制輸入也是比較合適的。

總結(jié)

以上是生活随笔為你收集整理的以图灵的方式编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。