(Translated by https://www.hiragana.jp/)
形式文法 - 维基百科,自由的百科全书 とべ转到内容ないよう

形式けいしき文法ぶんぽう

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
重定しげさだこう形式けいしき語法ごほう

ざい形式けいしき语言なか文法ぶんぽう(为了避免歧义,つねしょうさく形式けいしき文法ぶんぽう”)これ形式けいしき语言なかくしてきいち产生しき规则えいProduction (computer science)。这些规则描述りょう如何いかよう语言てき字母じぼひょう生成せいせい符合ふごう语法えいsyntax (programming languages)てき有效ゆうこうてきくし文法ぶんぽう描述くしてき含义,也不描述在任ざいにんなん上下じょうげ文中ぶんちゅう以用它们做什么——ただ描述它们てき形式けいしき

形式けいしき语言これ应用数学すうがくてきいち个分ささえ研究けんきゅう形式けいしき文法ぶんぽう语言てき学科がっか。它在理論りろん計算けいさん科學かがく论语げんがく形式けいしき语义がく数理すうり逻辑とう领域ゆう广泛てき应用。

形式けいしき文法ぶんぽう从一个“开始符号ふごうだし发的一套重写字符串的规则。よし此,文法ぶんぽう通常つうじょう认为语言生成せいせいしか而,它有时也以用さく识别”(计算つくえがくちゅうてきいち种函すうよう于确てい给定くしぞく于该语言,为语ほう错误)てきもと础。形式けいしき语言使用しよう另一个理论来描述识别器,也就自動じどう理論りろん动机论有一个有趣的结果,ぼう些形しき语言无法设计识别てき[1] 语法分析ぶんせきどおり过将いちだん话语(自然しぜん语言ちゅうてきいち个字くし分解ぶんかいなりいち组符ごう,并根すえ语言てき语法分析ぶんせきごといち个符ごうてき过程。だい多数たすう语言てき话语含义すえ其句ほう结构らい确定てき——这种做法しょう组合语义がくよし此,ざい语言ちゅう描述话语含义てきだい一步就是把它分解成若干部分,しかきさき观察它经过分析ぶんせききさきてき形式けいしきざい计算つくえ科学かがくちゅうしょう分析ぶんせきざいなま成文法せいぶんほうちゅうしょうふか层结构)。

にゅう门示れい

[编辑]

文法ぶんぽう主要しゅようよし一组变换字符串的规则组成。(如果它ただ包含ほうがん这些规则,么它就是いちはん图厄けいえいsemi-Thue system。)ようざい该语ごとちゅう生成せいせいくししゅさき需要じゅよういち个只包含ほうがんいち开始符号ふごうてきくししかきさき任意にんい顺序应用产生しき规则ちょくいた生成せいせいすんで包含ほうがんおこりはじめ符号ふごう也不包含ほうがん指定してい终结符号ふごうてきくし。产生しき规则どおり过把くしちゅうだい一次出现产生式规则左边的地方,がえ换成产生しき规则てきみぎ边,らい作用さよう于这个字くしてきまいり见理论图灵つくえてき运算)。よし文法ぶんぽう产生てき语言包含ほうがんのうよう这种方式ほうしき产生てき所有しょゆう不同ふどうてきくし。开始符号ふごうじょうてきにんなん特定とくてい产生しき规则序列じょれつ都会とかいざい语言ちゅう产生一个不同的字符串。如果产生どう一个字符串有多种不同的方式,这个文法ぶんぽう就是具有ぐゆう义性てき文法ぶんぽうりょう

れい如,かり设字ははひょうゆかり a b 组成,开始符号ふごう Sわが们有以下いか产生しき规则:

1.
2.

么我们从 S 开始,选择いち个规则。如果わが们选择规则1,わが们将获得くし aSb。如果わが们再选择规则1,わが们用 aSb がえSいたくし aaSbb。如果わが们现ざい选择规则2,わが们将 S がえ换为 ba 并获とくくし aababbしかきさき完成かんせいりょうわが们可以用符号ふごうはた这一系列选择写得更简短:。这种文法ぶんぽうてき语言就是无限しゅう ,其中 これ じゅう つぎ 表示ひょうじ使用しよう规则1てき次数じすう)。

