語言和文法的基本概念

來源:互聯網
上載者:User

標籤:nbsp   aaa   組成   ...   集合   size   正則   產生   ora   

  在讀正則語言之前先明確一下語言、文法的基本概念。

一、基本概念

  1. 語言

首先給出一個有限的、非空的符號集合Σ,成為字母表

字母表中任一字元組成的字串就是一個句子,比如aaa,bbb,即Σ*的元素。

這些字串構成的集合就是一個語言,比如{aaa,bbb},即Σ*的子集。

舉一個例子:

Σ={a,b},則Σ*={ε,a,b,aa,ab,bb,aaa,bbb,...},裡面的每一個元素都是一個句子,集合{a,aa,bbb}就是Σ上的一個語言,因為它有有限個句子,所以稱之為有限語言。集合L={a?b?:n>=0}也是Σ上的語言,這個語言是無限的。

  2. 文法

文法G是一個四元組G=(V,T,S,P)

V:變數   T:終結符  S:開始符,S∈T  P:產生式

通過產生式可以知道文法是如何將一個字串轉化成另一個字串的,形如X—>Y。

  • 那文法是用來幹什麼的?

  文法用來產生語言的。

比方說我們自然語言中句型有:

S+V

S+V+O

eg:He works very hard.       He took your bag.

裡面的S,V,O就相當於變數V,而句子中的字串類似he,very就相當於終結符,P產生式就相當於句型。

V={S,V,O,...}

T={He,works,very,hard,...}

S=sentence

P={

sentence—>SVO

S—>He

V—>works

O—>hard

}

即,設G=(V,T,S,P)是一個文法,那麼集合L(G)={w∈T*:S*=>w}就是該文法G產生的語言,S通過多步推導得到w,推導過程中變數和終結符構成的字串為推導的句型,例如S—>aSb,其實這個推導過程是一個遞迴的過程,為了最終得到一個句子,需要S—>ε作為終止條件,最終推出a?b?的句型。

  •  當幾個產生式有相同的左部時,則它們的右部可以寫在同一個產生式的右邊,中間用|隔開,例如S—>aSb|ε。

語言和文法的基本概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.