Направо към съдържанието

Hello, world

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

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

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

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

    with Ada.Text_IO;

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

„Само-акумулатор“ архитектура: 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
         .data
msg:     .asciiz "Hello, world!"
         .align 2
         .text
         .globl main
main:
         la $a0,msg
         li $v0,4
         syscall
         jr $ra
  echo 'Hello world'
 10 PRINT "Hello, world!"
 20 END
 PRINT "Hello, World!"
 END
GET "LIBHDR"
LET START () BE $( WRITES ("Hello, world!*N") $)
 #include <stdio.h>

 int main(void)
 {
     printf("Hello, world!\n");
     return 0;
 }
 #include <iostream>

 int main()
 {
     std::cout << "Hello, world" << std::endl;
     return 0;
 }
 using System;

 class HelloWorldApp
 {
     public static void Main()
     {
         Console.WriteLine("Hello, world!");
     }
 }
   ." Hello, world!" CR
    program hello
        write (*,*) 'Hello, world!'
    end program hello
    public class Hello {
        public static void main(String[] args) {
            System.out.println("Hello, world!");
        }
    }

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

 document.writeln('Hello, world!');
(PRINT "Hello, world!")
 @echo Hello, world!

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

 echo off
 echo Hello, world!
    Program Hello;
    begin
        WriteLn('Hello, world!');
    end.
    <?php
    echo "Hello, world!\n";
    ?>
   Test: proc options(main) reorder;
     put skip edit('Hello, world!') (a);
   end Test;
    write('Hello world'),nl.
    print('Hello World!')
Perl 5
   print "Hello world\n";
Perl 6
   say "Hello world";
   puts "Hello, world!"
  $ include "seed7_05.s7i";
  const proc: main is func
    begin
      writeln("Hello, world!");
    end func;
Hello world
\bye
Sub Main
  MsgBox "Hello, world!"
End Sub
Module HelloWorldApp
   Sub Main()
      System.Console.WriteLine("Hello, world!")
   End Sub
End Module

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>