Является ли HTML контекстно-свободным языком?

Прочитав некоторые связанные вопросы , я задумался о теоретической природе HTML.

Я не говорю здесь о XHTML-коде. Я говорю о таких вещах, как эта сумасшедшая разметка, которая представляет собой совершенно правильный HTML (!)



</span</p>
</>
</code></pre><p> Итак, учитывая огромную сложность, которую здесь привносит SGML, является ли HTML контекстно-свободным языком? В любом случае это формальный язык? С грамматикой? </p><p> А как насчет HTML5? </p><p><sub>
 Я новичок в концепции формальных языков, поэтому, пожалуйста, не теряйте терпения. И да,
</sub></p></p>
         </div>
         <div class="votes-question">
            <div class="vote-count" itemprop="upvoteCount">46</div><i class="fa fa-thumbs-o-up"></i>
         </div>
         <div class="tags">
            <a href="/questions/tagged/html" class="tag"  title="html" rel="tag">html</a> <a href="/questions/tagged/grammar" class="tag"  title="grammar" rel="tag">grammar</a> <a href="/questions/tagged/language-theory" class="tag"  title="language-theory" rel="tag">language-theory</a> <a href="/questions/tagged/sgml" class="tag"  title="sgml" rel="tag">sgml</a>         </div>
         <div class="clearfix"></div>
         <div class="action-time">
            задан Community            <span title="23 May 2017 в 12:02 ">23 May 2017 в 12:02 </span>
         </div>
         
         <a class="s-link" href="/questions/256984/javljaetsja-li-html-kontekstno-svobodnym-jazykom" title="поделиться">поделиться</a>
      </div>
   </div>
  <div style="height:100px;margin:10px 0px;" class="">

    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- siteask before post --> <ins class="adsbygoogle"      style="display:block;height:100px"
                                                                                                                             data-ad-client="ca-pub-2355906945027976"
                                                                                                                             data-ad-slot="" data-ad-format="auto"></ins>
    <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>

    </div>
   <div class="answers" id="answers">
   
      <h2 class="pull-left"><span itemprop="answerCount">0</span> ответов</h2>
      <div class="clearfix"></div>

      <div class="answer-pager">
         <div class="pagination">
                     </div>
      </div>

            <div style="margin-top: 20px;">
          Другие вопросы по тегам:          <div class="tags" style="display: inline-block; float: none;">
         <a href="/questions/tagged/html" class="tag"  title="html" rel="tag">html</a> <a href="/questions/tagged/grammar" class="tag"  title="grammar" rel="tag">grammar</a> <a href="/questions/tagged/language-theory" class="tag"  title="language-theory" rel="tag">language-theory</a> <a href="/questions/tagged/sgml" class="tag"  title="sgml" rel="tag">sgml</a>       </div>
        <h3 class="m-t-20">Похожие вопросы:</h3>

        <div class="related-block">
          <ul>
                          <li><div class='votes-answer green'><span class='vote-count'>55</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/87787/pochemu-by-ne-ispolzovat-tablicy-dlja-razmetki-v-html-zakryto" title="Почему бы не использовать таблицы для разметки в HTML? [закрыто]">Почему бы не использовать таблицы для разметки в HTML? [закрыто]</a> - 6 November 2018 00:07 </li>
                            <li><div class='votes-answer green'><span class='vote-count'>49</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/135542/suschestvuet-li-chelovekochitaemyj-jazyk-programmirovanija-zakrytyj" title="Существует ли человекочитаемый язык программирования? [закрытый]">Существует ли человекочитаемый язык программирования? [закрытый]</a> - 1 May 2012 07:06 </li>
                            <li><div class='votes-answer green'><span class='vote-count'>36</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/90066/kak-sdelat-div-ne-bolshe-ego-soderzhimogo" title="Как сделать div не больше его содержимого?">Как сделать div не больше его содержимого?</a> - 20 September 2015 12:27 </li>
                            <li><div class='votes-answer green'><span class='vote-count'>36</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/182086/skrytye-funkcii-html" title="Скрытые функции HTML">Скрытые функции HTML</a> - 23 May 2017 12:18 </li>
                            <li><div class='votes-answer green'><span class='vote-count'>31</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/11648/kak-fil-trovat-danny-e-massiva-v-javaz-cript-v-client-duplicate" title="Как фильтровать данные массива в Javascript в Client [duplicate] ">Как фильтровать данные массива в Javascript в Client [duplicate] </a> - 17 June 2015 03:09 </li>
                            <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/20015/kak-ya-mogu-sozdat-shablon-dlya-proverki-tega-html-s-lyuby-m-poryadkom-atributov-dublikat" title="Как я могу создать шаблон для проверки тега html с любым порядком атрибутов?  [Дубликат] ">Как я могу создать шаблон для проверки тега html с любым порядком атрибутов?  [Дубликат] </a> - 26 May 2012 21:37 </li>
                            <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/14274/regulyarnoe-vy-razhenie-dlya-ulavlivaniya-mnozhestvenny-x-vxozhdenij-shablona-lt-z-cript-gt-vnutri-opredelennogo-tega-a-zatem-re" title="Регулярное выражение для улавливания множественных вхождений шаблона & lt; script & gt;  внутри определенного тега, а затем replaceAll [duplicate] ">Регулярное выражение для улавливания множественных вхождений шаблона & lt; script & gt;  внутри определенного тега, а затем replaceAll [duplicate] </a> - 26 May 2012 21:37 </li>
                          </ul>
        </div>

      </div>
   </div>
   
