¡Hola Mundo!

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 12 de febrero de 2019; la verificación requiere 61 ediciones .

"¡Hola Mundo!"  - un programa, cuyo resultado es la visualización en la pantalla u otro dispositivo de la frase "¡Hola, mundo!" (traducido literalmente del inglés: "¡Hola, mundo!"; Es un saludo informal común, cercano al ruso "¡Hola a todos!"). También se utilizan variaciones con diferente puntuación o caso, como "Hello World". Este suele ser el primer ejemplo de un programa en los libros de texto de programación y, para muchos estudiantes, dicho programa es la primera experiencia de aprender un nuevo idioma.

Tal declaración del problema llama la atención del estudiante sobre varios puntos clave del lenguaje de programación a la vez, el principal de los cuales es la estructura básica del programa.

Aunque se han utilizado pequeños casos de prueba desde la llegada de las computadoras, la tradición de usar la frase "¡Hola, mundo!" como mensaje de prueba se introdujo en el libro The C Programming Language de Brian Kernighan y Dennis Ritchie , publicado en 1978.

En el entorno de programación del microcontrolador , en ausencia de una pantalla, el programa "Hola, mundo" más simple es el programa "parpadeo", que implementa el parpadeo del LED en una de las salidas del microcontrolador. El propósito de dicho programa es la compilación exitosa del programa (al aprender un nuevo microcontrolador o un nuevo entorno de desarrollo), actualizar el programa en el microcontrolador y demostrar el rendimiento del propio microcontrolador.

Traducción al ruso

Los programadores y traductores técnicos de habla rusa traducen tradicionalmente la palabra mundo en su significado principal: "mundo, luz, universo", por lo que el literal "hola mundo" se obtiene de "hola mundo". Esta traducción se explica por el hecho de que el programa, al comenzar a funcionar, es como si naciera y acogiera al mundo al que llega.

Aquellos más familiarizados con las complejidades del idioma inglés señalan que mundo tiene otros significados: "gente", "sociedad", "humanidad" [1] y "hola mundo" es un saludo informal común dirigido a un círculo indefinido de personas. (personas, no solo objetos arbitrarios o la naturaleza en general). Por lo tanto, el saludo debe traducirse como "hola a todos", "hola gente", "gran gente", etc., lo que confirman los programadores de habla inglesa. [2] [3]

En un sentido similar, la palabra mundo se usa cuando se asignan derechos de acceso (propietario, grupo, mundo) en los sistemas operativos UNIX , para lo cual se desarrolló el lenguaje C , de donde surgió la tradición de mostrar "hola mundo" como saludo. propietario significa el propietario del objeto, grupo  es el grupo de usuarios al que pertenece el propietario y mundo  son todos los demás usuarios del sistema.


Ejemplos

Ejemplos de programas en varios idiomas

C en la variante K&R heredada : [4]

#incluir <stdio.h> principal () { printf ( "hola mundo! \n " ); }

Un ejemplo moderno conforme al estándar ANSI C. [5] :

#incluir <stdio.h> int principal ( vacío ) { printf ( "¡Hola, mundo! \n " ); devolver 0 ; }

C++ : [6]

#incluir <iostream> int principal () { std :: cout << "¡Hola, mundo!" << estándar :: endl ; devolver 0 ; }

do# :

utilizando el sistema ; clase HelloWorld { static void Principal () { Consola . Escribe ( "¡Hola, mundo!" ); } }

Pascual :

begin writeln ( '¡Hola, mundo!' ) ; fin _

Visual Basic (6.0):

Private Sub Form1_Load () Imprimir "¡Hola, mundo!" final sub

Java :

public class HelloWorld { public static void main ( String [] args ) { System . fuera _ println ( "¡Hola, mundo!" ); } }

ir :

paquete principal ; importar "fmt" función principal () { fmt . println ( "¡Hola, mundo!" ) }

Rubí y Tcl :

