stringtranslate.com

Programa "¡Hola, mundo!"

Un programa "¡Hola, mundo!" es generalmente un programa de computadora simple que emite (o muestra) en la pantalla (a menudo la consola ) un mensaje similar a "¡Hola, mundo!". Este programa, que es un pequeño fragmento de código en la mayoría de los lenguajes de programación de propósito general , se utiliza para ilustrar la sintaxis básica de un lenguaje . Un programa "¡Hola, mundo!" suele ser el primero que escribe un estudiante de un nuevo lenguaje de programación, [1] pero un programa de este tipo también se puede utilizar como una comprobación de cordura para garantizar que el software de computadora destinado a compilar o ejecutar el código fuente esté correctamente instalado y que su operador comprenda cómo usarlo.

Historia

Programa "¡Hola, mundo!" escrito a mano en lenguaje C y firmado por Brian Kernighan (1978)

Si bien han existido pequeños programas de prueba desde el desarrollo de las computadoras programables , la tradición de usar la frase "¡Hola, mundo!" como mensaje de prueba estuvo influenciada por un programa de ejemplo en el libro de 1978 El lenguaje de programación C [2] , con un uso probablemente anterior en BCPL . El programa de ejemplo del libro imprime"Hola Mundo", y fue heredado de un memorando interno de Bell Laboratories de 1974 por Brian Kernighan , Programación en C: un tutorial : [3]

main ( ) { printf ( "hola, mundo" ); }   

En el ejemplo anterior, elprincipal( ) La función define dónde debe comenzar a ejecutarse el programa . El cuerpo de la función consta de una sola declaración , una llamada a laimprimirf()función, que significa " impresión con formato"; envía a la consola lo que se le pasa como parámetro , en este caso la cadena "Hola Mundo".

La versión en lenguaje C fue precedida por el propio Kernighan en A Tutorial Introduction to the Language B de 1972 , [4] donde la primera versión conocida del programa se encuentra en un ejemplo utilizado para ilustrar variables externas:

principal( ) { extr a, b, c; putchar(a); putchar(b); putchar(c); putchar('!*n');} un 'infierno';arco';c 'mundo';

El programa anterior imprime¡Hola Mundo!en la terminal, incluido un carácter de nueva línea . La frase se divide en múltiples variables porque en B una constante de carácter está limitada a cuatro caracteres ASCII . El ejemplo anterior del tutorial imprimió¡Hola!en la terminal, y la frase¡Hola Mundo!Se introdujo como un saludo un poco más largo que requería varias constantes de caracteres para su expresión.

Según Jargon File , la frase "hola, mundo" se originó en 1967 con el lenguaje BCPL . [5] Fuera de la informática, el uso de la frase exacta comenzó más de una década antes; fue el eslogan del disc jockey de radio de Nueva York William B. Williams a partir de los años 50. [6]

Variaciones

Un programa "¡Hola, mundo!" que se ejecuta en la PlayStation Portable de Sony como prueba de concepto

Los programas "¡Hola, mundo!" varían en complejidad entre los distintos lenguajes. En algunos lenguajes, en particular los lenguajes de script , el programa "¡Hola, mundo!" se puede escribir como una sola instrucción, mientras que en otros (y más aún en muchos lenguajes de bajo nivel ) se pueden requerir muchas más instrucciones. Por ejemplo, en Python , para imprimir la cadena¡Hola Mundo!seguido de una nueva línea, solo es necesario escribir . Por el contrario, el código equivalente en C++ [7] requiere la importación de la biblioteca de software de entrada/salida (E/S) , la declaración manual de un punto de entrada y la instrucción explícita de que la cadena de salida debe enviarse al flujo de salida estándar .print("Hello, World!")

Ensayo de mecanizado por control numérico por computadora (CNC) en poli(metacrilato de metilo) (Perspex).

