# Hello, world

### от Уикипедия, свободната енциклопедия

Hello, world (от англ. "Здравей, свят") е стандартен пример за програмиране в много учебници и ръководства. Широката му употреба се дължи на краткостта, съчетана с показването на основните елементи на всяка програма:

- формат на командите в езика
- команди за извеждане на съобщения към потребителя
- заглавна и завършваща част (при някои езици, напр. блоковите процедурни езици)
- извикване на външни модули (при езиците без входно-изходни операции в основната библиотека)
- създаване на класове (при обектно-ориентирани езици)

По тeзи причина това обикновено е първата програма, използвана от начинаещ програмист на даден език за програмиране. По-долу са дадени примери на някои от езиците.

## [редактиране] Ada

       with Ada.Text_IO;

       procedure Hello is
       begin
          Ada.Text_IO.Put_Line ("Hello, world!");
       end Hello;

## [редактиране] ALGOL

    BEGIN
    FILE F (KIND=REMOTE);
    EBCDIC ARRAY E [0:11];
    REPLACE E BY "HELLO WORLD!";
    WHILE TRUE DO
      BEGIN
      WRITE (F, *, E);
      END;
    END.

## [редактиране] Assembly

### [редактиране] "Само-акумулатор" архитектура: DEC PDP-8, PAL-III асемблер

      *10                   / Избиране на origin на адрес 10,
      STPTR,    0           / в авто-инткрементиран регистър (един от осем - 10-17)

      *200                  / Избиране на origin за текстовата област
      HELLO,  CLA CLL       / Изчистване на AC и Link
              TAD (STRNG-1) / Сетване на низовия указател в PRE-auto-increment регистъра
              DCA STPTR     /   :
      NEXT,   CLA CLL       / Изчистване на AC и Link още веднъж
              TAD I STPTR   / Взимане на текстов символ недиректно през PRE-auto-increment адрес
              SNA           / Скок ако не е нула (Не е достигнат края на низа)
              HLT           / В противен случай прекъсване при нула (края на стринга)
              TLS           / Отпечатване на символа в АС принтиращата машина
              TSF           / Скок ако принтиращата машина е готова
              JMP .-1       / В противен случай - опитай отначало
              JMP NEXT      / Скок за следващия символ

      STRNG,  310           / H
              345           / e
              354           / l
              354           / l
              357           / o
              254           / ,
              240           / (интервал)
              367           / w
              357           / o
              362           / r
              354           / l
              344           / d
              241           / !
              0             / Край на низа

### [редактиране] Първа сполучлива uP/OS комбинация: Intel 8080/Zilog Z80, CP/M Операционна система, RMAC асемблер

    bdos    equ    0005H    ; BDOS стартова точка
    start:  mvi    c,9      ; BDOS функция: отпечатване на низ
            lxi    d,msg$   ; адрес на съобщението
            call   bdos
            ret             ; връщане в CCP

    msg$:   db    'Hello, world!$'
    end     start

### [редактиране] Акумулатор + Индексен регистър: MOS Technology 6502, CBM KERNAL, ca65 асемблер

    MSG:   .ASCIIZ "Hello, world!"
            LDX    #$F3
    @LP:    LDA    MSG-$F3,X ; Зареждане на символа
            JSR    $FFD2     ; CHROUT (KERNAL), отпечатване на текущото у-во (екрана)
            INX
            BNE    @LP       ;
            RTS

### [редактиране] Раширена акумулаторна машина: Intel x86, Linux, GAS

    .data
    msg:
        .ascii     "Hello, world!\n"
        len = . - msg
    .text
        .global _start
    _start:
        movl        $len,%edx
        movl        $msg,%ecx
        movl        $1,%ebx
        movl        $4,%eax
        int $0x80
        movl        $0,%ebx
        movl        $1,%eax
        int $0x80

### [редактиране] RISC процесор: ARM, RISC OS, BBC BASIC's инлайн асемблер

    .program
             ADR R0,message
             SWI "OS_Write0"
             SWI "OS_Exit"
    .message
             DCS "Hello, world!"
             DCB 0
              ALIGN

### [редактиране] RISC Процесор: MIPS

             .data
    msg:     .asciiz "Hello, world!"
             .align 2
             .text
             .globl main
    main:
             la $a0,msg
             li $v0,4
             syscall
             jr $ra

## [редактиране] BASIC

### [редактиране] Класически BASIC

    10 PRINT "Hello, world!"
    20 END

### [редактиране] Модерен BASIC

    PRINT "Hello, Wolrd!"
    END

## [редактиране] BCPL

    GET "LIBHDR"

    LET START () BE
    $(
        WRITES ("Hello, world!*N")
    $)

## [редактиране] C

    #include <stdio.h>

    int main(void)
    {
        printf("Hello, world!\n");
        return 0;
    }

## [редактиране] C++

    #include <iostream>

    int main(int argc, char *argv[])
    {
        std::cout << "Hello, world" << std::endl;
        return 0;
    }

По принцип числата в началото на всеки ред не трябва се въвеждат, но в случая така е по-лесно за обяснение.