pone "¡Hola, mundo!"

Python , Lua , Perl y Swift :

imprimir ( "¡Hola, mundo!" )

Pitón (alternativa):

importar __hola__

óxido : [7]

fn principal () { imprimir! ( "¡Hola, mundo!" ); }

PHP :

<?php echo "¡Hola, mundo!" ; ?>

JavaScript (versión del navegador):

documento _ escribir ( "¡Hola, mundo!" );

En JavaScript (opción Node.JS):

consola _ log ( "¡Hola, mundo!" );

Procesamiento :

configuración vacía (){ tamaño ( 400 , 150 ); fondo ( 255 ); tamaño de texto ( 30 ); llenar ( 0 ); texto ( "Hola mundo" , 100 , 100 ); }

Ceceo común :

( formato t "¡Hola, mundo!~%" )

NASM :

inicio mundial sección.texto _ inicio: mov rax , 0x2000004 ; escribir mov rdi , 1 ; stdout mov rsi , "¡Hola, mundo!" mov rdx , 13 llamadas al sistema mov rax , 0x2000001 ; salir mov rdi , 0 syscall

1C :

Notificar ( "¡Hola, mundo!" );

mierda de cerebro :

++++++++ [ > ++++ [ > ++ > +++ > +++ > + <<<< - ] > + > + > - >> + [ < ] < - ] > > . > --- . +++++++ .. +++ . >> . < - . < . +++ . ------ . -------- . >> + . > ++ .

Dardo :

main () { print ( "¡Hola, mundo!" ); }

En lenguaje esotérico HQ9+ :

H

En el lenguaje esotérico Malbolge :