形式けいしきてい

[编辑]

文法ぶんぽうてき语法

[编辑]

20せい纪50年代ねんだい诺姆·乔姆斯基くび提出ていしゅつりょう生成せいせい语法てき经典形式けいしき论,[2][3] 其中文法ぶんぽう G よし以下いか部分ぶぶん组成:

  • 有限ゆうげんてき终结符号ふごうしゅう Nあずか G 生成せいせいてきくし无交
  • 有限ゆうげんてき终结符号ふごうしゅう あずか N 无交
  • 有限ゆうげんてき产生しき规则しゅう Pまい个规则都为如形式けいしき
这里てき これかつ莱尼ほしごう 表示ひょうじ并集。也就说,まい个产せいしき规则从一个符号串映射到另一个符号串,并且产生しきひだり侧的くしちゅう必须いたりしょう包括ほうかついち个非终结符号ふごう。产生しきみぎ侧的くし如果ただゆういちそらくしてき话,也就说没ゆうにんなん符号ふごうてき话,它有一个特别的标记(通常つうじょうe あるもの )。
  • 开始符号ふごう ,也叫符号ふごう

文法ぶんぽうてき形式けいしきてい义为四元よつもと 。这种形式けいしき语法ざい文献ぶんけんちゅうつねしょうじゅううつしけいあるたん语结构文ほうえいphrase structure grammar[4][5]

关于形式けいしき文法ぶんぽうてきいち些数がく构造

[编辑]

文法ぶんぽうてき运算用字ようじくしてき关系てい义:

  • 设有文法ぶんぽう 内的ないてきくしてきげん关系 (读作“G经过直接ちょくせつ推导为”)てい义为:
  • 关系 (读作“G经0あるさら推导”)てい义为 てきはん传递闭包
  • がたゆび以由开始符号ふごう 经过有限ゆうげん推导いたてき てきいち个成员;也就がた てきいち个成员。包含ほうがん终结符号ふごうそく てきなり员)てきがたしょう[6]
  • てき语言,记为 てい义为从开はじめ符号ふごう 开始经过有限ゆうげん骤可以推导出てき所有しょゆう;也就集合しゅうごう

注意ちゅうい文法ぶんぽう 实际じょうはん图厄けいえいsemi-Thue system ,以完全かんぜんしょうどうてき方式ほうしきじゅう写字しゃじくしただ一的区别在于我们区分了特定的非终结符号,这些符号ふごう必须ざいじゅううつし规则中重なかしげうつし,并且ただ对从指定していてき开始符号ふごう いたぼっゆう终结符号ふごうてきくしてきじゅううつしかん兴趣。

れい

[编辑]

ざい这些れい子中こなか形式けいしき语言使用しよう集合しゅうごうけん構式符號ふごう描述。

こう虑文ほう ,其中 开始符号ふごう よし以下いか产生しき规则组成:

1.
2.
3.
4.

这个ぶん法定ほうてい义了语言 ,这里 表示ひょうじ n くし所得しょとくてきくしよし此,该语げんよし1个或さらてき きさきめん跟着しょうどう数量すうりょうてき 接着せっちゃくしょうどう数量すうりょうてき 组成てきくし集合しゅうごう

うちくしてき推导れい如下:

(标记 读作“くし P つう过产せいしき i 生成せいせい Q”,がえ换的くしようからだ标出。)

乔姆斯基谱系

[编辑]