</div>      </div>
      <aside class="sidebar">
        <div class="awrap">

<script async src="https://yastatic.net/pcode-native/loaders/loader.js"></script>
<script>
    (yaads = window.yaads || []).push({
        id: "553274-2",
        render: "#id-553274-2"
    });
</script>
<div id="id-553274-2"></div>
          <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:inline-block;width:300px;height:600px"
     data-ad-client="ca-pub-2355906945027976"
     data-ad-slot="8038370725"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>


        </div>
      </aside>

    </div>
  </div>
  <footer class="footer">
    <div class="wrapper wrapper--sm">
      <div class="footer-navs-col">
        <div class="footer-nav footer-nav--menu">

          <div class="footer-coryright">© 2017 - 2020 Вопросы и ответы по программированию</div>
        </div>
        <div class="footer-nav footer-nav--catalog">
        </div>
      </div>
      <div class="footer-contacts-col">
        <div class="soc-widget-col">
        </div>
      </div>
      <div class="clearfix"></div>
    </div>

  </footer>

</div>

<script type="text/javascript" src="/js/ui/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="/js/ui/external/jquery.cookie.js"></script>

<script type="text/javascript" src="/js/versions/menu.ru.u1607887878.js"></script>


<script type="text/javascript" src="/js/jquery.fancybox.min.js"></script>
<script type="text/javascript" src="/js/slick.min.js"></script>
<script type="text/javascript" src="/js/jquery.maskedinput.min.js"></script>

<script type="text/javascript" src="/js/versions/scripts.ru.u1607887878.js"></script>


<!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = null;m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(90030325, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/90030325" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->


<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-123993370-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-123993370-1');
</script>

</div>
<script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Программирование - вопросы и ответы",
  "alternateName": "Программирование - вопросы и ответы",
  "url": "https://legkovopros.ru",
  "potentialAction": {
     "@type": "SearchAction",
     "target": "https://legkovopros.ru/search?search={search_term_string}",
     "query-input": "required name=search_term_string"
   }
}
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Программирование - вопросы и ответы",
  "url": "https://legkovopros.ru",
  "logo": "https://legkovopros.ru/i/logo.png",
  "email": "info@legkovopros.ru",
   "telephone": ""

}




</script>
</body>
</html>