( ' &%: 9 ] !~ } | z2Vxwv - , POqponl$Hjig % eB @@ > } =< M : 9 wv6WsU2T | nm - , jcL ( I &% $ # "`CB]V?Tx<uVtT` Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj" Fhg$ { z @ >

En el lenguaje esotérico de Whitespace :

Cada carácter de espacio , tabulador y avance de línea está precedido por un comentario "S", "T" y "L", respectivamente:

S S S T S S T S S S L

T L S S S S S T T S S T S T L T L S S S S S T T T T T S S L T L S S S S S T T S T T S S L T L S S S S S T T S T T T T L T L S S S S S T S T T S S L T L S S S S S T S S S S S L T L S S S S S T T T S T T T L T L S S S S S T T T T T T T L T L S S S S S T T T S S T S L T L S S S S S T T S T T S S L T L S S S S S T T S S T S S L T L S S S S S T S S S S T L T L S S L L Estilo =

Ejemplos marginales

Este grupo de ejemplos pretende mostrar el volumen de algunas tecnologías.

Ejemplo de programa C++ usando el modelo de objetos componentes [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] biblioteca LHola { // trae la biblioteca maestra importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); // trae mis interfaces # incluye "pshlo.idl" [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] cotipo THola { interfaz IHola; interfazIPPersistFile; }; }; [ exe, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] móduloCHelloLib { // algunos archivos de encabezado relacionados con el código encabezado de importación(); encabezado de importación(); encabezado de importación(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // bibliotecas de tipos necesarias importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), agregable ] coclase CHhola { cotipo THello; }; }; #incluye "ipfix.hxx" HANDLE HEvent externo ; clase CHello : CHelloBase pública { público : IPFIX ( CLSID_CHello ); Hola ( Desconocido * pUnk ); ~ CHola (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); privado : cObjRef int estático ; }; #incluir "thlo.h" #incluir "pshlo.h" #incluir "shlo.hxx" #include "mycls.hxx" int CHello :: cObjRef = 0 ; CHello :: CHello ( Desconocido * pUnk ) : CHelloBase ( pUnk ) { cObjRef ++ ; volver ; } HRESULT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); retorno ( ResultFromScode ( S_OK )); } Hola ::~ Hola ( void ) { // cuando el conteo de objetos llegue a cero, detener el servidor cObjRef -- ; si ( cObjRef == 0 ) PulseEvent ( hEvent ); volver ; } #incluir "pshlo.h" #incluir "shlo.hxx" #include "mycls.hxx" MANEJAR hEvent ; int _cdecl principal ( int argc , char * argv []) { ULLARGO ulRef ; DWORD dwRegistro ; CHelloCF * pCF = new CHelloCF (); hEvento = CreateEvent ( NULL , FALSE , FALSE , NULL ); // Inicializar las bibliotecas OLE CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // esperar un evento para detener WaitForSingleObject ( hEvent , INFINITE ); // revocar y liberar el objeto de clase CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Liberar (); // Dile a OLE que nos vamos. CoInicializar (); retorno ( 0 ); } CLSID externo CLSID_CHello ; UUID externo LIBID_CHelloLib ; CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */ 0x2573F891 , 0xCFEE , 0x101A , { 0x9A , 0x9F , 0x00 , 0xAA , 0x00 , 0x34 , 0x28 , 0x20 } }; UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */ 0x2573F891 , 0xCFEE , 0x101A , { 0x9A , 0x9F , 0x00 , 0xAA , 0x00 , 0x34 , 0x28 , 0x20 } }; #incluir "pshlo.h" #incluir "shlo.hxx" #include "clsid.h" int _cdecl principal ( int argc , char * argv []) { HRESULT hRSLT ; Hola * pHola ; ULONG ulCnt ; IMoniker * pmk ; WCHAR wcsT [ _MAX_PATH ]; WCHAR wcsPath [ 2 * _MAX_PATH ]; // obtener la ruta del objeto wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; si ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } más { fprintf ( stderr , "Se debe especificar la ruta del objeto \n " ); retorno ( 1 ); } // obtener cadena de impresión si ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); más wcscpy ( wcsT , L "Hola mundo" ); printf ( "Enlazando al objeto %ws \n " , wcsPath ); printf ( "Cadena de texto %ws \n " , wcsT ); // Inicializar las bibliotecas OLE hRslt = CoInitializeEx ( NULL , COINIT_MULTITHREADED ); si ( ÉXITO ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); si ( TENIDO ÉXITO ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); si ( ÉXITO ( hRslt )) { // imprime una cadena pHello -> PrintSz ( wcsT ); Sueño ( 2000 ); ulCnt = pHello -> Liberar (); } más printf ( "Error al conectar, estado: %lx" , hRslt ); // Dile a OLE que nos vamos. CoInicializar (); } devolver 0 ; }

Otros programas

Otros programas utilizados en los tutoriales de programación son:

  • Programa vacío: no hace nada, pero se inicia correctamente y se descarga de la memoria.
  • " 99 Bottles of Beer " demuestra el uso más simple de bucles con salida de texto en la pantalla.
  • Programas para calcular números factoriales y de Fibonacci .
  • Quine  es un programa que se imprime solo.
  • JAPH .

Notas

  1. Mundo | Definir mundo en Dictionary.com . Consultado el 23 de marzo de 2012. Archivado desde el original el 16 de marzo de 2012.
  2. Significado exacto del "mundo" en "hola mundo" - Foros de UNIX y Linux
  3. Significado exacto de "hola mundo" - comp.unix.programmer | grupos de Google
  4. Kernighan y Ritchie (1988). El lenguaje de programación C. 2ª edición, pág. 6.
  5. Copia archivada . Consultado el 1 de agosto de 2011. Archivado desde el original el 22 de agosto de 2011.
  6. Bjarne Stroustrup (1274). El lenguaje de programación C++. 3ª edición, pág. 46.
  7. ¡Hola Mundo! - El lenguaje de programación Rust . Consultado el 29 de abril de 2019. Archivado desde el original el 28 de marzo de 2019.

Literatura

Enlaces