在短語結構文法的基礎上加入每個短語和整個句子語義資訊所構成的文法。1968年D.E.克努特對上下文無關語言的語義進行瞭形式說明。在對一個由上下文無關文法產生的句子進行分析的過程中(見句法分析),為每一個產生相應短語的非終止符確定一個與該短語的語義對應的屬性。屬性分為“繼承的”與“綜合的”兩種,繼承屬性的意義來自一個短語的上下文,而綜合屬性則反映短語內所建立起來的那些關係。整個一條鏈的意義是由把句法分析過程中所用的產生式的屬性加以聯繫的規則所確定的。屬性文法法在給出句法規則的同時,還給出相應的語義規則。語義規則能簡化句法規則。例如描述一組不同邊長的三角形集合

的文法是一個上下文敏感文法,它的產生式規則是

其中S是起始符;N={S,B,A}是非終止符集;Σ={a,b,c}是圖中有向線段基元的集合:

有向線段基元

  如果引入基元長度的屬性LaLbLc,並令Cat(ɑ,b)表示ab之間的連接關系,Cat(ɑ,b)=(+,θ)表示把a的尾端與b的始端相連接,且ab線段間的夾角為θ,則上述三角形集合可用下列的句法規則和與每條句法規則相應的語義規則得到:

這是一個正則文法,它比上述的上下文敏感文法要簡單得多。屬性文法既考慮模式的結構關系,又具有處理噪聲和數值運算的能力,用它對模式進行描述和識別兼有決策理論方法和結構方法兩者的特點,所以在模式識別領域中受到廣泛的註意。它的一個重要性質是可以在句法部分和語義部分之間進行折衷,即如果使語義部分變得復雜一些,句法部分就可以變得簡單一些,反之亦然。實際上模式識別中的統計方法和句法方法可以看成是屬性文法的兩種極端情況。統計方法把整個模式作為一個特征向量即模式的屬性來研究,句法方法隻考慮文法而不討論語義。屬性文法把這兩者適當結合起來,就可以比較容易地解決某些模式識別問題。