La frase "¡Hola, mundo!" ha experimentado varias desviaciones en cuanto a mayúsculas y puntuación, como la capitalización de la H y la W iniciales , y la presencia de la coma o el signo de exclamación. Algunos dispositivos limitan el formato a variaciones específicas, como versiones totalmente en mayúsculas en sistemas que solo admiten letras mayúsculas, mientras que algunos lenguajes de programación esotéricos pueden tener que imprimir una cadena ligeramente modificada. Por ejemplo, el primer programa no trivial de Malbolge imprimió "HEllO WORld", habiéndose determinado que esto era lo suficientemente bueno . [8] [¿ Fuente poco fiable? ] Se han utilizado otros lenguajes humanos como salida; por ejemplo, un tutorial para el lenguaje Go emitió caracteres tanto ingleses como chinos o japoneses, lo que demuestra el soporte Unicode integrado del lenguaje . [9] Otro ejemplo notable es el lenguaje Rust , cuyo sistema de gestión inserta automáticamente un programa "Hola, mundo" al crear nuevos proyectos.

Un mensaje de "¡Hola, mundo!" que se muestra a través de una pintura luminosa de exposición prolongada con una tira móvil de diodos emisores de luz (LED)

Algunos lenguajes cambian la función del programa "¡Hola, mundo!" mientras mantienen el espíritu de demostrar un ejemplo simple. Los lenguajes de programación funcional , como Lisp , ML y Haskell , tienden a sustituir un programa factorial por "¡Hola, mundo!", ya que la programación funcional enfatiza las técnicas recursivas, mientras que los ejemplos originales enfatizan la E/S, lo que viola el espíritu de la programación funcional pura al producir efectos secundarios . Los lenguajes que de otro modo podrían imprimir "¡Hola, mundo!" ( lenguaje ensamblador , C , VHDL ) también pueden usarse en sistemas integrados , donde la salida de texto es difícil (requiere componentes adicionales o comunicación con otra computadora) o inexistente. Para dispositivos como microcontroladores , matrices de puertas programables en campo y dispositivos lógicos programables complejos (CPLD), "¡Hola, mundo!" puede sustituirse por un diodo emisor de luz (LED) parpadeante, que demuestra la sincronización y la interacción entre los componentes. [10] [11] [12] [13] [14]

Las distribuciones Linux Debian y Ubuntu proporcionan el programa "¡Hola, mundo!" a través de sus sistemas de administración de paquetes de software , que se puede invocar con el comandoHolaSirve como comprobación de la idoneidad y como ejemplo sencillo de instalación de un paquete de software. Para los desarrolladores, proporciona un ejemplo de creación de un paquete .deb , ya sea de forma tradicional o utilizando debhelper , y la versión deHolausado, GNU Hello , sirve como ejemplo de escritura de un programa GNU . [15]

También se han mostrado variaciones del programa "¡Hola, mundo!" que producen una salida gráfica (en lugar de una salida de texto). Sun demostró un programa "¡Hola, mundo!" en Java basado en gráficos vectoriales escalables , [16] y el lenguaje de programación XL presenta una Tierra giratoria "¡Hola, mundo!" utilizando gráficos de computadora en 3D . [17] Mark Guzdial y Elliot Soloway han sugerido que el mensaje de prueba "Hola, mundo" puede estar obsoleto ahora que los gráficos y el sonido se pueden manipular tan fácilmente como el texto. [18]

Es hora de saludar al mundo

"Time to hello world" (TTHW) es el tiempo que lleva crear un programa "¡Hola, mundo!" en un lenguaje de programación determinado. Esta es una medida de la facilidad de uso de un lenguaje de programación; dado que el programa está pensado como una introducción para personas que no están familiarizadas con el lenguaje, un programa "¡Hola, mundo!" más complejo puede indicar que el lenguaje de programación es menos accesible. [19] Por ejemplo, el primer programa "¡Hola, mundo!" conocido públicamente en Malbolge (que en realidad producía "HEllO WORld") tardó dos años en anunciarse, y no fue producido por un humano sino por un generador de código escrito en Common Lisp (ver § Variaciones, arriba) .

El concepto se ha extendido más allá de los lenguajes de programación a las API , como una medida de lo simple que es para un nuevo desarrollador lograr que un ejemplo básico funcione; un tiempo más corto indica una API más fácil de adoptar para los desarrolladores. [20] [21]

Artículos de Wikipedia que contienen programas del tipo "¡Hola, mundo!"

Véase también

