いいえ
以下の編集を参照してください
場合によります。
理論上の HTML のみで構成されるサブセットについて話している場合は、はい.
インターネット上の多くのトップサイトで毎日何百万人もの人々がアクセスし、正常に使用している実際の作業 HTML も含める場合は、NO .
それが HTML の柔軟性を提供するものです。解析エンジンは、タグを追加し、タグを閉じ、理論上の CFG ではできないことを処理します。オートマトンを使用した場合、正式な文法のプロダクション ルールを lhs (左側) で空 (別名イプシロン/ラムダ) にすることはできないことを覚えているかもしれません。解析エンジンは基本的に、正式な文法とオートマトンが持つことができない知識を使用しているため、それによって制限されることはなく、「文法」にはepsilon/lambda -> result
、文法で利用できない情報に基づいて特定のイプシロン/ラムダ規則が選択される場所があります。 .
形式文法では空の lh が許可されていないと思うので、HTML は形式文法で定義することはできず、形式言語ではありません。
確かに、HTML5 は「より正式な」言語記述に移行しようとする可能性がありますが、実際にそれが文脈自由言語になる可能性 (つまり、文法に一致しない文字列が拒否される可能性) は、XHTML 2.0 が世界を席巻する可能性とほぼ同じです。 HTML を完全に置き換えます (XHTML は、HTML を正式な言語にしようとする試みです...その脆弱性のために一斉に拒否されました)。
注目に値するのは、HTML 5 が実装前に定義された最初の HTML 標準であるという事実です! そうです、HTML 1-4 は、誰かがブラウザに実装したばかりのランダムなアイデアで構成されており、一般的に使用され、広く実装されている機能に基づいて、事後に標準に集められました。その後、XHTML を試してみましたが、まったく採用されませんでした。Web 上の 'xhtml' でさえ、ほとんどすべての状況で HTML として自動的に解析され、暗号化された構文エラーで問題が発生するのを防ぎます。これで、私たちがどのようにしてここにたどり着いたのか、そしてなぜすぐに正式化される可能性が低いのかがわかります.
教訓:「理論上、理論と実践の間に違いはありません。実際には違いがあります。」- ヨギ・ベラ
編集:
実際、ドキュメントを読んでみると、HTML 4.01 仕様に従っても、HTML は実際には SGML に準拠していないことがわかります。自分で確認するには、http://www.w3.org/TR/html4/strict.dtd で HTML 4.01 Strict ドキュメント タイプ定義 (doctype) を表示し、次の行に注意してください。
HTML 4.01 仕様には、DTD 内で表現できない追加の構文上の制約が含まれています。
したがって、これらの機能のためにおそらくCFL ではないと思います (技術的には、HTML 4.01 を受け入れる可能性のある PDA が存在するという仮説を反証するものではありませんが、SGML は CFL であり、したがって HTML はCFL)。
HTML5 フリップフロップ。暗黙の SGML への準拠を放棄しますが、おそらく CFG によって記述可能です。ただし、それでも cfg に基づかないベストエフォートの解析を提供するため、IMO の現在の状況 (つまり、言語仕様は正式に定義されており、無効な文字列は引き続き受け入れられ、解析され、ベスト エフォート方式でレンダリングされます) は、この点に関して、そうではない可能性があります。長い、長い、長い間劇的に変化します。