Hej Verden!

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 12. februar 2019; verifikation kræver 61 redigeringer .

"Hej Verden!"  - et program, hvis resultat er visningen på skærmen eller en anden enhed af sætningen "Hej, verden!" (bogstaveligt oversat fra engelsk - "Hej, verden!"; Det er en almindelig uformel hilsen, tæt på det russiske "hej alle sammen!"). Variationer med forskellig tegnsætning eller store og små bogstaver bruges også, såsom "Hello World". Dette er normalt det første eksempel på et program i programmeringslærebøger, og for mange studerende er et sådant program den første oplevelse af at lære et nyt sprog.

En sådan erklæring om problemet henleder elevens opmærksomhed på flere nøglepunkter i programmeringssproget på én gang, hvoraf det vigtigste er programmets grundlæggende struktur.

Selvom der er blevet brugt små testcases siden fremkomsten af ​​computere, er traditionen med at bruge sætningen "Hej, verden!" som en testmeddelelse blev introduceret i bogen The C Programming Language af Brian Kernighan og Dennis Ritchie , udgivet i 1978.

I mikrocontrollerens programmeringsmiljø, i mangel af et display, er det enkleste "Hallo, verden"-program "blink"-programmet, som implementerer blinken af ​​LED'en på en af ​​mikrocontrollerens udgange. Formålet med et sådant program er den vellykkede kompilering af programmet (når man lærer en ny mikrocontroller eller et nyt udviklingsmiljø), flashing af programmet ind i mikrocontrolleren og demonstration af selve mikrocontrollerens ydeevne.

Oversættelse til russisk

Russisktalende programmører og tekniske oversættere oversætter traditionelt ordet verden i dets hovedbetydning - "verden, lys, univers", hvorfor det bogstavelige "hej verden" er hentet fra "hej verden". Denne oversættelse forklares med, at programmet, der starter arbejdet, så at sige er født og byder den verden, det kommer ind i, velkommen.

De, der er mere fortrolige med det engelske sprogs forviklinger påpeger, at verden har andre betydninger - "mennesker", "samfund", "menneskelighed" [1] og "hej verden" er en almindelig uformel hilsen rettet til en ubestemt kreds af mennesker (mennesker, snarere end blot vilkårlige genstande eller naturen generelt). Derfor skal hilsenen oversættes til "hej alle sammen", "hej folk", "gode mennesker" osv., hvilket bekræftes af engelsktalende programmører. [2] [3]

På samme måde bruges ordet verden, når der tildeles adgangsrettigheder (ejer, gruppe, verden) i UNIX -operativsystemer , som C -sproget blev udviklet til, hvorfra traditionen med at vise "hej verden" som en hilsen kom. ejer betyder ejeren af ​​objektet, gruppe  er brugergruppen som ejeren tilhører, og verden  er alle andre brugere på systemet.


Eksempler

Programeksempler på forskellige sprog

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

#include <stdio.h> vigtigste () { printf ( "hej verden! \n " ); }

Et moderne eksempel i overensstemmelse med ANSI C-standarden . [5] :

#include <stdio.h> int main ( ugyldig ) { printf ( "Hej verden! \n " ); returnere 0 ; }

C++ : [6]

#include <iostream> int main () { std :: cout << "Hej verden!" << std :: endl ; returnere 0 ; }

C# :

bruger System ; klasse HelloWorld { static void Main () { Console . Skriv ( "Hej, verden!" ); } }

Pascal :

start writeln ( 'Hej, verden!' ) ; ende .

Visual Basic (6.0):

Privat underformular1_Load ( ) Udskriv "Hej, verden!" ende under

Java :

public class HelloWorld { public static void main ( String [ ] args ) { System . ud . println ( "Hej verden!" ); } }

:

hovedpakke ; _ importer "fmt" func main () { fmt . println ( "Hej verden!" ) }

Ruby og Tcl :

sætter "Hej, verden!"

Python , Lua , Perl og Swift :

print ( "Hej, verden!" )

Python (alternativ):

import __hej__

Rust : [7]

fn main () { println! ( "Hej verden!" ); }

PHP :

<?php echo "Hej, verden!" ; ?>

JavaScript (browserversion):

dokument . skriv ( "Hej, verden!" );

I JavaScript (Node.JS mulighed):

konsol . log ( "Hej verden!" );

Behandling :

ugyldig opsætning (){ størrelse ( 400 , 150 ); baggrund ( 255 ); tekststørrelse ( 30 ); udfyld ( 0 ); tekst ( "Hej verden" , 100 , 100 ); }

Almindelig lisp :

( format t "Hej verden!~%" )

NASM :