Referencias

  1. ^ Langbridge, James A. (3 de diciembre de 2013). Desarrollo profesional de ARM integrado. John Wiley & Sons. ISBN 9781118887820.
  2. ^ Kernighan, Brian W. ; Ritchie, Dennis M. (1978). El lenguaje de programación C (1.ª ed.). Englewood Cliffs, Nueva Jersey : Prentice Hall . ISBN 0-13-110163-3.
  3. ^ Kernighan, Brian (1974). "Programación en C: un tutorial" (PDF) . Bell Labs. Archivado (PDF) del original el 22 de marzo de 2022. Consultado el 9 de enero de 2019 .
  4. ^ Johnson, SC; Kernighan, BW El lenguaje de programación B. Bell Labs. Archivado desde el original el 11 de junio de 2015 . Consultado el 8 de agosto de 2024 .
  5. ^ "BCPL". Archivo de jerga . Archivado desde el original el 3 de abril de 2018. Consultado el 21 de abril de 2013 .
  6. ^ "Muere William B. Williams, personalidad de la radio". The New York Times . 4 de agosto de 1986.
  7. ^ "Programación en C++/Ejemplos/Hola mundo". Wikilibros . Archivado desde el original el 28 de marzo de 2022 . Consultado el 16 de marzo de 2022 .
  8. ^ "Malbolge". Esolang . esolangs-wiki. Archivado desde el original el 27 de agosto de 2022 . Consultado el 28 de octubre de 2016 .
  9. ^ Un tutorial para el lenguaje de programación Go. Archivado el 26 de julio de 2010 en Wayback Machine . El lenguaje de programación Go. Consultado el 26 de julio de 2011.
  10. ^ Silva, Mike (11 de septiembre de 2013). "Introducción a los microcontroladores: Hola mundo". EmbeddedRelated.com . Archivado desde el original el 22 de mayo de 2015. Consultado el 19 de mayo de 2015 .
  11. ^ George, Ligo (8 de mayo de 2013). "LED parpadeante con microcontrolador Atmega32 y Atmel Studio". electroSome . Archivado desde el original el 5 de noviembre de 2014 . Consultado el 19 de mayo de 2015 .
  12. ^ PT, Ranjeeth. "2. CÓMO usar microcontroladores AVR en Linux". The Linux Documentation Project . Archivado desde el original el 2 de mayo de 2015. Consultado el 19 de mayo de 2015 .
  13. ^ Andersson, Sven-Åke (2 de abril de 2012). "3.2 El primer diseño de FPGA de Altera". Raidió Teilifís Éireann. Archivado desde el original el 21 de mayo de 2015 . Consultado el 19 de mayo de 2015 .
  14. ^ Fabio, Adam (6 de abril de 2014). «Tutorial de CPLD: aprenda lógica programable de forma sencilla». Hackaday . Archivado desde el original el 20 de mayo de 2015. Consultado el 19 de mayo de 2015 .
  15. ^ "Hola". Proyecto GNU . Free Software Foundation. Archivado desde el original el 29 de mayo de 2014 . Consultado el 7 de julio de 2017 .
  16. ^ Jolif, Christophe (enero de 2003). "Aportando la potencia SVG a las aplicaciones Java". Sun Developer Network .
  17. ^ de Dinechin, Christophe (24 de julio de 2010). "¡Hola Mundo!". Grenouille Bouillie.
  18. ^ "Enseñar a programar a la generación Nintendo" (PDF) . bfoit.org . Archivado desde el original (PDF) el 5 de mayo de 2016 . Consultado el 27 de diciembre de 2015 .
  19. ^ O'Dwyer, Arthur (septiembre de 2017). Dominar la STL de C++17: aprovechar al máximo los componentes de la biblioteca estándar en C++17. Packt Publishing Ltd. p. 251. ISBN 978-1-78728-823-2. Recuperado el 4 de diciembre de 2019 .
  20. ^ Wiegers, Harold (28 de junio de 2018). «La importancia de «Time to First Hello, World!» en un programa API eficiente». Archivado desde el original el 19 de febrero de 2020. Consultado el 19 de febrero de 2020 .
  21. ^ Jin, Brenda; Sahni, Saurabh; Shevat, Amir (29 de agosto de 2018). Diseño de API web: creación de API que los desarrolladores adoran. O'Reilly Media. ISBN 9781492026877. Recuperado el 19 de febrero de 2020 .

Enlaces externos