"Hej världen!" - ett program vars resultat är visningen på skärmen eller annan enhet av frasen "Hej, värld!" (bokstavligen översatt från engelska - "Hej, värld!"; Det är en vanlig informell hälsning, nära det ryska "hej alla!"). Variationer med olika skiljetecken eller skiftläge används också, till exempel "Hello World". Detta är vanligtvis det första exemplet på ett program i programmeringsläroböcker, och för många elever är ett sådant program den första erfarenheten av att lära sig ett nytt språk.
Ett sådant uttalande av problemet drar studentens uppmärksamhet till flera nyckelpunkter i programmeringsspråket på en gång, vars huvudsakliga är programmets grundläggande struktur.
Även om små testfall har använts sedan tillkomsten av datorer, är traditionen att använda frasen "Hej världen!" som ett testmeddelande introducerades i boken The C Programming Language av Brian Kernighan och Dennis Ritchie , publicerad 1978.
I mikrokontrollerns programmeringsmiljö, i avsaknad av en display, är det enklaste "Hello, world"-programmet programmet "blink", som implementerar blinkandet av lysdioden på en av mikrokontrollerns utgångar. Syftet med ett sådant program är den framgångsrika sammanställningen av programmet (när man lär sig en ny mikrokontroller eller en ny utvecklingsmiljö), flasha programmet in i mikrokontrollern och demonstrera själva mikrokontrollerns prestanda.
Rysktalande programmerare och tekniska översättare översätter traditionellt ordet värld i dess huvudsakliga betydelse - "värld, ljus, universum", vilket är anledningen till att den bokstavliga "hej världen" erhålls från "hej värld". Denna översättning förklaras av det faktum att programmet, som börjar arbeta, så att säga är fött och välkomnar den värld som det kommer in i.
De som är mer bekanta med det engelska språkets krångligheter påpekar att världen har andra betydelser - "människor", "samhälle", "mänsklighet" [1] och "hej värld" är en vanlig informell hälsning riktad till en obestämd krets av människor (människor, snarare än bara godtyckliga föremål eller naturen i allmänhet). Därför bör hälsningen översättas som "hej alla", "hej människor", "bra människor", etc., vilket bekräftas av engelsktalande programmerare. [2] [3]
På liknande sätt används ordet värld när man tilldelar åtkomsträttigheter (ägare, grupp, värld) i UNIX - operativsystem , för vilka C -språket utvecklades , från vilket traditionen att visa "hej värld" som en hälsning kom från. ägare betyder ägaren till objektet, grupp är användargruppen som ägaren tillhör, och världen är alla andra användare på systemet.
Ett modernt exempel som överensstämmer med ANSI C-standarden . [5] :
#include <stdio.h> int main ( void ) { printf ( "Hej världen! \n " ); returnera 0 ; } #include <iostream> int main () { std :: cout << "Hej världen!" << std :: endl ; returnera 0 ; }C# :
använder System ; class HelloWorld { static void Main () { Console . Skriv ( "Hej världen!" ); } }Pascal :
börja skriva ( 'Hej världen!' ) ; slut .Visual Basic (6.0):
Privat underformulär1_Load () Skriv ut "Hej världen!" slut subJava :
public class HelloWorld { public static void main ( String [] args ) { System . ut . println ( "Hej världen!" ); } }gå :
huvudpaket ; _ importera "fmt" func main () { fmt . println ( "Hej, värld!" ) } sätter "Hej världen!"Python , Lua , Perl och Swift :
print ( "Hej världen!" )Python (alternativ):
importera __hej__ fn main () { println! ( "Hej världen!" ); }PHP :
<?php echo "Hej världen!" ; ?>JavaScript (webbläsarversion):
dokument . skriv ( "Hej världen!" );I JavaScript (Node.JS-alternativ):
konsol . log ( "Hej, värld!" ); void setup (){ storlek ( 400 , 150 ); bakgrund ( 255 ); textSize ( 30 ); fyll ( 0 ); text ( "Hej världen" , 100 , 100 ); } ( format t "Hej världen!~%" )NASM :
global start section.text _ start: mov rax , 0x2000004 ; skriv mov rdi , 1 ; stdout mov rsi , "Hej världen!" mov rdx , 13 syscall mov rax , 0x2000001 ; avsluta mov rdi , 0 syscall1C :
Meddela ( "Hej världen!" ); ++++++++ [ > ++++ [ > ++ > +++ > +++ > + <<<< - ] > + > + > - >> + [ < ] < - ] > > . > --- . +++++++ .. +++ . >> . < - . < . +++ . ------ . -------- . >> + . > ++ .Dart :
main () { print ( "Hej världen!" ); }På esoteriskt språk HQ9+ :
HPå det esoteriska språket Malbolge :
( ' &%: 9 ] !~ } | z2Vxwv - , POqponl$Hjig % eB @@ > } =< M : 9 wv6WsU2T | nm - , jcL ( I &% $ # "`CB]V?Tx<uVtT` Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj" Fhg$ { z @ >På Whitespaces esoteriska språk :
Varje tecken för blanksteg , tabb och radmatning föregås av en "S", "T" respektive "L"-kommentar:
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 T T S T T S L T L S S S S T T S T S L T L 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 T S S S S L T L S S S S T T T T T L T L S S S S T T T T T T T L T L S S S S T T T S S T S L T L S S S S T T S T T S S L T L S S S S S T S S T S S L T L S S S S S S T L T L S S L L Stil=
Denna grupp av exempel är avsedd att visa hur skrymmande vissa tekniker är.
Exempel på C++- program som använder Component Object Model [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] bibliotek LHej { // ta in masterbiblioteket importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); // ta in mina gränssnitt # include "pshlo.idl" [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] cotype THello { gränssnitt IHello; interfaceIPersistFile; }; }; [ exe, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] moduleCHelloLib { // några kodrelaterade rubrikfiler importheader(); importheader(); importheader(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // behövde typelibs importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), sammanställbar ] samklass CHello { samtyp THello; }; }; #inkludera "ipfix.hxx" extern HANDLE hEvent ; klass CHello : offentlig CHelloBase { offentliga : IPFIX ( CLSID_CHello ); CHello ( IUnknown * pUnk ); ~ CHello (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); privat : statisk int coObjRef ; }; #inkludera "thlo.h" #inkludera "pshlo.h" #include "shlo.hxx" #inkludera "mycls.hxx" int CHello :: cObjRef = 0 ; CHello :: CHello ( IUnknown * pUnk ) : CHelloBase ( pUnk ) { cObjRef ++ ; återvända ; } HRESULTAT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); return ( ResultFromScode ( S_OK )); } CHello ::~ CHello ( ogiltig ) { // när objektantalet går till noll, stoppa servern cObjRef -- ; if ( cobjRef == 0 ) PulseEvent ( hEvent ); återvända ; } #inkludera "pshlo.h" #include "shlo.hxx" #inkludera "mycls.hxx" HANDLE hEvent ; int _cdecl main ( int argc , char * argv []) { ULONG ulRef ; DWORD dwRegistration ; CHelloCF * pCF = ny CHelloCF (); hEvent = CreateEvent ( NULL , FALSE , FALSE , NULL ); // Initiera OLE-biblioteken CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // vänta på en händelse för att stoppa WaitForSingleObject ( hEvent , INFINITE ); // återkalla och släpp klassobjektet CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Release (); // Säg till OLE att vi åker bort. CoUninitialize (); return ( 0 ); } extern CLSID CLSID_CHello ; extern UUID 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 } }; #inkludera "pshlo.h" #include "shlo.hxx" #include "clsid.h" int _cdecl main ( int argc , char * argv []) { HRESULT hRSLT ; IHello * pHello ; ULONG ulCnt ; IMoniker * pmk ; WCHAR wcsT [ _MAX_PATH ]; WCHAR wcsPath [ 2 * _MAX_PATH ]; // hämta objektsökväg wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; if ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } annat { fprintf ( stderr , "Objektsökväg måste anges \n " ); returnera ( 1 ); } // få utskriftssträng om ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); annan wcscpy ( wcsT , L "Hello World" ); printf ( "Länkar till objekt %ws \n " , wcsPath ); printf ( "Textsträng %ws \n " , wcsT ); // Initiera OLE-biblioteken hRslt = CoInitializeEx ( NULL , COINIT_MULTITHREADED ); if ( Lyckades ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); if ( Lyckades ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); if ( Lyckades ( hRslt )) { // skriv ut en sträng pHello -> PrintSz ( wcsT ); Sömn ( 2000 ); ulCnt = pHello -> Release (); } annan printf ( "Det gick inte att ansluta, status: %lx" , hRslt ); // Säg till OLE att vi åker bort. CoUninitialize (); } returnera 0 ; }Andra program som används i programmeringshandledningar är:
Standardtestobjekt | |
---|---|
2D-grafik | |
3D-grafik |
|
MP3-ljud | |
Programmering | |
Datakomprimering |
|
Textelement | |
Kämpa mot virus | |
Domän | |
Optimering |
|