"¡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.
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.
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 ; } #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 subJava :
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!" ) } pone "¡Hola, mundo!" imprimir ( "¡Hola, mundo!" )Pitón (alternativa):
importar __hola__ 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!" ); configuración vacía (){ tamaño ( 400 , 150 ); fondo ( 255 ); tamaño de texto ( 30 ); llenar ( 0 ); texto ( "Hola mundo" , 100 , 100 ); } ( 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 syscall1C :
Notificar ( "¡Hola, mundo!" ); ++++++++ [ > ++++ [ > ++ > +++ > +++ > + <<<< - ] > + > + > - >> + [ < ] < - ] > > . > --- . +++++++ .. +++ . >> . < - . < . +++ . ------ . -------- . >> + . > ++ .Dardo :
main () { print ( "¡Hola, mundo!" ); } HEn 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 LT 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 =
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 utilizados en los tutoriales de programación son:
Objetos de prueba estándar | |
---|---|
gráficos 2D | |
gráficos 3D |
|
sonido MP3 | |
Programación | |
Compresión de datos |
|
Elementos de texto | |
Lucha contra los virus | |
Dominio | |
Mejoramiento |
|