1956ねん诺姆·乔姆斯基くびはた生成せいせい文法ぶんぽう形式けいしき时,[2] しょう它们ぶん为现ざいしょう乔姆斯基谱系てきよん种类がた。其中两种重要じゅうようてき文法ぶんぽう类型ぶん别是上下じょうげぶん无关文法ぶんぽう(2がたせい则文ほう(3がた)。以用这两种文ほう描述てき语言ぶん别称为上下じょうげぶん无关语言せい则语げんつきかん无限せい文法ぶんぽう(0がた,实际じょう无限せい文法ぶんぽう表示ひょうじにんなに图灵つくえ接受せつじゅてき语言)ようじゃくとくただし这两种受げんせいてき语法さい常用じょうよういん为它们的解析かいせき以高こう实现。[7] れい如,所有しょゆうせい规语げん以被有限ゆうげんじょう态机识别,对于上下じょうげぶん无关文法ぶんぽうてき有用ゆうようしゅうゆう一些著名的算法可以生成高效的LL剖析LR剖析,以识别文ほう生成せいせいてきしょう应语ごと

上下じょうげぶん无关文法ぶんぽう

[编辑]

上下じょうげぶん无关文法ぶんぽう要求ようきゅう产生しきひだり侧只のう包含ほうがんいち个符ごう,并且该符ごう为非终结符号ふごう。这个げんせい是非ぜひつね重要じゅうようてき所有しょゆうてき语言以由上下じょうげぶん无关てき语法生成せいせい些可以被しょう上下じょうげぶん无关语言

うえれいてい义的语言 并不一个上下文无关语言,并且这个以用上下じょうげぶん无关语言てき泵引严格证明,ただし (1个及以上いじょう きさきめん跟同样数量的りょうてき 一个上下文无关语言。よし为它以由文法ぶんぽう 为开はじめ符号ふごうてい义,ようれつ产生しき规则:

1.
2.

つうEarley算法さんぽうえいEarley's algorithm以在 时间(まいりだいO符号ふごうない识别上下じょうげぶん无关语言。也就说,对于ごと一种上下文无关的语言,以构けんいちだい以字くし为输にゅう并及时确ていくし为该语言なり员的つくえ,其中 くしてき长度。[8] 确定せい上下じょうげぶん无关语言えいDeterministic context-free languageざい线性时间ない识别てき上下じょうげぶん无关语言てきしゅう[9] ゆかり种算ほう针对这类语言ある它的しゅう

せい则文ほう

[编辑]

ざいせい则文ほうなかひだり侧仍しかただいち个非终结符号ふごうただしみぎ侧也受到げんせいみぎ侧可以是そらくし,也可以是单个终结符号ふごうあるものきさき跟非终结符号ふごうてき单个终结符号ふごうただし不能ふのう其他符号ふごう。(ゆう时会使用しようさら宽泛てきてい义:以允许更长的终结くしある单个终结くし,而不能ふのうゆう其他にんなん东西,从而使语言さらえき表示ひょうじどう时仍しかてい义同いち类语ごと。)

上面うわつらてい义的语言 一个正则语言,ただし下面かめん这个语言(一个或多个 きさきめん跟着一个或多个 ,这两个的数量すうりょう以不いち样)。它之所以ゆえん是正ぜせい则语ごといん为可以通过文ほう てい义,其中 为开はじめ符号ふごう,还有如下产生しき规则:

由正よしまさ则文ほう生成せいせいてき所有しょゆう语言以被有限ゆうげんじょう态机ざい 时间ない识别出来でき。虽然ざい实际应用ちゅうせい则文ほう通常つうじょう使用しようせい则表达式らい表示ひょうじただし实际应用ちゅう使用しようてき一些正则表达式并没有严格地生成正则语言,也因此没ゆうひょう现出线性识别性能せいのう

なま成文法せいぶんほうてき其他形式けいしき

[编辑]

语言がく计算つくえ科学かがく对乔姆斯もとてき形式けいしき语法てき原始げんし层次结构进行りょう许多扩展变化,通常つうじょう为了增强ぞうきょうひょう达能りょくあるもの为了使分析ぶんせきある解析かいせきさら容易よういいち些形しきてき文法ぶんぽう包括ほうかつ:

递归文法ぶんぽう

[编辑]

递归文法ぶんぽう包含ほうがん递归产生しき规则てき语法。れい如,如果存在そんざい一个非终结符 A以通过产せいしき规则生成せいせいいち个以 A 为最ひだり边符ごうてきくし上下じょうげぶん无关语言てき文法ぶんぽう就是ひだり遞歸てき[14]

分析ぶんせきがた文法ぶんぽう

[编辑]

つきかんゆう大量たいりょう关于语法分析ぶんせき算法さんぽうてき文献ぶんけんただし这些さん法大ほうだいかり设要分析ぶんせきてき语言最初さいしょどおり生成せいせいしき文法ぶんぽうらい描述てき,并且标是しょう生成せいせいしき文法ぶんぽう转换なり一个有效的语法分析器。严格说,生成せいせい文法ぶんぽう不能ふのう在任ざいにんなん方面ほうめんあずか解析かいせき语言てき算法さんぽう对应じょう,而且かく种算ほう对产せいしき规则てき形式けいしきゆう不同ふどうてききりせい,这些产生しき规则认为形式けいしき良好りょうこうてき

另一种方法是首先根据分析型文法将语言形式化,分析ぶんせきがた文法ぶんぽうのうさらちょく接地せっち对应于语げん分析ぶんせきてき结构语义。分析ぶんせきがた文法ぶんぽう体系たいけいてきれい包括ほうかつ

まいり

[编辑]

参考さんこう文献ぶんけん

[编辑]
  1. ^ Meduna, Alexander, Formal Languages and Computation: Models and Their Applications, CRC Press: 233, 2014 [2019-11-12], ISBN 9781466513457, (原始げんし内容ないようそん于2020-04-15) . ゆう关此ぬし题的さらしんいき,请参见不可ふか判定はんてい问题
  2. ^ 2.0 2.1 Chomsky, Noam. Three models for the description of language. IRE Transactions on Information Theory. Sep 1956, 2 (3): 113–124. doi:10.1109/TIT.1956.1056813. 
  3. ^ Chomsky, Noam. Syntactic Structures. The Hague: Mouton. 1957. 
  4. ^ Ginsburg, Seymour. Algebraic and automata theoretic properties of formal languages. North-Holland. 1975: 8–9. ISBN 978-0-7204-2506-2. 
  5. ^ Harrison, Michael A. Introduction to Formal Language Theory. Reading, Mass.: Addison-Wesley Publishing Company. 1978: 13. ISBN 978-0-201-02955-0. 
  6. ^ Sentential Forms页面そん档备份そん互联网档あん), Context-Free Grammars, David Matuszek
  7. ^ Grune, Dick & Jacobs, Ceriel H., Parsing Techniques – A Practical Guide, Ellis Horwood, England, 1990.
  8. ^ Earley, Jay, "An Efficient Context-Free Parsing Algorithm页面そん档备份そん互联网档あん)," Communications of the ACM, Vol. 13 No. 2, pp. 94-102, February 1970.
  9. ^ Knuth, D. E. On the translation of languages from left to right (PDF). Information and Control. July 1965, 8 (6): 607–639 [29 May 2011]. doi:10.1016/S0019-9958(65)90426-2. (原始げんし内容ないよう (PDF)そん档于2012-03-15). 
  10. ^ Joshi, Aravind K., et al., "Tree Adjunct Grammars页面そん档备份そん互联网档あん)," Journal of Computer Systems Science, Vol. 10 No. 1, pp. 136-163, 1975.
  11. ^ Koster , Cornelis H. A., "Affix Grammars," in ALGOL 68 Implementation, North Holland Publishing Company, Amsterdam, p. 95-109, 1971.
  12. ^ Knuth, Donald E., "Semantics of Context-Free Languages页面そん档备份そん互联网档あん)," Mathematical Systems Theory, Vol. 2 No. 2, pp. 127-145, 1968.
  13. ^ Knuth, Donald E., "Semantics of Context-Free Languages (correction)," Mathematical Systems Theory, Vol. 5 No. 1, pp 95-96, 1971.
  14. ^ Notes on Formal Language Theory and Parsing页面そん档备份そん互联网档あん), James Power, Department of Computer Science National University of Ireland, Maynooth Maynooth, Co. Kildare, Ireland.JPR02
  15. ^ Birman, Alexander, The TMG Recognition Schema页面そん档备份そん互联网档あん, Doctoral thesis, Princeton University, Dept. of Electrical Engineering, February 1970.
  16. ^ Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," Technical Report CMU-CS-91-196, Carnegie Mellon University Computer Science, 1991.
  17. ^ Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," Third International Workshop on Parsing Technologies, 1993. (Revised version of above report.)
  18. ^ Ford, Bryan, Packrat Parsing: a Practical Linear-Time Algorithm with Backtracking页面そん档备份そん互联网档あん, Master’s thesis, Massachusetts Institute of Technology, Sept. 2002.

外部がいぶ链接

[编辑]