global start section.text _ start: mov rax , 0x2000004 ; skriv mov rdi , 1 ; stdout mov rsi , "Hej verden!" mov rdx , 13 syscall mov rax , 0x2000001 ; exit mov rdi , 0 syscall

1C :

Giv besked ( "Hej, verden!" );

brainfuck :

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

Dart :

main () { print ( "Hej, verden!" ); }

I esoterisk sprog HQ9+ :

H

I det esoteriske sprog Malbolge :

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

I Whitespaces esoteriske sprog :

Hvert mellemrums- , tabulator- og linjeskifttegn efterfølges af henholdsvis en "S", "T" og "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 S 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 T L T L 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 T T S T S S L T L S S S S S T S T S S L T L S S S S S S S T L T L S S L L Stil=

Marginale eksempler

Denne gruppe af eksempler er beregnet til at vise omfanget af nogle teknologier.

Eksempel C++ program, der bruger Component Object Model [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] bibliotek LHej { // indbring masterbiblioteket importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); // bring i mine grænseflader # include "pshlo.idl" [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] cotype THello { interface IHello; interfaceIPersistFile; }; }; [ exe, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] modul CHelloLib { // nogle kode-relaterede header-filer importheader(); importheader(); importheader(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // nødvendige typelibs importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), aggregeret ] coclass CHello { cotype THello; }; }; #include "ipfix.hxx" ekstern HANDLE hEvent ; klasse CHello : offentlig CHelloBase { offentligt : IPFIX ( CLSID_CHello ); CHello ( IUkendt * pUnk ); ~ CHello (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); privat : statisk int cobjRef ; }; #include "thlo.h" #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" int CHello :: cObjRef = 0 ; CHello :: CHello ( IUnknown * pUnk ) : CHelloBase ( pUnk ) { cObjRef ++ ; returnere ; } HRESULT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); return ( ResultatFromSkode ( S_OK )); } CHello ::~ CHello ( ugyldig ) { // når objektantallet går til nul, stop serveren cObjRef -- ; if ( cobjRef == 0 ) PulseEvent ( hEvent ); returnere ; } #include "pshlo.h" #include "shlo.hxx" #include "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 ); // Initialiser OLE-bibliotekerne CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // vente på en begivenhed for at stoppe WaitForSingleObject ( hEvent , INFINITE ); // tilbagekald og frigiv klasseobjektet CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Frigivelse (); // Fortæl OLE, at vi skal væk. Couninitialize (); returnere ( 0 ); } ekstern CLSID CLSID_CHello ; ekstern 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 } }; #include "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 ]; // få objektsti wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; if ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } andet { fprintf ( stderr , "Objektsti skal angives \n " ); returnere ( 1 ); } // få udskriftsstreng if ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); andet wcscpy ( wcsT , L "Hello World" ); printf ( "Linker til objekt %ws \n " , wcsPath ); printf ( "Tekststreng %ws \n " , wcsT ); // Initialiser OLE-bibliotekerne hRslt = CoInitializeEx ( NULL , COINIT_MULTITHREADED ); if ( SUCCEEDED ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); if ( LYKKET ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); if ( SUCCEEDED ( hRslt )) { // print en streng ud pHello -> PrintSz ( wcsT ); Søvn ( 2000 ); ulCnt = pHello -> Frigivelse (); } andet printf ( "Manglende forbindelse, status: %lx" , hRslt ); // Fortæl OLE, at vi skal væk. Couninitialize (); } returnere 0 ; }

Andre programmer

Andre programmer, der bruges i programmeringsøvelser, er:

  • Tomt program - gør ingenting, men starter og aflæser korrekt fra hukommelsen.
  • " 99 flasker øl " demonstrerer den enkleste brug af loops med tekstoutput på skærmen.
  • Programmer til beregning af faktor- og fibonacci-tal .
  • Quine  er et program, der udskriver sig selv.
  • JAPH .

Noter

  1. Verden | Definer verden på Dictionary.com . Hentet 23. marts 2012. Arkiveret fra originalen 16. marts 2012.
  2. Præcis betydning af "verden" i "hej verden" - UNIX- og Linux-foraene
  3. Præcis betydning af "hej verden" - comp.unix.programmer | Google-grupper
  4. Kernighan & Ritchie (1988). Programmeringssproget C. 2. udgave, s. 6.
  5. Arkiveret kopi . Hentet 1. august 2011. Arkiveret fra originalen 22. august 2011.
  6. Bjarne Stroustrup (1274). C++ programmeringssproget. 3. udgave, s. 46.
  7. Hej verden! - Rust-programmeringssproget . Hentet 29. april 2019. Arkiveret fra originalen 28. marts 2019.

Litteratur

Links