Hello World
Hello world (u prevodu „Zdravo svete“) je ustaljena rečenica koja se prikazuje na izlaznom medijumu prilikom pokretanja demonstrativnih programa nekog programskog jezika. Otuda i ime ovakvih programa. Uobičajeno je da se prilikom prikaza nekog novog programskog jezika na početku priručnika prikaže kako izgleda na tom jeziku štampa jednostavne poruke. Ovo često služi za međusobno poređenje jezika, odnosno njihove kompleksnosti.
Ovaj primer se prvi put pojavio u knjizi The C Programming Language, autora Brajana Kernigana i Denisa Ričija, izdatoj 1978. godine. Na srpski jezik ova knjiga je prevedena pod naslovom „Programski jezik C“. Na početku knjige se, u želji da se prikaže odmah kako izgleda taj novi jezik, nalazi kratak primer koji nešto ispisuje na ekran. Primer iz knjige ispisuje "hello, world
" (bez velikih slova i znaka uzvika). Kasnije se ovaj primer malo prilagodio, a za naše potrebe je i preveden.[1][2]
Ovaj primer se često koristi da bi se testirao novo instalirani programski jezik, odnosno njegov prevodilac, razvojno ili radno okruženje. Smatra se dovoljno jednostavnim, ali reprezentativnim test-primerom za ovu svrhu.
U nastavku slede primeri programa Hello World na raznim programskim jezicima.[3]
Programski jezici
urediActionScript 3.0
ureditrace ("Hello, world!");
Ada
urediwith TEXT_IO;
procedure HELLO is
begin
TEXT_IO.PUT_LINE ("Zdravo svete!");
end HELLO;
APL
uredi'Zdravo svete!'
ASP
urediASP je skraćenica od Active Server Pages.
<%
Response.Write("Zdravo svete!")
%>
AWK
urediBEGIN { print "Zdravo svete!" }
Bash (Bourne Again SHell)
urediPrvi red koda označava lokaciju izvršne datoteke interpretera, pa može biti različit od sistema do sistema.
#!/usr/bin/bash
echo "Zdravo svete!"
BASIC
urediSve ANSI/ISO implementacije bejsik prevodioca prepoznaju sledeće instrukcije
10 PRINT "Zdravo svete!" 20 END
Od kada se i bejsik prilagodio tendencijama strukturnog programiranja nije neophodno navesti brojne oznake za naredbe, pa prethodni primer na većini modernih prevodilaca može izgledati ovako
PRINT "Zdravo svete!" END
Ovde valja naglasiti da END naredba nije neophodna kod svih prevodilaca.
BeanShell
urediprint("Zdravo svete!");
C
uredi#include <stdio.h>
int main(void)
{
printf("Zdravo svete!");
return 0;
}
C++
uredi#include <iostream>
using namespace std;
int main()
{
cout << "Zdravo svete!";
return 0;
}
U principu nije neophodno naznačiti korišćenje nejmspejsa (namespace) std:
#include <iostream>
int main()
{
std::cout << "Zdravo svete!";
return 0;
}
Premda se korišćenje članica istog može i selektivno naznačiti:
#include <iostream>
using std::cout;
int main()
{
cout << "Zdravo svete!";
return 0;
}
C++/CLI
urediint main() { System::Console::WriteLine("Zdravo svete!"); }
C#
uredinamespace Hi
{
class Hi
{
static void Main(string[] args)
{
System.Console.Write("Zdravo svete!");
}
}
}
COBOL
urediidentification division. program-id. hello-world. procedure division. display "Zdravo svete!" stop run.
ColdFusion
uredi<cfoutput>Zdravo svete!</cfoutput>
Forth
urediZa ispis poruke "Zdravo svete!", u interaktivnom načinu rada, može da posluži sledeći kod:
." Здраво свете!"
Ispis možemo da "ulepšamo" izdvajajući ga u poseban red na sledeći način:
CR ." Здраво свете!" CR
U programskom jeziku Fort možemo da definišemo novu reč Поздрав
koja će da uradi isti posao:
: Поздрав CR ." Здраво свете!" CR ;
FORTRAN
urediPROGRAM HI
PRINT *, "Zdravo svete!"
END PROGRAM
Go
urediSledeći gou program ispisuje "Zdravo svete!":
package main
import "fmt"
func main() {
fmt.Printf("Здраво свете!\n")
}
Groovy
urediSledeći Groovy program ispisuje "Zdravo svete!":
println "Здраво свете!"
Haskell
uredimain :: IO () main = putStr "Zdravo svete!"
Java
urediNapomena: fajl treba da bude snimljen pod imenom hi.java da bi mogao biti kompajliran.
public class hi {
public static void main(String args[])
{
System.out.print("Zdravo svete!");
}
}
JavaScript
urediNapomena: Tagovi <script>...</script> su prisutni u ovim primerima iako nisu obavezni delovi JavaScript programa, tj. ne pišu se u istom fajlu kao i program prilikom pisanja programa u jednom eksternom JavaScript fajlu (ekstenzija *.js).
Prvi primer ispisuje tekst direktno na mestu gde se ovaj fragment koda nalazi.
<script type="text/javascript">
document.write("Zdravo svete!");
</script>
Drugi primer ispisuje tekst u konzolu.
console.log("Zdravo svete!");
LaTeX
uredi\documentclass{article}
\begin{document}
Zdravo, svete!
\end{document}
Logo
urediSledeći kod programskog jezika logo ispisaće "Zdravo svete!" u interaktivnom načinu rada:
PRINT [Zdravo svete!]
Procedura sa imenom Pozdrav
, koja ima isto dejstvo kao i kod iznad, može da izgleda ovako:
TO Pozdrav PRINT [Zdravo svete!] END
MATLAB
uredifprintf('Zdravo svete!');
Modula-2
urediMODULE Pozdrav; FROM InOut IMPORT WriteString, WriteLn; BEGIN WriteString("Zdravo svete!"); WriteLn END Pozdrav.
Natural
urediWRITE 'Zdravo svete!' * END
Objective C
uredi#import <stdio.h>
int main()
{
puts("Zdravo svete!");
return 0;
}
Pascal
urediprogram Zdravo (output );
begin
writeln('Zdravo svete!')
end.
Perl
urediprint "Zdravo svete!";
PHP
uredi<?php
echo "Zdravo svete!";
?>
Ovaj program na PHP ima i ekvivalenata (upoređeno prema izlazu):
<?php
print("Zdravo svete!");
?>
<?="Zdravo svete!"?>
Pike
urediint main() { write("Zdravo svete!"); return 0; }
Python
urediZa ispis teksta "Здраво свете!" (bez znakova navoda), u verzijama Pajton jezika koje prethode verziji 3.0, može da se upotrebi sledeći kod:
print 'Здраво свете!'
U verziji jezika 3.0 sintaksa je nešto izmenjena. Gornji primer bi izgledao ovako:
print('Здраво свете!')
Isti tekst, ali ovoga puta zajedno sa navodnicima, mogao bi da bude prikazan izvršavanjem sledećeg koda:
'Здраво свете!'
Ruby
urediputs "Zdravo svete!"
Seed7
uredi$ include "seed7_05.s7i"; const proc: main is func begin writeln("Zdravo svete!"); end func;
SmallTalk
urediTranscript show: 'Zdravo svete!'
TeX
urediЗдраво, Свете
\bye % marks the end of the file; not shown in the final output
Visual Basic
uredi Sub Main()
Print "Zdravo svete!"
End Sub
испиши ("Здраво свете!");
Specifikacije
urediWin32
urediSledeći program otvara kutijicu za poruke (engl. message box).
#include <windows.h> int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { MessageBox(HWND_DESKTOP, "Zdravo svete!", "Zdravo-svete program", MB_OK); return 0; }
Sledeći program pravi mali prozor u kome se ispisuje tekst „Zdravo svete!“.
#include <windows.h> // Deklaracija procadure LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char *szClassName = "GlavniProzor"; HINSTANCE hInstance; // Glavna funkcija programa int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { HWND hwnd; MSG msg; WNDCLASSEX wincl; hInstance = hInst; // --- Definisanje klase prozora ------------------ wincl.cbSize = sizeof(WNDCLASSEX); wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.style = 0; wincl.hInstance = hInstance; wincl.lpszClassName = szClassName; wincl.lpszMenuName = NULL; wincl.lpfnWndProc = WndProc; // dodeljivanje procedure klasi prozora wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor(NULL, IDC_ARROW); // --- Registracija klase prozora ----------------- if(!RegisterClassEx(&wincl)) return 0; // --- Stvaranje prozora -------------------------- hwnd = CreateWindowEx( 0,szClassName,"Zdravo svete", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 200, 80, NULL, NULL, hInstance, NULL ); // --- Prikazivanje prozora ----------------------- ShowWindow(hwnd, nCmdShow); // --- Glavna petlja programa --------------------- while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } // Procedura LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { PAINTSTRUCT ps; HDC hdc; switch(message) { case WM_PAINT: // ispisivanje poruke hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 50, 18, "Zdravo svete!", 13); EndPaint(hwnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
Izvori
uredi- ^ Brian W. Kernighan (Author), Dennis M. Ritchie (1988). C Programming Language (2. izd.). Prentice Hall. ISBN 9780131103627.
- ^ Stroustrup, Bjarne (1997). C++ Programming Language (3. izd.). Addison-Wesley Professional. ISBN 9780201327557.
- ^ Y. Daniel Liang (2010). Introduction to Java Programming, Comprehensive (8. izd.). Prentice Hall. ISBN 9780132130806.
Literatura
uredi- Y. Daniel Liang (2010). Introduction to Java Programming, Comprehensive (8. izd.). Prentice Hall. ISBN 9780132130806.
- Stroustrup, Bjarne (1997). C++ Programming Language (3. izd.). Addison-Wesley Professional. ISBN 9780201327557.
- Brian W. Kernighan (Author), Dennis M. Ritchie (1988). C Programming Language (2. izd.). Prentice Hall. ISBN 9780131103627.