Helló Világ!

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. február 12-én felülvizsgált verziótól ; az ellenőrzéshez 61 szerkesztés szükséges .

"Helló Világ!"  - olyan program, amelynek eredményeként a képernyőn vagy más eszközön megjelenik a "Hello, world!" (Szó szerint lefordítva angolról - „Hello, world!”; ez egy közönséges informális köszöntés, közel az orosz „hello mindenkinek!”). Különböző írásjelekkel vagy kis- és nagybetűkkel rendelkező változatok is használatosak, például „Hello World”. Általában ez az első példa egy programra a programozási tankönyvekben, és sok diák számára ez az első tapasztalat egy új nyelv tanulásában.

A probléma ilyen megfogalmazása egyszerre hívja fel a hallgató figyelmét a programozási nyelv több kulcsfontosságú pontjára, amelyek közül a legfontosabb a program alapvető felépítése.

Bár a számítógépek megjelenése óta használnak kis teszteseteket, a "Hello, world!" tesztüzenetként Brian Kernighan és Dennis Ritchie 1978-ban megjelent The C Programming Language című könyvében mutatták be.

A mikrokontroller programozási környezetben kijelző hiányában a legegyszerűbb „Hello, world” program a „blink” program, amely a LED villogását valósítja meg az egyik mikrokontroller kimenetén. Egy ilyen program célja a program sikeres összeállítása (új mikrokontroller vagy új fejlesztői környezet megtanulásakor), a program mikrokontrollerbe való flashelése és magának a mikrokontrollernek a teljesítményének bemutatása.

Orosz nyelvű fordítás

Az oroszul beszélő programozók és műszaki fordítók hagyományosan a világ szót fő jelentésében fordítják - "világ, fény, univerzum", ezért a szó szerinti "hello world" szó a "hello world" szóból származik. Ezt a fordítást az magyarázza, hogy a program, megkezdve a munkát, mintegy megszületik, és üdvözli azt a világot, amelybe érkezik.

Az angol nyelv bonyolultságait jobban ismerők rámutatnak arra, hogy a világnak más jelentése is van - „emberek”, „társadalom”, „emberiség” [1] , a „hello world” pedig egy közönséges informális üdvözlet, amelyet meghatározatlan körnek címeznek. (emberek, nem csak tetszőleges tárgyak vagy általában a természet). Ezért az üdvözletet „hello mindenkinek”, „hello people”, „great people” stb.-nek kell fordítani, amit angolul beszélő programozók is megerősítenek. [2] [3]

Hasonló értelemben használják a világ szót a hozzáférési jogok (tulajdonos, csoport, világ) hozzárendelésekor UNIX operációs rendszerekben , amelyre a C nyelvet fejlesztették ki , amelyből a "hello world" üdvözlésként való megjelenítésének hagyománya származik. A tulajdonos az objektum tulajdonosát jelenti, a csoport  az a felhasználói csoport, amelyhez a tulajdonos tartozik, a világ  pedig a rendszer összes többi felhasználója.


Példák

Programpéldák különböző nyelveken

C az örökölt K&R változatban : [4]

#include <stdio.h> () { printf ( "helló világ! \n " ); }

Egy modern példa, amely megfelel az ANSI C szabványnak . [5] :

#include <stdio.h> int main ( érvénytelen ) { printf ( "Helló világ! \n " ); return 0 ; }

C++ : [6]

#include <iostream> int main () { std :: cout << "Hello, world!" << std :: endl ; return 0 ; }

C# :

a rendszer használatával ; class HelloWorld { static void Main () { Konzol . Írj ( "Helló, világ!" ); } }

Pascal :

begin writeln ( 'Hello, world!' ) ; vége .

Visual Basic (6.0):

Privát Sub Form1_Load () Nyomtatás "Hello, world!" vége al

Java :

public class HelloWorld { public static void main ( String [ ] args ) { System . ki . println ( "Szia, világ!" ); } }

menj :

csomag ; import "fmt" func main () { fmt . println ( "Szia, világ!" ) }

Ruby és Tcl :

" Hello , World!"

Python , Lua , Perl és Swift :

print ( "Helló, világ!" )

Python (alternatíva):

import __hello__

Rozsda : [7]

fn main () { println! ( "Helló, világ!" ); }

PHP :

<?php echo "Helló, világ!" ; ?>

JavaScript (böngésző verzió):

dokumentumot . írj ( "Helló, világ!" );

JavaScriptben ( Node.JS opció):

konzol . log ( "Szia, világ!" );

Feldolgozás :

void beállítás (){ méret ( 400 , 150 ); háttér ( 255 ); textSize ( 30 ); kitölt ( 0 ); szöveg ( "Hello World" , 100 , 100 ); }

Közös Lisp :

( formátum t "Hello, world!~%" )

NASM :

