{"id":16169,"date":"2022-07-16T19:03:43","date_gmt":"2022-07-16T19:03:43","guid":{"rendered":"https:\/\/blogs.ugto.mx\/rea\/?p=16169"},"modified":"2022-09-24T02:58:18","modified_gmt":"2022-09-24T02:58:18","slug":"clase-digital-9-analisis-sintactico-analisis-descendente-recursivo","status":"publish","type":"post","link":"https:\/\/blogs.ugto.mx\/rea\/clase-digital-9-analisis-sintactico-analisis-descendente-recursivo\/","title":{"rendered":"Clase digital 9. An\u00e1lisis sint\u00e1ctico: An\u00e1lisis descendente recursivo"},"content":{"rendered":"\n\n\n<div class=\"wp-block-cover\" style=\"min-height:284px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\"><\/span><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-18118\" alt=\"flat screen computer monitor\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/dbordtrr1a-1.jpg\" style=\"object-position:30% 58%\" data-object-fit=\"cover\" data-object-position=\"30% 58%\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"1200\" class=\"wp-block-cover__image-background wp-image-18118\" alt=\"flat screen computer monitor\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/dbordtrr1a-1.jpg\" style=\"object-position:30% 58%\" data-object-fit=\"cover\" data-object-position=\"30% 58%\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/dbordtrr1a-1.jpg 800w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/dbordtrr1a-1-200x300.jpg 200w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/dbordtrr1a-1-683x1024.jpg 683w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2022\/08\/dbordtrr1a-1-768x1152.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/noscript><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-base-3-color has-text-color has-large-font-size wp-block-paragraph\">An\u00e1lisis sint\u00e1ctico: An\u00e1lisis descendente recursivo<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduccion\">Introducci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Hola!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es un placer encontrarte, espero que tu actitud triunfadora no cambie y tengas buen \u00e1nimo por aprender cosas nuevas de este curso, por ello te invito a la novena clase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta sesi\u00f3n aprenderemos sobre&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No se diga m\u00e1s. \u00a1Prosigamos nuestro aprendizaje!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;\u00a1\u00c9xito!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"desarrollo-del-tema\">Desarrollo del tema <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">An\u00e1lisis Descendente Recursivo:<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Es un m\u00e9todo f\u00e1cil de implementar.<\/li><li>Genera una funci\u00f3n por cada s\u00edmbolo no terminal.<\/li><li>Si las producciones son recursivas, entonces la funci\u00f3n correspondiente es recursiva.<\/li><li>Es llamado an\u00e1lisis descendente recursivo.<\/li><li>S\u00f3lo funciona con gram\u00e1ticas LL(1)<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Construir un analizador descendente recursivo para la siguiente gram\u00e1tica:<br>Input \u2192 Input Expr \u2018\\n\u2019 | Expr \u2018\\n\u2019<br>Expr \u2192 Expr \u2018+\u2019 Term | Expr \u2018-\u2019 Term | Term<br>Term \u2192 Term \u2018<strong>*\u2019<\/strong> S | Term \u2018\/\u2019 S | S<br>S \u2192 Factor \u2018^\u2019 S | FactorFactor \u2192 ( Expr ) | CHAR<br><\/li><li>Soluci\u00f3n: La gram\u00e1tica anterior no es adecuada debido a que tiene recursi\u00f3n izquierda.<br>Por lo tanto, eliminar recursi\u00f3n izquierda:<br>Input \u2192 Expr \u2018\\n\u2018 {Expr \u2018\\n\u2018}<br>Expr \u2192 Term {(&#8216;+&#8217;|&#8217;-&#8216;) Term}<br>Term \u2192 S {(&#8216;*&#8217;|&#8217;\/&#8217;) S}<br>S \u2192 Factor &#8216;^&#8217; S | FactorFactor \u2192 &#8216;(&#8216; Expr &#8216;)&#8217; | CHAR<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Crear una funci\u00f3n por cada s\u00edmbolo no terminal.<br><\/li><li>Cada funci\u00f3n debe llamar a las funciones de los s\u00edmbolos que componen cada regla en el orden en que aparecen.<br><br>La funci\u00f3n retorna cuando logra verificar por completo la regla.<br><br>Los lenguajes de programaci\u00f3n son naturalmente recursivos.<br><br>Notaci\u00f3n de gram\u00e1tica que es ideal para el dise\u00f1o de analizadores sint\u00e1cticos descendentes recursivos: EBNF<br><br>El an\u00e1lisis sint\u00e1ctico descendente recursivo es uno de los m\u00e1s f\u00e1ciles de implementar<br><br>Operador que permite definir secuencias sin recursividad a la izquierda: Repetici\u00f3n<br><br>El analizador descendente recursivo no funciona para todas las gram\u00e1ticas<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3mo se representa el operador de opci\u00f3n: Con corchetes&nbsp;[]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los analizadores descendentes recursivos son m\u00e1s lentos que otros algoritmos<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3mo se representa el operador agrupamiento: Con par\u00e9ntesis ()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El analizador descendente recursivo requiere que la gram\u00e1tica sea modificada para eliminar la recursividad izquierda.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para recordar:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es as\u00ed como se concluye esta sesi\u00f3n. \u00a1Felicitaciones por tu esfuerzo y dedicaci\u00f3n! Contin\u00faa con ese mismo \u00edmpetu las clases como hasta ahora. Revisa el material complementario, realiza las actividades correspondientes y en caso de dudas, consulta a tu asesor. Te encuentro en tu siguiente clase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fuentes-de-informacion\">Fuentes de informaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.youtube.com\/watch?v=T4J3BPy__CU\" target=\"_blank\" rel=\"noreferrer noopener\">Recursive Descent Parsing, 0:19 &#8211; 11:15.<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n \u00a1Hola! Es un placer encontrarte, espero que tu actitud triunfadora no cambie y tengas buen \u00e1nimo por aprender cosas nuevas de este curso, por ello te invito a la novena clase. En esta sesi\u00f3n aprenderemos sobre&nbsp; No se diga m\u00e1s. \u00a1Prosigamos nuestro aprendizaje! &nbsp;\u00a1\u00c9xito! Desarrollo del tema An\u00e1lisis Descendente Recursivo: Es un m\u00e9todo f\u00e1cil &#8230; <a title=\"Clase digital 9. An\u00e1lisis sint\u00e1ctico: An\u00e1lisis descendente recursivo\" class=\"read-more\" href=\"https:\/\/blogs.ugto.mx\/rea\/clase-digital-9-analisis-sintactico-analisis-descendente-recursivo\/\" aria-label=\"Leer m\u00e1s sobre Clase digital 9. An\u00e1lisis sint\u00e1ctico: An\u00e1lisis descendente recursivo\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[180,19,471],"tags":[41,472,473],"class_list":["post-16169","post","type-post","status-publish","format-standard","hentry","category-cideap","category-ingenieria-en-sistemas-computacionales","category-uda-compiladores","tag-clase-digital","tag-iili06025","tag-jose-ruiz-pinales"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/16169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/comments?post=16169"}],"version-history":[{"count":4,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/16169\/revisions"}],"predecessor-version":[{"id":19163,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/16169\/revisions\/19163"}],"wp:attachment":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/media?parent=16169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/categories?post=16169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/tags?post=16169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}