簡體   English   中英

了解CFG的基礎

[英]understanding basics of CFG

剛剛開始撰寫Sipser的書中有關CFL的章節,已經不了解其基礎知識。

讓這成為某種語言的語法:

S -> A0A 
A -> 00A | 11A | 10A | 01A | e

我對這個A0A部分感到非常困惑。 這是否意味着從0開始的左側應始終與右側相同。 這是否意味着00011或000不是這種語言的?

任何S是您對任何A都有的任何選項,其后是單個文字0 ,然后是A另一個選項。 每個A是獨立的。

字符串00011是該語言的語言,因為您可以選擇兩個A ,例如,第一個為00A ,第二個為11A 如果遞歸地為兩個“剩余” A s選擇空字符串( e ),則在將所有內容連接在一起時,最終將得到字符串00011

您可以執行類似的操作來獲取字符串000

A轉換為空,或者轉換為兩個二進制數字,然后轉換為A。這意味着A轉換為任何偶數個二進制數字序列。

S轉換為A,然后轉換為0,然后轉換為A。這意味着S轉換為二進制數的偶數,然后轉換為0,然后轉換為偶數。 也就是說,S是中間為0的任何奇數個二進制數字序列。

這是否意味着從0開始的左側應始終與右側相同。

沒有為什么? 兩個不同的A可以轉換為不同的序列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM