Hej världen!

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 12 februari 2019; verifiering kräver 61 redigeringar .

"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.

Översättning till ryska

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.


Exempel

Programexempel på olika språk

C i äldre K&R -variant : [4]

#include <stdio.h> huvud () { printf ( "hej världen! \n " ); }

Ett modernt exempel som överensstämmer med ANSI C-standarden . [5] :

#include <stdio.h> int main ( void ) { printf ( "Hej världen! \n " ); returnera 0 ; }

C++ : [6]

#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 sub

Java :

public class HelloWorld { public static void main ( String [] args ) { System . ut . println ( "Hej världen!" ); } }

:

huvudpaket ; _ importera "fmt" func main () { fmt . println ( "Hej, värld!" ) }

Ruby och Tcl :

sätter "Hej världen!"

Python , Lua , Perl och Swift :

print ( "Hej världen!" )

Python (alternativ):

importera __hej__

Rost : [7]

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!" );

Bearbetning :

void setup (){ storlek ( 400 , 150 ); bakgrund ( 255 ); textSize ( 30 ); fyll ( 0 ); text ( "Hej världen" , 100 , 100 ); }

Vanlig lisp :

( 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 syscall

1C :

Meddela ( "Hej världen!" );

brainfuck :

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

Dart :

main () { print ( "Hej världen!" ); }

esoteriskt språk HQ9+ :

H

På 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 @ >

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 L

T 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=

Marginalexempel

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

Andra program som används i programmeringshandledningar är:

Anteckningar

  1. Världen | Definiera världen på Dictionary.com . Hämtad 23 mars 2012. Arkiverad från originalet 16 mars 2012.
  2. Exakt betydelse av "världen" i "hej värld" - UNIX- och Linux-forum
  3. Exakt betydelse av "hej världen" - comp.unix.programmer | Google-grupper
  4. Kernighan & Ritchie (1988). Programmeringsspråket C. 2:a upplagan, sid. 6.
  5. Arkiverad kopia . Hämtad 1 augusti 2011. Arkiverad från originalet 22 augusti 2011.
  6. Bjarne Stroustrup (1274). Programmeringsspråket C++. 3:e upplagan, sid. 46.
  7. Hej världen! - Programmeringsspråket Rust . Hämtad 29 april 2019. Arkiverad från originalet 28 mars 2019.

Litteratur

Länkar