html不算语言,语法-HTML是上下文无关的语言吗?

没有

请参阅下面的编辑

这取决于。

如果您正在谈论仅由理论HTML组成的子集,那么可以。

如果您还包括现实生活,那么可以正常工作的HTML每天都会被Internet上许多顶级站点的数百万人成功访问和使用。

这就是HTML灵活性的原因。 解析引擎添加标签,关闭标签,并处理理论上CFG无法完成的工作。 如果您使用自动机,您可能还记得,正式语法中的生产规则在lhs(左侧)上不能为空(aka epsilon / lambda)。 由于解析引擎基本上使用的是形式语法和自动机所不具备的知识,因此它不受此限制,并且“语法”将具有epsilon/lambda -> result,其中基于不存在的信息选择特定的epsilon / lambda规则。 语法。

由于我认为任何形式的语法都不允许使用空lhs,因此HTML不能由形式的语法定义,并且根本不是形式的语言。

当然,HTML5可能会尝试向“更正式的”语言描述迈进,但实际上它成为上下文无关语言的可能性(即,与语法不匹配的字符串被拒绝)是关于XHTML 2.0席卷全球的可能性以及 完全替代了HTML(XHTML是他们为使HTML成为正式语言而进行的尝试...由于其易碎性而被整体拒绝)。

值得注意的事实是,HTML 5是在实施之前首先定义的HTML标准! 没错,HTML 1-4包含一些人刚刚在浏览器中实现的随机想法,并根据事实确定了哪些功能被广泛使用和广泛实施,从而将其收集到标准中。 然后他们尝试了XHTML,但完全没有被采用。 甚至在几乎所有情况下,网络上的“ 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(尽管从技术上讲,它并不能反驳存在PDA可以接受HTML 4.01的假设,但确实避免了SGML是CFL的争论,因此HTML是 CFL)。

HTML5触发器放弃了与SGML的任何隐含一致性,但大概是CFG可以描述的。 但是,它将仍然提供不基于cfg的尽力而为的解析,因此IMO在这方面的当前情况(即,语言规范已正式定义,无效字符串仍以尽力而为的方式接受,解析和呈现) 长时间,大幅度地改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值