stringtranslate.com

Variable metasintáctica

Una variable metasintáctica es una palabra específica o un conjunto de palabras identificadas como un marcador de posición en la ciencia 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 destinadas a ser modificadas o sustituidas antes de su uso en el mundo real. Por ejemplo, foo y bar 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, tal como en álgebra las letras se utilizan como variables para los números . [1]

Las variables metasintácticas se utilizan para nombrar entidades como variables, funciones y comandos cuya identidad exacta no es importante y sólo sirven para demostrar un concepto, lo cual es útil para enseñar programación.

Variables metasintácticas comunes

Dado que el inglés es el idioma base o lengua franca de la mayoría de los lenguajes de programación informática, las variables que se originan en inglés se ven comúnmente incluso en programas y ejemplos de programas escritos para audiencias de otros idiomas hablados.

Las variables utilizadas en un contexto particular pueden depender de las subculturas que se desarrollan en torno a los lenguajes de programación .

Uso general

Las variables metasintácticas que se usan comúnmente en todos los lenguajes de programación incluyen foobar , foo , bar , baz , qux , quux , corge , grault , garply , waldo , fred , plugh , xyzzy y thud . [1] [3] Dos de estas palabras, plugh y xyzzy , están tomadas del juego Colossal Cave Adventure . [4]

Se puede encontrar una referencia más completa en The Hacker's Dictionary de MIT Press .

japonés

En japonés, las palabras hoge (ほげ) [5] y fuga (ふが) se usan comúnmente, mientras que otras palabras y variantes comunes son piyo (ぴよ), hogera (ほげら) y hogehoge (ほげほげ). [6] [ referencia circular ] 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 como tata , titi y tutu . Una fuente común para el uso de toto es una referencia al personaje típico que se usa para contar chistes con Tête à Toto . [ cita requerida ]

turco

En Turquía, las palabras hede y hödö (que normalmente se escriben hodo debido a las restricciones de nombres de los lenguajes de programación, que solo usan ASCII ) son variables metasintácticas bien conocidas que provienen de revistas de dibujos animados populares de los años 90, como LeMan. Las palabras no significan nada y se usan precisamente por esa razón. Los términos se popularizaron más ampliamente gracias al actor y comediante Cem Yılmaz a fines de los años 90 y principios de los 2000. [7]

italiano

En la cultura de programación de software italiana, es común encontrar nombres de personajes de Walt Disney (como los que aparecen en las versiones italianas de los programas) que se utilizan como variables. Estos nombres suelen aparecer en pseudocódigo, se mencionan en clases de ingeniería de software y se emplean habitualmente al explicar algoritmos a colegas. Entre los más utilizados se encuentran "pippo" (Goofy), "pluto" y "paperino" (el Pato Donald). [8]

Alemán

En la cultura de programación de software alemana, es común encontrar el nombre personal Klaus como nombre provisional para una clase; suena similar a "Klasse", la palabra alemana para "clase". [ cita requerida ]

Ejemplos de uso

Una captura de pantalla de una variable metasintáctica FOO asignada y reflejada en una sesión de shell interactiva.

do

En el siguiente ejemplo, el nombre de la función fooy el nombre de la variable barson variables metasintácticas. Las líneas que comienzan con //son comentarios.

// La función llamada foo int foo ( void ) { // Declara la variable bar y establece el valor en 1 int bar = 1 ;       barra de retorno ; } 

C++

Prototipos de funciones con ejemplos de diferentes mecanismos de paso de argumentos : [9]

void Foo ( Barra de frutas ); void Foo ( Fruta * barra ); void Foo ( const Fruta & barra );       

Ejemplo que muestra las capacidades de sobrecarga de funciones del lenguaje C++

void Foo ( int barra ); void Foo ( int barra , int baz ); void Foo ( int barra , int baz , int qux ) ;            

Pitón

Spam , jamón y huevos son las principales variables metasintácticas utilizadas en el lenguaje de programación Python . [10] Esta es una referencia al famoso sketch cómico " Spam ", de Monty Python , el epónimo del lenguaje. [11] En el siguiente ejemplo spam, hamy eggsson variables metasintácticas y las líneas que comienzan con #son comentarios.

# Define una función llamada spam def  spam (): # Define la variable ham  ham  =  "¡Hola mundo!" # Define la variable huevos  huevos  =  1 devolver

