{"id":4012,"date":"2022-10-26T00:00:00","date_gmt":"2022-10-26T00:00:00","guid":{"rendered":"https:\/\/techlib.net\/techedu\/forma-normal-de-backus-bnf\/"},"modified":"2022-10-26T00:00:00","modified_gmt":"2022-10-26T00:00:00","slug":"forma-normal-de-backus-bnf","status":"publish","type":"post","link":"https:\/\/techlib.net\/techedu\/forma-normal-de-backus-bnf\/","title":{"rendered":"Forma normal de Backus (BNF)"},"content":{"rendered":"<p> La forma normal de Backus (BNF) es un metalenguaje utilizado para describir la sintaxis de los lenguajes formales. Lleva el nombre de su inventor, John Backus. <br \/>\n En la forma normal de Backus, un lenguaje es descrito por un conjunto de reglas de la forma: <\/p>\n<p> <s> ::=  <br \/>\n donde <s> es una construcci\u00f3n del lenguaje, y  es una secuencia de s\u00edmbolos que define la construcci\u00f3n. <\/p>\n<p> Por ejemplo, la siguiente regla define la sintaxis de una expresi\u00f3n aritm\u00e9tica simple: <\/p>\n<p>  ::=   <\/p>\n<p> donde  es un valor entero, y  es una de las cuatro operaciones: +, -, *, \/. <br \/>\n La Forma Normal de Backus es una forma muy concisa y formal de describir la sintaxis del lenguaje. Se utiliza a menudo en el contexto de los lenguajes de programaci\u00f3n, donde se puede utilizar para definir la sintaxis de un lenguaje de programaci\u00f3n en una forma legible por la m\u00e1quina.   \u00bfCu\u00e1l es la forma completa de BNF?  La forma completa de BNF es Backus-Naur Form. Es una notaci\u00f3n para describir gram\u00e1ticas libres de contexto. En programaci\u00f3n inform\u00e1tica, el BNF se utiliza a menudo como una forma de especificar la sintaxis de los lenguajes de programaci\u00f3n. <\/p>\n<h5> \u00bfQu\u00e9 se entiende por gram\u00e1tica libre de contexto?<\/h5>\n<p> Una gram\u00e1tica libre de contexto (CFG) es un formalismo utilizado en la ciencia de la computaci\u00f3n te\u00f3rica y la teor\u00eda del lenguaje formal para describir los lenguajes que pueden ser analizados por los analizadores de descenso recursivo. Una CFG consiste en un conjunto de reglas que describen c\u00f3mo se pueden generar las cadenas de un lenguaje a partir de un peque\u00f1o conjunto de s\u00edmbolos no terminales. Los s\u00edmbolos terminales son los caracteres que aparecen en las cadenas del lenguaje, mientras que los s\u00edmbolos no terminales se utilizan para representar las subcadenas. Por ejemplo, la siguiente CFG describe el conjunto de todas las cadenas que se pueden generar a partir de los s\u00edmbolos no terminales  y , donde cada cadena contiene un n\u00famero entero seguido de un signo m\u00e1s o un signo menos: <\/p>\n<p>  ::=  |  +  |  -  <br \/>\n  ::=  <br \/>\n El CFG anterior prescribe las siguientes cadenas como v\u00e1lidas: 1, 1+, 1-2, 1+2-, 1-2+3, etc. <\/p>\n<h4> \u00bfExiste una versi\u00f3n completa de BNF?<\/h4>\n<p> La forma completa de BNF es la \"Forma Backus-Naur\". BNF puede utilizarse para describir gram\u00e1ticas libres de contexto. Fue propuesto por primera vez por Noam Chomsky y Michael O. Rabin en su art\u00edculo de 1959 \"On Some Methods for the Description of Formal Languages\". <\/p>\n<h5> \u00bfCu\u00e1l es la diferencia entre BNF y EBNF?<\/h5>\n<p> Hay una diferencia fundamental entre BNF y EBNF: BNF es un metalenguaje, mientras que EBNF es un lenguaje. Esto significa que el BNF puede utilizarse para describir cualquier lenguaje, mientras que el EBNF es en s\u00ed mismo un lenguaje utilizado para describir otros lenguajes. <br \/>\n En t\u00e9rminos de sintaxis, las dos notaciones son muy diferentes. BNF se basa en gram\u00e1ticas libres de contexto, mientras que EBNF se basa en expresiones regulares extendidas. Como resultado, EBNF es m\u00e1s conciso y m\u00e1s f\u00e1cil de leer que BNF. <br \/>\n Por \u00faltimo, cabe destacar que existen muchas variantes tanto de BNF como de EBNF. La variante m\u00e1s utilizada de BNF es la forma Backus-Naur, mientras que la variante m\u00e1s utilizada de EBNF es la forma Backus-Naur extendida. <\/p>\n<h5> \u00bfC\u00f3mo se convierte el BNF en EBNF?<\/h5>\n<p> No hay una respuesta definitiva a esta pregunta, ya que depende del contexto y los requisitos espec\u00edficos de la situaci\u00f3n. Sin embargo, algunos enfoques comunes para convertir BNF a EBNF incluyen la adici\u00f3n de reglas y\/o s\u00edmbolos adicionales a la gram\u00e1tica, el uso de diferentes notaciones para terminales y no terminales, y\/o el uso de diferentes notaciones para la repetici\u00f3n y la opcionalidad.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La forma normal de Backus (BNF) es un metalenguaje utilizado para describir la sintaxis de los lenguajes formales. Lleva el nombre de su inventor, John Backus. En la forma normal de Backus, un lenguaje es descrito por un conjunto de reglas de la forma: ::= donde es una construcci\u00f3n del lenguaje, y es una secuencia &#8230; <a title=\"Forma normal de Backus (BNF)\" class=\"read-more\" href=\"https:\/\/techlib.net\/techedu\/forma-normal-de-backus-bnf\/\" aria-label=\"Leer m\u00e1s sobre Forma normal de Backus (BNF)\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":2632,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[],"class_list":["post-4012","post","type-post","status-publish","format-standard","hentry","category-desarrollo-de-software"],"_links":{"self":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/4012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/users\/2632"}],"replies":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/comments?post=4012"}],"version-history":[{"count":0,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/4012\/revisions"}],"wp:attachment":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/media?parent=4012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/categories?post=4012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/tags?post=4012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}