Hei maailma!

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 12. helmikuuta 2019 tarkistetusta versiosta . vahvistus vaatii 61 muokkausta .

"Hei maailma!"  - ohjelma, jonka tuloksena näytöllä tai muussa laitteessa näkyy lause "Hei, maailma!" (Käännetty kirjaimellisesti englannista - "Hei, maailma!"; Se on yleinen epävirallinen tervehdys, lähellä venäläistä "hei kaikille!"). Käytetään myös muunnelmia, joissa on erilaisia ​​välimerkkejä tai kirjainkokoa, kuten "Hello World". Tämä on yleensä ensimmäinen esimerkki ohjelmasta ohjelmointioppikirjoissa, ja monille opiskelijoille tällainen ohjelma on ensimmäinen kokemus uuden kielen oppimisesta.

Tällainen ongelman ilmaus kiinnittää opiskelijan huomion useisiin ohjelmointikielen avainkohtiin kerralla, joista tärkein on ohjelman perusrakenne.

Vaikka pieniä testitapauksia on käytetty tietokoneiden tulon jälkeen, perinne käyttää ilmaisua "Hei, maailma!" testiviestinä esiteltiin Brian Kernighanin ja Dennis Ritchien kirjassa The C Programming Language , joka julkaistiin vuonna 1978.

Mikrokontrollerin ohjelmointiympäristössä näytön puuttuessa yksinkertaisin "Hello, world" -ohjelma on "blink" -ohjelma, joka toteuttaa LED -valon vilkkumisen yhdessä mikrokontrollerin lähdöistä. Tällaisen ohjelman tarkoitus on ohjelman onnistunut käännös (kun opetellaan uutta mikro-ohjainta tai uutta kehitysympäristöä), flash-ohjelma mikro-ohjaimeen ja itse mikro-ohjaimen suorituskyvyn osoittaminen.

Käännös venäjäksi

Venäjänkieliset ohjelmoijat ja tekniset kääntäjät kääntävät perinteisesti sanan maailma sen päämerkityksessä - "maailma, valo, universumi", minkä vuoksi kirjaimellinen "hei maailma" saadaan sanasta "hello world". Tämä käännös selittyy sillä, että ohjelma, joka aloittaa työn, on ikään kuin syntynyt ja toivottaa tervetulleeksi maailmaan, johon se tulee.

Englannin kielen monimutkaisuuksiin perehtyneet huomauttavat, että maailmalla on muita merkityksiä - "ihmiset", "yhteiskunta", "ihmiskunta" [1] ja "hei maailma" on yleinen epävirallinen tervehdys, joka on osoitettu määrittelemättömälle ihmisjoukolle. (ihmiset, ei vain mielivaltaiset esineet tai luonto yleensä). Siksi tervehdys tulisi kääntää "hei kaikille", "hei ihmiset", "hyviä ihmisiä" jne., minkä englanninkieliset ohjelmoijat vahvistavat. [2] [3]

Samanlaisessa merkityksessä sanaa maailma käytetään määritettäessä käyttöoikeuksia (omistaja, ryhmä, maailma) UNIX - käyttöjärjestelmissä , joille kehitettiin C -kieli , josta on peräisin perinne näyttää "hello world" tervehdyksenä. omistaja tarkoittaa kohteen omistajaa, ryhmä  on käyttäjäryhmä, johon omistaja kuuluu, ja maailma  on kaikki muut järjestelmän käyttäjät.


Esimerkkejä

Ohjelmaesimerkkejä eri kielillä

C vanhassa K&R -versiossa : [4]

#include <stdio.h> tärkein () { printf ( "hei, maailma! \n " ); }

Moderni ANSI C - standardin mukainen esimerkki . [5] :

#include <stdio.h> int main ( tyhjä ) { printf ( "Hei, maailma! \n " ); paluu 0 ; }

C++ : [6]

#include <iostream> int main () { std :: cout << "Hei, maailma!" << std :: endl ; paluu 0 ; }

C# :

käyttäen System ; class HelloWorld { static void Main () { Konsoli . Kirjoita ( "Hei, maailma!" ); } }

Pascal :

begin writeln ( 'Hei, maailma!' ) ; loppua .

Visual Basic (6.0):

Yksityinen Sub Form1_Load () Tulosta "Hei, maailma!" loppu sub

Java :

public class HelloWorld { public static void main ( String [ ] args ) { System . ulos . println ( "Hei, maailma!" ); } }

mene :

pääpaketti ; _ tuo "fmt" func main () { fmt . println ( "Hei, maailma!" ) }

Ruby ja Tcl :

laittaa "Hei, maailma!"

Python , Lua , Perl ja Swift :

print ( "Hei, maailma!" )

Python (vaihtoehto):

tuonti __hei__

Ruoste : [7]

fn main () { println! ( "Hei, maailma!" ); }

PHP :

<?php echo "Hei, maailma!" ; ?>

JavaScript (selainversio):

asiakirja . kirjoittaa ( "Hei, maailma!" );

JavaScriptissä ( Node.JS -vaihtoehto):

konsoli . loki ( "Hei, maailma!" );

Käsittely :

void setup (){ koko ( 400 , 150 ); tausta ( 255 ); tekstikoko ( 30 ); täytä ( 0 ); teksti ( "Hello World" , 100 , 100 ); }

Yleinen Lisp :

( muoto t "Hei, maailma!~%" )

