Salut Lume!

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 12 februarie 2019; verificarea necesită 61 de modificări .

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

Traducere în rusă

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.


Exemple

Exemple de programe în diferite limbi

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 ; }

C++ : [6]

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

Java :

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

Ruby și Tcl :

pune „Bună, lume!”

Python , Lua , Perl și Swift :

print ( "Bună ziua, lume!" )

Python (alternativă):

import __hello__

Rugina : [7]

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

Prelucrare :

void setup (){ dimensiune ( 400 , 150 ); fundal ( 255 ); textSize ( 30 ); umplere ( 0 ); text ( „Bună lume” , 100 , 100 ); }

Lisp comun :

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

1C :

Notificare ( "Bună ziua, lume!" );

naiba :

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

Dart :

main () { print ( "Buna ziua, lume!" ); }

În limbaj ezoteric HQ9+ :

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 L

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

Exemple marginale

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

Alte programe utilizate în tutorialele de programare sunt:

  • Program gol - nu face nimic, dar pornește și se descarcă corect din memorie.
  • 99 Bottles of Beer ” demonstrează cea mai simplă utilizare a buclelor cu text text pe ecran.
  • Programe pentru calcularea numerelor factoriale și Fibonacci .
  • Quine  este un program care se imprimă singur.
  • JAPH .

Note

  1. Lumea | Define World la Dictionary.com . Consultat la 23 martie 2012. Arhivat din original pe 16 martie 2012.
  2. Semnificația exactă a „lumii” în „hello world” - Forumurile UNIX și Linux
  3. Semnificația exactă a „hello world” - comp.unix.programmer | Grupuri Google
  4. Kernighan & Ritchie (1988). Limbajul de programare C. Ediția a II-a, p. 6.
  5. Copie arhivată . Consultat la 1 august 2011. Arhivat din original pe 22 august 2011.
  6. Bjarne Stroustrup (1274). Limbajul de programare C++. Ediția a III-a, p. 46.
  7. Bună lume! - Limbajul de programare Rust . Preluat la 29 aprilie 2019. Arhivat din original la 28 martie 2019.

Literatură

Link -uri