能否通過語義直接生成直譯器?

時間 2021-05-31 10:50:03

1樓:

可以。因為語義就是直譯器,直譯器就是語義。

從Operational Semantics角度來理解的話,直譯器本身就是一種描述了程式如何執行(和操作)的Big-Step Operational Semantics;如果從更加「操作」的角度來理解的話,Abstract Machine Semantics(比如CEK Machine)作為一種Structural Operational Semantics的Linearization把程式語言的語義model成機器狀態的轉移,本身既是語義也是可執行的直譯器。

如果把語義理解為語言設計者定義的一系列relation,那麼執行語義(直譯器)不過就是一種pattern matching,它所做的事情就是match到當前的狀態然後根據relation來轉移到下乙個狀態,如果你把這個事情用程式寫出來就叫做直譯器。

一旦我們可以把語義用形式化的語言描述出來,比如說語義S描述語言L,那麼也可以有乙個(元)直譯器來解釋語義S,解釋的結果是乙個L的直譯器。

可以用來形式化描述語義的語言有很多,比如PLT Redex是一種用來描述Reduction Semantics以及Evaluation Context的DSL,當然也可以直接解釋執行。從官網上搬乙個簡單的例子:

(define

red(

reduction-relationλv(

-->(in-holeE(

+number_1

number_2))(

in-holeE,

(+(term

number_1)(

term

number_2

)))"+")(

-->(in-holeE(

if00

e_1e_2))(

in-hole

Ee_1

)"if0t")(

-->(in-holeE(

if0number_1

e_1e_2))(

in-hole

Ee_2

)"if0f"

(side-condition

(not(=

0(term

number_1

)))))

(-->

(in-holeE((

λ(x..._1)e

)v..._1))(

in-holeE(

subst-n(x

v)...e

))"βv")))

2樓:frog酋長

最大的問題是,很多所謂的「語義」 沒法用無歧義的形式化方法描述,因為表達意思的主體自己可能都不完全理解他想表達的「語義」

可以通過直接減少hidden layer hidden unit而不是加正則化來解決神經網路過擬合嗎?

理查德帕克 可以是可以,但是是以犧牲模型的能力為代價,這個應該還是bias variance trade off的問題,如果資料簡單 維度低或者分布比較簡單 資料量小的情況下理應使用較少的隱藏層和較少的啟用單元,當然你也可以選擇深度網路,但是這樣你花在正則化上的代價就會更大,如果是複雜的資料,首先應...

Unity Shader 能否直接傳入視窗螢幕作為頂點結構

核能琉珠 早上實現了一下,quad位置座標和相機位置座標一致的情況下,在vertex shader中將模型頂點不經轉換 MVP轉換 直接賦值到輸出,即可實現在螢幕中顯示,但是很顯然quad的uv和頂點範圍不是從0 1,所以需要一定的轉換。Quad頂點對映到相機空間的實現 v.vertex.x 2 v...

導遊證口試能否通過?

樹Qing 好好準備肯定是沒問題的,口試分人機,人人 考前看好自己屬於那種,有練習盤的跟著練習盤練習,沒有練習盤的把更種流程提前了解,好多人因為不熟悉流程而不合格,導遊詞一定要提前背,問題也要提前背,知識量不比筆試少,但也還可以,只要好好學好好背,合格是一定的 豐風很剛 可能每個地方不一樣 我也是前...