NASM :

globaali alku jakso.teksti _ aloitus: mov rax , 0x2000004 ; kirjoita mov rdi , 1 ; stdout mov rsi , "Hei, maailma!" mov rdx , 13 syscall mov rax , 0x2000001 ; poistu mov rdi , 0 syscall

1C :

Ilmoita ( "Hei, maailma!" );

aivojuttu :

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

Tikka :

main () { print ( "Hei, maailma!" ); }

Esoteerisella kielellä HQ9 + :

H

Esoteerisella kielellä Malbolge : _

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

Whitespacen esoteerisella kielellä : _

Jokaista välilyönti- , sarkain- ja rivinvaihtomerkkiä edeltää "S", "T" ja "L" -kommentti, vastaavasti:

S S S T S S T S S S L

T L S S S S S S S S T S T S T S T S S S S T S T S T S T S S S S S T S T S T S T _ _ _ _ _ _ _ _ _ _ T T L T L S S S S S S S S S S S S S S S S S S S S S S S L T L S S S S S S S T S T S T _ _ _ _ _ _ _ T T L T L S S S S S S S S S S S T S S S S S S S S S T S S S S S S S S S T S S _ _ _ _ _ _ _ _ _ _ _ S S T L T L S S L L Tyyli=

Marginaaliesimerkkejä

Tämän esimerkkiryhmän tarkoituksena on osoittaa joidenkin tekniikoiden bulkkisuus.

Esimerkki C++- ohjelmasta komponenttiobjektimallilla [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] kirjasto LHei { // tuo pääkirjastoon importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); // tuo minun käyttöliittymäni # include "pshlo.idl" [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] tyyppi THello { käyttöliittymä IHello; interfaceIPersistFile; }; }; [ exe, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] moduuliCHelloLib { // joitakin koodiin liittyviä otsikkotiedostoja importheader(); importheader(); importheader(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // tarvitaan typelibs importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), koottava ] Coclass CHello { sukutyyppi THello; }; }; #include "ipfix.hxx" ulkoinen HANDLE HEVENT ; luokka CHello : julkinen CHelloBase { julkinen : IPFIX ( CLSID_CHello ); CHello ( IUnknown * pUnk ); ~ CHello (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); yksityinen : staattinen 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 ++ ; paluu ; } HRESULT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); return ( ResultFromScode ( S_OK )); } CHello ::~ CHello ( tyhjä ) { // kun objektien määrä menee nollaan, pysäytä palvelin cObjRef -- ; jos ( cObjRef == 0 ) PulseEvent ( hEvent ); paluu ; } #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" KÄSITTELY hEvent ; int _cdecl main ( int argc , char * argv []) { ULONG ulRef ; DWORD dwRekisteröinti ; CHelloCF * pCF = uusi CHelloCF (); hEvent = CreateEvent ( NULL , FALSE , FALSE , NULL ); // OLE-kirjastojen alustaminen CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // odota tapahtumaa pysäyttääksesi WaitForSingleObject ( hEvent , INFINITE ); // peruuttaa ja vapauttaa luokkaobjektin CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Vapauta (); // Kerro OLE:lle, että lähdemme pois. Aloita alusta (); paluu ( 0 ); } extern CLSID CLSID_CHhello ; ulkoinen 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 ]; // hanki objektin polku wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; if ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } else { fprintf ( stderr , "Objektipolku on määritettävä \n " ); palautus ( 1 ); } // hanki tulostusjono if ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); muu wcscpy ( wcsT , L "Hello World" ); printf ( "Linkkiminen objektiin %ws \n " , wcsPath ); printf ( "Tekstimerkkijono %ws \n " , wcsT ); // OLE-kirjastojen alustaminen hRslt = CoInitializeEx ( NULL , COINIT_MULTITTHREADED ); if ( ONNISTUI ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); jos ( ONNISTUI ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); if ( ONNISTUI ( hRslt )) { // tulostaa merkkijono pHello -> PrintSz ( wcsT ); Sleep ( 2000 ); ulCnt = pHello -> Vapauta (); } muu printf ( "Yhteyden muodostaminen epäonnistui, tila: %lx" , hRslt ); // Kerro OLE:lle, että lähdemme pois. Aloita alusta (); } paluu 0 ; }

Muut ohjelmat

Muita ohjelmointitutoriaaleissa käytettyjä ohjelmia ovat:

Muistiinpanot

  1. Maailma | Define World osoitteessa Dictionary.com . Haettu 23. maaliskuuta 2012. Arkistoitu alkuperäisestä 16. maaliskuuta 2012.
  2. Sanan "maailma" tarkka merkitys sanalla "hello world" - UNIX- ja Linux-foorumit
  3. Sanan "hello world" tarkka merkitys - comp.unix.programmer | Google-ryhmät
  4. Kernighan & Ritchie (1988). C-ohjelmointikieli. 2. painos, s. 6.
  5. Arkistoitu kopio . Haettu 1. elokuuta 2011. Arkistoitu alkuperäisestä 22. elokuuta 2011.
  6. Bjarne Stroustrup (1274). C++ ohjelmointikieli. 3. painos, s. 46.
  7. Hei maailma! - Rust-ohjelmointikieli . Haettu 29. huhtikuuta 2019. Arkistoitu alkuperäisestä 28. maaliskuuta 2019.

Kirjallisuus

Linkit