Solicitudes de comentarios de la IETF

Tanto los RFC de la IETF como los lenguajes de programación informática se presentan en texto simple , lo que hace necesario distinguir las variables metasintácticas mediante una convención de nomenclatura, ya que no sería obvio a partir del contexto.

A continuación se muestra un ejemplo del documento oficial de la 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:<Foo@Y> <CRLF> R: 200 OK S: MRCP PARA:<Raboof@Y> <CRLF> R: 553 No existe ese usuario aquí S: MRCP PARA:<bar@Y> <CRLF> R: 200 OK S: MRCP PARA:<@Y,@X,fubar@Z> <CRLF> R: 200 OK Tenga en cuenta que la falla de "Raboof" no tiene 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 simples variables utilizadas en un lenguaje de programación, documentándose 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, debe 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 use @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". [12] )

Otro punto que se refleja en el ejemplo anterior es la convención de que una metavariable debe sustituirse uniformemente por la misma instancia en todas sus apariciones 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 sustituirse por instancias diferentes. [13]

Datos de ejemplo

SQL

Es habitual utilizar el nombre ACME en bases de datos SQL de ejemplo y como nombre de empresa sustituto con fines didácticos. El término "base de datos ACME" se utiliza habitualmente para referirse a un conjunto de datos de base de datos de formación o de ejemplo que se utiliza únicamente con fines de formación o de prueba. ACME también se utiliza habitualmente en la documentación que muestra ejemplos de uso de SQL, una práctica habitual en muchos textos educativos, así como en la documentación técnica de empresas como Microsoft y Oracle . [14] [15] [16]

Véase también

Referencias

  1. ^ abc Eastlake 3.º, Donald E.; Manros, Carl-Uno; Raymond, Eric S. Etimología de "Foo". doi : 10.17487/RFC3092 . RFC 3092.
  2. ^ "Recuperación de documentos". Editor de RFC .
  3. ^ Laughlin, Stuart (18 de noviembre de 2016). «Variable metasintáctica». programación@ProgClub (Lista de correo). Archivado desde el original el 2 de diciembre de 2022. Consultado el 18 de noviembre de 2016 .
  4. ^ Crowther, Will (11 de marzo de 1977). "advdat.77-03-11". Código fuente de Colossal Cave Adventure . Dennis G. Jerz . Consultado el 28 de febrero de 2024 .
  5. ^ "hogeの意味・使い方 - 英和辞典 Weblio 辞書". ejje.weblio.jp .
  6. ^ ab メタ構文変数(en japonés)
  7. ^ LeMan Dergisi 1376. Sayı (en turco). Lm Cuenca Yayin Ltd.şti.
  8. ^ "El archivo de jerga - variable metasintáctica". www.catb.org/ .
  9. ^ Mongan, John; Kindler, Noah; Giguere, Eric (2012). Entrevistas de programación al descubierto: secretos para conseguir su próximo trabajo. John Wiley & Sons. pág. 242. ISBN 978-1-118-28720-0.
  10. ^ "El tutorial de Python: documentación de Python 3.8.1". docs.python.org .
  11. ^ "Preguntas frecuentes generales sobre Python: documentación de Python 3.9.7". docs.python.org . Python Software Foundation. 2021-09-04. ¿Por qué se llama Python?. Archivado desde el original el 2021-08-26 . Consultado el 2021-09-05 .
  12. ^ "Marcar palabras y frases". Texinfo 4.0. El formato de documentación de GNU . Archivado desde el original el 6 de noviembre de 2009. Consultado el 25 de noviembre de 2012 .
  13. ^ RD Tennent (2002). Especificación de software: una introducción práctica . Cambridge University Press. págs. 36-37 y 210. ISBN 978-0-521-00401-5.
  14. ^ Kriegel, Alex (2008). Biblia SQL . Indianápolis, Indiana: Wiley. ISBN 978-0-470-22906-4.OCLC 402446308  .
  15. ^ Ruel, Chris (2014). Oracle 12c para principiantes (en danés). Hoboken, Nueva Jersey: John Wiley & Sons. ISBN 978-1-118-74531-1.OCLC 870334544  .
  16. ^ "Trabajar con datos en aplicaciones ASP.NET Core". docs.microsoft.com .

Enlaces externos