В ред 1 думата #include означава, че във вашия файл трябва да се вкара съдържанието на друг файл, в случая iostream.h. Ако името на файла е оградено със знаци за по-малко и по-голямо (< и >), то C++ ще потърси този файл в системната му директория за заглавни файлове. Ако името на файла е оградено с двойни кавички, то C++ ще търси за файла в същата директория, в която се намира сорс-файлът. Освен това може да зададете и пътя до търсения файл също в кавички (примерно `#include "mydefs.h"`).

Редовете 2, 4 и 8 са празни и са сложени само за прегледност, бихте могли и да ги изтриете.

Ред 3 позволява по-удобно обръщане към стандартните библиотеки, които са в пространството от имена std.

Ред 5 дефинира функцията, която всяка C++ програма трябва да има — main. Когато стартирате програмата, системата ще извика тази функция. Редове 6 и 10 указват начало и край на тялото на функцията main. Между тези две фигурни скоби се пише самия код.

Ред 7 започва с cout, или стандартния изходен поток (на български — екран ). След това следва оператора <<, който в случая се използва за изкарване на текст, който се въвежда в кавички. Накрая изкарвате и модификатора endl, който изкарва нов ред. Бихте могли да използвате и форматиращия символ \n, но ще трябва да го сложите вътре в кавичките, ето така:

    cout << "Hello, World\n";

Най-накрая, имате точка и запетая (;). Всеки ред в C++ завършва с този знак, освен фигурните скоби и редовете, започващи с # (като `#include <iostream>`).

На ред 9 указвате стойността, която програмата ви ще върне на системата. Обикновено се използва 0, ако изпълнението на програмата е минало успешно, и някаква друга стойност, ако при изпълнението е имало грешка.

Всъщност тази програма изкарва на екрана низа „Hello, World“ и премества курсора на нов ред.

## [редактиране] C#

    using System;

    class HelloWorldApp {
        public static void Main() {
            Console.WriteLine("Hello, world!");
        }
    }

## [редактиране] Forth

       ." Hello, world!" CR

## [редактиране] FORTRAN

       program hello
           write (*,*) 'Hello, world!'
       end program hello

## [редактиране] Java

       public class Hello {
           public static void main(String[] args) {
               System.out.println("Hello, world!");
           }
       }

Принципно погледнато не е необходимо класът да е публичен. Ако класът е публичен както в примера е необходимо файлът съдържащ кодът на програмта да е със същото име като класът (включително главните и малките букви) и разширение java, т.е. Този пример трябва да се намира във файл Hello.java.

## [редактиране] JavaScript

    document.writeln('Hello, world!');

## [редактиране] LISP

    (PRINT "Hello, world!")

## [редактиране] MS-DOS batch

    @echo Hello, world!

За MS-DOS 3.0 или по стар:

    echo off
    cls
    echo Hello, world!

## [редактиране] Pascal

       Program Hello;
       begin
           WriteLn('Hello, world!');
       end.

## [редактиране] PHP

       <?php
       echo "Hello, world!\n";
       ?>

или

       <?="Hello World!\n"?>

(Забележка: Трябва да са разрешени short_open_tags (short_open_tag = On) в php.ini short open tags) (Не е препоръчително, възможни конфликти с XML!)

## [редактиране] PL/I

       Test: proc options(main) reorder;
         put skip edit('Hello, world!') (a);
       end Test;

## [редактиране] Prolog

       write('Hello world'),nl.

## [редактиране] Python

       write('Hello world'),nl.

## [редактиране] Perl5

      print "Hello world\n";

## [редактиране] Perl6

      say "Hello world";

## [редактиране] Seed7

      $ include "seed7_05.s7i";

      const proc: main is func
        begin
          writeln("Hello, world!");
        end func;

## [редактиране] Tex

    Hello world
    \bye

## [редактиране] Visual Basic

    Sub Main
      MsgBox "Hello, world!"
    End Sub

## [редактиране] Visual Basic .NET

    Module HelloWorldApp
       Sub Main()
          System.Console.WriteLine("Hello, world!")
       End Sub
    End Module

## [редактиране] XUL

XUL e xml базиран език, разработен от Mozilla.

    <?xml-stylesheet href="chrome://global/skin" type="text/css" ?>
    <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
            align="center" pack="center" flex="1">
      <description>Hello, world!</description>
    </window>

## [редактиране] Външни препратки

- "Здравей, Свят!" на различни компютърни езици

Взето от „http://bg.wikipedia.org../../../h/e/l/Hello%2C_world.html“.

Категории: Програмиране

##### Views

- Статия
- Беседа
- Текуща версия

##### Търсене

##### На други езици

- Azərbaycan
- Català
- Česky
- Dansk
- Deutsch
- English
- Español
- Eesti
- Euskara
- Français
- עברית
- Magyar
- Interlingua
- Bahasa Indonesia
- Italiano
- 日本語
- 한국어
- Nederlands
- Norsk (nynorsk)
- Norsk (bokmål)
- Polski
- Português
- Română
- Русский
- Simple English
- Slovenčina
- Slovenščina
- Svenska
- ไทย
- Tiếng Việt
- 中文