Una variable metasintáctica es una palabra específica o un conjunto de palabras identificadas como un marcador de posición en la informática y específicamente en la programación informática . Estas palabras se encuentran comúnmente en el código fuente y están diseñadas para ser modificadas o sustituidas antes del uso en el mundo real. Las palabras foo y bar son buenos ejemplos, ya que se utilizan en más de 330 solicitudes de comentarios del Grupo de trabajo de ingeniería de Internet , los documentos que definen tecnologías fundamentales de Internet como HTTP (web), TCP / IP y protocolos de correo electrónico . [1] [2]
Por analogía matemática , una variable metasintáctica es una palabra que es una variable para otras palabras, al igual que en el álgebra las letras se usan como variables para los números. [1]
Las variables metaintácticas se utilizan para nombrar entidades como variables, funciones y comandos cuya identidad exacta no es importante y solo sirven para demostrar un concepto, que es útil para enseñar programación.
Variables metasintácticas comunes
Debido a que el inglés es el idioma fundamental, o lengua franca , de la mayoría de los lenguajes de programación de computadoras, estas variables se ven comúnmente incluso en programas y ejemplos de programas escritos para otras audiencias de lengua hablada.
Sin embargo, los nombres típicos pueden depender de la subcultura que se ha desarrollado en torno a un lenguaje de programación determinado .
Uso general
Las variables metasintácticas utilizan comúnmente en todos los lenguajes de programación incluyen foobar , foo , bar , baz , QUX , quux , quuz , corge , grault , garply , Waldo , Fred , plugh , XYZZY y ruido ; varias de estas palabras son referencias al juego Colossal Cave Adventure . [1] [3] Wibble , wobble , wubble y flob también se utilizan en el Reino Unido. [4]
Se puede encontrar una referencia completa en un libro de MIT Press titulado The Hacker's Dictionary .
japonés
En japonés, las palabras hoge (ほ げ) [5] y piyo (ぴ よ) se usan comúnmente, y otras palabras comunes y variantes son fuga (ふ が), hogera (ほ げ ら) y hogehoge (ほ げ ほ げ). [6] [ referencia circular ] Tenga en cuenta que -ra es una terminación de pluralización en japonés, y la reduplicación también se usa para pluralizar. Se desconoce el origen de hoge como variable metasintáctica, pero se cree que data de principios de la década de 1980. [6]
francés
En Francia, la palabra toto se usa ampliamente, con variantes tata , titi , tutu como marcadores de posición relacionados. Una fuente comúnmente mencionada para el uso de toto es una referencia al carácter común que se usa para contar chistes con Tête à Toto .
Ejemplos de uso
C
En el siguiente ejemplo, el nombre de la función foo y la barra del nombre de la variable son variables metasintácticas. Las líneas que comienzan con // son comentarios.
// La función llamada foo int foo ( void ) { // Declare la barra de variables y establezca el valor en 1 int bar = 1 ; barra de retorno ; }
C ++
Prototipos de funciones con ejemplos de diferentes mecanismos de paso de argumentos : [7]
void Foo ( barra de frutas ); void Foo ( barra de frutas * ); void Foo ( const Fruit & bar );
Ejemplo que muestra las capacidades de sobrecarga de funciones del lenguaje C ++
void Foo ( barra int ); void Foo ( int bar , int baz ); void Foo ( int bar , int baz , int qux );
Pitón
El spam , el jamón y los huevos son las principales variables metasintácticas utilizadas en el lenguaje de programación Python . [8] Esta es una referencia al famoso sketch de comedia, " Spam ", de Monty Python , el epónimo del idioma. [9] En el siguiente ejemplo , el spam , el jamón y los huevos son variables metasintácticas y las líneas que comienzan con # son comentarios.
# Defina una función llamada spam def spam (): # Defina la variable jamón jamón = "¡Hola mundo!" # Defina la variable huevos huevos = 1 regreso
Solicitudes de comentarios del IETF
Tanto las RFC del IETF como los lenguajes de programación de computadoras se presentan en texto plano , por lo que es necesario distinguir las variables metasintácticas mediante una convención de nomenclatura, ya que no sería obvio desde el contexto.
Aquí hay un ejemplo del documento oficial de IETF que explica los protocolos de correo electrónico (de RFC 772 - citado en RFC 3092):
Todo está bien; ahora se pueden especificar los destinatarios. S: MRCP PARA:R: 200 OK S: MRCP PARA: R: 553 No hay tal usuario aquí S: MRCP PARA: R: 200 OK S: MRCP PARA: <@ Y, @ X, fubar @ Z> R: 200 OK Tenga en cuenta que la falla de "Raboof" no tiene ningún efecto en el almacenamiento de correo para "Foo", "bar" o el correo que se reenviará a "fubar @ Z" a través del host "X".
(La documentación de texinfo enfatiza la distinción entre metavariables y meras variables usadas en un lenguaje de programación que se documenta en algún archivo texinfo como: "Use el comando @var para indicar variables metasintácticas. Una variable metasintáctica es algo que representa otro fragmento de texto. Por ejemplo, debes usar una variable metasintáctica en la documentación de una función para describir los argumentos que se pasan a esa función. No uses @var para los nombres de variables particulares en lenguajes de programación. Estos son nombres específicos de un programa, por lo que @code es correcto para ellos ". [10] )
Otro punto reflejado en el ejemplo anterior es la convención de que una metavariable debe sustituirse uniformemente por la misma instancia en todas sus apariencias en un esquema dado. Esto contrasta con los símbolos no terminales en las gramáticas formales, donde los no terminales a la derecha de una producción pueden ser sustituidos por diferentes instancias. [11]
Datos de ejemplo
SQL
Es común usar el nombre ACME en bases de datos SQL de ejemplo y como marcador de posición del nombre de la empresa con el propósito de enseñar. El término 'Base de datos ACME' se usa comúnmente para referirse a una capacitación o un conjunto de datos de base de datos de solo ejemplo que se utilizan únicamente para capacitación o pruebas. ACME también se usa comúnmente en documentación que muestra ejemplos de uso de SQL, una práctica común en muchos textos educativos, así como en documentación técnica de compañías como Microsoft y Oracle . [12] [13] [14]
Ver también
- Metavariable (lógica)
- xyzzy
- Alice y Bob
- John Doe
- Fnord
- Variables libres y variables ligadas
- Artilugio
- Lorem ipsum
- Palabra nonce
- Nombre del marcador de posición
- Widget
- Pitufo
Referencias
- ^ a b c Eastlake 3rd, Donald E .; Manros, Carl-Uno; Raymond, Eric S. Etimología de "Foo" . doi : 10.17487 / RFC3092 . RFC 3092 .
- ^ "Recuperación de documentos" . Editor de RFC .
- ^ Laughlin, Stuart (18 de noviembre de 2016). "Variable meta-sintáctica" . programación @ ProgClub (lista de correo) . Consultado el 18 de noviembre de 2016 .
- ^ wibble . (Dakota del Norte). Archivo de jerga 4.4.7. Consultado el 23 de febrero de 2010 en [1].
- ^ "hoge の 意味 ・ 使 い 方 - 英 和 辞典 Weblio 辞書" . ejje.weblio.jp .
- ^ a b メ タ 構 文 変 数 (en japonés)
- ^ Mongano, John; Kindler, Noah; Giguere, Eric (2012). Programación de entrevistas expuestas: secretos para conseguir su próximo trabajo . John Wiley e hijos. pag. 242. ISBN 978-1-118-28720-0.
- ^ "El Tutorial de Python - Documentación de Python 3.8.1" . docs.python.org .
- ^ Preguntas frecuentes generales sobre Python
- ^ "Marcado de palabras y frases" . Texinfo 4.0. El formato de documentación GNU . Archivado desde el original el 6 de noviembre de 2009 . Consultado el 25 de noviembre de 2012 .
- ^ RD Tennent (2002). Especificación de software: una introducción práctica . Prensa de la Universidad de Cambridge. págs. 36–37 y 210. ISBN 978-0-521-00401-5.
- ^ Kriegel, Alex (2008). Biblia SQL . Indianápolis, Indiana: Wiley. ISBN 978-0-470-22906-4. OCLC 402446308 .
- ^ Ruel, Chris (2014). Oracle 12c para tontos (en danés). Hoboken, Nueva Jersey: John Wiley & Sons. ISBN 978-1-118-74531-1. OCLC 870334544 .
- ^ https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/work-with-data-in-asp-net-core-apps
enlaces externos
- Definición de variable metasintáctica , con ejemplos.
- Ejemplos de variables metasintácticas utilizadas en Commonwealth Hackish , como wombat .
- Variable "foo" y otras rarezas de programación