"Salut Lume!" - un program, al cărui rezultat este afișarea pe ecran sau pe alt dispozitiv a frazei "Bună ziua, lume!" (tradus literal din engleză - „Bună, lume!”; Este o salutare informală comună, apropiată de rusă „bună ziua tuturor!”). Sunt folosite și variații cu semne de punctuație sau majuscule diferite, cum ar fi „Hello World”. Acesta este de obicei primul exemplu de program din manualele de programare, iar pentru mulți studenți, un astfel de program este prima experiență de învățare a unei noi limbi.
O astfel de enunțare a problemei atrage atenția elevului asupra mai multor puncte cheie ale limbajului de programare simultan, principala dintre acestea fiind structura de bază a programului.
Deși micile cazuri de testare au fost folosite încă de la apariția computerelor, tradiția folosirii expresiei „Bună, lume!” ca mesaj de testare a fost introdus în cartea Limbajul de programare C de Brian Kernighan și Dennis Ritchie , publicată în 1978.
În mediul de programare al microcontrolerului , în absența unui afișaj, cel mai simplu program „Hello, world” este programul „blink”, care implementează clipirea LED -ului pe una dintre ieșirile microcontrolerului. Scopul unui astfel de program este compilarea cu succes a programului (când se învață un nou microcontroler sau un nou mediu de dezvoltare), introducerea programului în microcontroler și demonstrarea performanței microcontrolerului în sine.
Programatorii și traducătorii tehnici vorbitori de limbă rusă traduc în mod tradițional cuvântul lume în sensul său principal - „lume, lumină, univers”, motiv pentru care literalul „hello world” este obținut din „hello world”. Această traducere se explică prin faptul că programul, pornind de la lucru, se naște, parcă, și primește lumea în care vine.
Cei mai familiarizați cu complexitățile limbii engleze subliniază că lumea are alte semnificații - „oameni”, „societate”, „umanitate” [1] , iar „bună ziua, lume” este un salut informal comun adresat unui cerc nedefinit de oameni. (oameni, mai degrabă decât doar obiecte arbitrare sau natura în general). Prin urmare, salutul ar trebui tradus ca „bună ziua tuturor”, „bună ziua oamenilor”, „oameni grozavi”, etc., ceea ce este confirmat de programatorii vorbitori de limbă engleză. [2] [3]
Într-un sens similar, cuvântul lume este folosit la atribuirea drepturilor de acces (proprietar, grup, lume) în sistemele de operare UNIX , pentru care a fost dezvoltat limbajul C , de la care a venit tradiția de a afișa „hello world” ca salut. proprietar înseamnă proprietarul obiectului, grupul este grupul de utilizatori căruia îi aparține proprietarul și lumea reprezintă toți ceilalți utilizatori din sistem.
C în varianta K&R moștenită : [4]
#include <stdio.h> principal () { printf ( "bună ziua, lume! \n " ); }Un exemplu modern conform standardului ANSI C. [5] :
#include <stdio.h> int main ( void ) { printf ( "Bună ziua, lume! \n " ); returnează 0 ; } #include <iostream> int main () { std :: cout << "Bună ziua, lume!" << std :: endl ; returnează 0 ; }C# :
folosind System ; class HelloWorld { static void Main () { Consolă . Scrie ( "Bună ziua, lume!" ); } }Pascal :
begin writeln ( 'Bună, lume!' ) ; sfârşitul .Visual Basic (6.0):
Private Sub Form1_Load () Tipăriți „Bună, lume!” end subJava :
public class HelloWorld { public static void main ( String [] args ) { System . afară . println ( "Bună ziua, lume!" ); } }du-te :
pachet principal ; import "fmt" func main () { fmt . println ( "Bună ziua, lume!" ) } pune „Bună, lume!”Python , Lua , Perl și Swift :
print ( "Bună ziua, lume!" )Python (alternativă):
import __hello__ fn principal () { println! ( "Bună ziua, lume!" ); }PHP :
<?php echo „Bună, lume!” ; ?>JavaScript (versiunea browser):
document . scrie ( "Bună, lume!" );În JavaScript (opțiunea Node.JS):
consola . log ( "Bună ziua, lume!" ); void setup (){ dimensiune ( 400 , 150 ); fundal ( 255 ); textSize ( 30 ); umplere ( 0 ); text ( „Bună lume” , 100 , 100 ); } ( format t „Bună, lume!~%” )NASM :
început global section.text _ start: mov rax , 0x2000004 ; scrie mov rdi , 1 ; stdout mov rsi , "Bună, lume!" mov rdx , 13 syscall mov rax , 0x2000001 ; exit mov rdi , 0 syscall1C :
Notificare ( "Bună ziua, lume!" );naiba :
++++++++ [ > ++++ [ > ++ > +++ > +++ > + <<<< - ] > + > + > - >> + [ < ] < - ] > > . > --- . +++++++ .. +++ . >> . < - . < . +++ . ------ . -------- . >> + . > ++ .Dart :
main () { print ( "Buna ziua, lume!" ); } HÎn limbajul ezoteric Malbolge :
( ' &%: 9 ] !~ } | z2Vxwv - , POqponl$Hjig % eB @@ > } =< M : 9 wv6WsU2T | nm - , jcL ( I &% $ # "`CB]V?Tx<uVtT` Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj" Fhg$ { z @ >În limbajul ezoteric al spațiului alb :
Fiecare caracter Space , Tab și Line Feed este precedat de un comentariu „S”, „T”, respectiv „L”:
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 S T T S T T S S L T L S S S S S S T T S T T S S L T L S S 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 S T S S S S S L T L S S S S S T T T S T T T L T L S S S S S S T T S 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 S T T S T T S S L T L S S S S S S T T S T S S L T L S S S S S S T S S S S T L T L S S L L Stil=
Acest grup de exemple este destinat să arate volumul unor tehnologii.
Exemplu de program C++ folosind modelul de obiecte componente [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] biblioteca LSalut { // aduc în biblioteca principală importlib( "actimp.tlb" ); importlib( "acexp.tlb" ); // aduc interfețele mele # includ „pshlo.idl” [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] cotip THello { interfață IHello; interfaceIPersistFile; }; }; [ executabil, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] moduleCHelloLib { // unele fișiere de antet legate de cod importheader(); importheader(); importheader(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // au nevoie de biblioteci de tipuri importlib( "actimp.tlb" ); importlib( "acexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), agregabil ] coclass CHello { cotip THello; }; }; #include „ipfix.hxx” extern HANDLE hEvent ; clasa CHello : public CHelloBase { public : IPFIX ( CLSID_CHello ); CHello ( IUnknown * pUnk ); ~ CHello (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); privat : static 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 ++ ; întoarcere ; } HRESULT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); return ( ResultFromScode ( S_OK )); } CHello ::~ CHello ( vod ) { // când numărul de obiecte ajunge la zero, opriți serverul cObjRef -- ; dacă ( cObjRef == 0 ) PulseEvent ( hEvent ); întoarcere ; } #include „pshlo.h” #include „shlo.hxx” #include „mycls.hxx” MANDARE hEvent ; int _cdecl main ( int argc , char * argv []) { ULONG ulRef ; DWORD dwRegistration ; CHelloCF * pCF = CHelloCF nou (); hEvent = CreateEvent ( NULL , FALSE , FALSE , NULL ); // Inițializați bibliotecile OLE CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // așteptați un eveniment pentru a opri WaitForSingleObject ( hEvent , INFINITE ); // revocă și eliberează obiectul de clasă CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Release (); // Spune-i lui OLE că plecăm. CoUniinițialize (); întoarcere ( 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 } }; #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 ]; // obține calea obiectului wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; dacă ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } else { fprintf ( stderr , "Calea obiectului trebuie specificată \n " ); întoarcere ( 1 ); } // obțineți șirul de tipărire dacă ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); altfel wcscpy ( wcsT , L "Bună ziua" ); printf ( "Legătură la obiectul %ws \n " , wcsPath ); printf ( "Șir de text %ws \n " , wcsT ); // Inițializează bibliotecile OLE hRslt = CoInitializeEx ( NULL , COINIT_MULTITHREADED ); dacă ( A REUSIT ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); dacă ( A REUSIT ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); dacă ( A REUSIT ( hRslt )) { // imprimă un șir pHello -> PrintSz ( wcsT ); Somn ( 2000 ); ulCnt = pHello -> Release (); } altfel printf ( "Eșec la conectare, stare: %lx" , hRslt ); // Spune-i lui OLE că plecăm. CoUniinițialize (); } returnează 0 ; }Alte programe utilizate în tutorialele de programare sunt:
Obiecte de testare standard | |
---|---|
Grafică 2D | |
Grafică 3D |
|
Audio MP3 | |
Programare | |
Comprimarea datelor |
|
Elemente de text | |
Luptă împotriva virușilor | |
Domeniu | |
Optimizare |
|