globális indulás szakasz.szöveg _ kezdés: mov rax , 0x2000004 ; írd mov rdi , 1 ; stdout mov rsi , "Hello, world!" mov rdx , 13 syscall mov rax , 0x2000001 ; kilépés a mov rdi -ből , 0 syscall

1C :

Értesítés ( "Helló, világ!" );

agybassza :

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

Dart :

main () { print ( "Hello, World!" ); }

Ezoterikus nyelven HQ9 + :

H

Malbolge ezoterikus nyelven : _

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

A Whitespace ezoterikus nyelvén :

Minden szóköz , tabulátor és soremelés karakter előtt egy "S", "T" és "L" megjegyzés található:

S S S T S S T S S S L

T L S S S S S S S T S T S T L T L S S S S S S T S T S T S L T L S S S S S S S S T S T S T T _ _ _ _ T T L T L S S S S S S S S S S S L T L S S S S S S S S S S S L T L S S S S S T T T T T T L S S S S S S T T S T 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 S S S S S S S S S S S S S S S S S S S S S S S S S S S T L T L S S L L Stílus=

Marginális példák

Ez a példacsoport egyes technológiák terjedelmességét hivatott bemutatni.

Példa C++ programra a Component Object Model használatával [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] könyvtár LSzia { // hozza be a főkönyvtárat importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); // behozom a felületeimet # include "pshlo.idl" [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] cotype THello { interfész IHello; interfaceIPersistFile; }; }; [ alkalmazás, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] modul CHelloLib { // néhány kóddal kapcsolatos fejlécfájl importheader(); importheader(); importheader(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // szükséges typelibs importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), összesíthető ] coclass CHello { THello társtípus; }; }; #include "ipfix.hxx" extern Handle hEvent ; osztály CHello : nyilvános CHelloBase { nyilvános : IPFIX ( CLSID_CHello ); CHello ( IUnknown * pUnk ); ~ CHello (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); privát : statikus 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 ++ ; visszatérés ; } HRESULT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); return ( ResultFromScode ( S_OK )); } CHello ::~ CHello ( érvénytelen ) { // amikor az objektumok száma nullára megy, állítsa le a kiszolgálót cObjRef -- ; if ( cObjRef == 0 ) PulseEvent ( hEvent ); visszatérés ; } #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" HANDLE hEvent ; int _cdecl main ( int argc , char * argv []) { ULONG ulRef ; DWORD dwRegisztráció ; CHelloCF * pCF = új CHelloCF (); hEvent = CreateEvent ( NULL , FALSE , FALSE , NULL ); // Az OLE könyvtárak inicializálása CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // vár egy eseményre a WaitForSingleObject leállításához ( hEvent , INFINITE ); // az osztályobjektum visszavonása és felszabadítása CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Release (); // Mondd meg az OLE-nek, hogy elmegyünk. CoUninicialize (); visszatérés ( 0 ); } extern CLSID CLSID_CHhelló ; külső 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 ]; // objektum elérési útja wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; if ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } else { fprintf ( stderr , "Az objektum elérési útját meg kell adni \n " ); visszatérés ( 1 ); } // nyomtatási karakterlánc lekérése if ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); más wcscpy ( wcsT , L "Hello World" ); printf ( "Hivatkozás a %ws objektumhoz \n " , wcsPath ); printf ( "Szövegkarakterlánc %ws \n " , wcsT ); // Az OLE könyvtárak inicializálása hRslt = CoInitializeEx ( NULL , COINIT_MULTITHREADED ); if ( SIKERÜLT ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); ha ( SIKERÜLT ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); if ( SIKERÜLT ( hRslt )) { // karakterlánc nyomtatása pHello -> PrintSz ( wcsT ); Alvás ( 2000 ); ulCnt = pHello -> Release (); } más printf ( "Sikertelen csatlakozás, állapot: %lx" , hRslt ); // Mondd meg az OLE-nek, hogy elmegyünk. CoUninicialize (); } return 0 ; }

Egyéb programok

A programozási oktatóanyagokban használt egyéb programok a következők:

Jegyzetek

  1. Világ | Define World a Dictionary.com webhelyen . Letöltve: 2012. március 23. Az eredetiből archiválva : 2012. március 16..
  2. A "világ" pontos jelentése a "hello world"-ben - A UNIX és Linux fórumok
  3. A "hello world" pontos jelentése - comp.unix.programmer | Google Csoportok
  4. Kernighan és Ritchie (1988). A C programozási nyelv. 2. kiadás, p. 6.
  5. Archivált másolat . Letöltve: 2011. augusztus 1. Az eredetiből archiválva : 2011. augusztus 22..
  6. Bjarne Stroustrup (1274). A C++ programozási nyelv. 3. kiadás, p. 46.
  7. Helló világ! - A Rust programozási nyelv . Letöltve: 2019. április 29. Az eredetiből archiválva : 2019. március 28.

Irodalom

Linkek