"Witaj świecie!" program -"Hello, World!" program

"Hello, World!" program to na ogół program komputerowy, który generuje lub wyświetla komunikat „Hello, World!”. Taki program jest bardzo prosty w większości języków programowania i jest często używany do zilustrowania podstawowej składni języka programowania. Często jest to pierwszy program napisany przez ludzi uczących się kodowania. Może być również używany jako test zdrowego rozsądku, aby upewnić się, że oprogramowanie komputerowe przeznaczone do kompilowania lub uruchamiania kodu źródłowego jest prawidłowo zainstalowane i że operator rozumie, jak z niego korzystać.

Historia

"Witaj świecie!" program Briana Kernighana (1978)

Chociaż małe programy testowe istnieją od czasu rozwoju programowalnych komputerów , tradycja używania wyrażenia „Hello, World!” jako wiadomość testową miał wpływ przykładowy program w przełomowej książce z 1978 r. The C Programming Language . Przykładowy program w tej książce wypisuje „Witaj świecie" i został odziedziczony z wewnętrznego memorandum Bell Laboratories z 1974 r. przez Briana Kernighana , Programowanie w języku C: A Tutorial :

main( ) {
        printf("hello, world\n");
}

W powyższym przykładzie Główny( ) funkcja określa, gdzie program powinien rozpocząć wykonywanie . Ciało funkcji składa się z pojedynczej instrukcji , wywołania funkcjiprintffunkcja, co oznacza „ drukuj sformatowany”. Ta funkcja spowoduje, że program wypisze wszystko, co zostanie mu przekazane jako parametr , w tym przypadku napis Witaj świecie, po którym następuje znak nowej linii .

Wersja w języku C została poprzedzona autorskim A Tutorial Introduction to the Language B firmy Kernighan z 1972 roku , w którym pierwsza znana wersja programu znajduje się w przykładzie służącym do zilustrowania zmiennych zewnętrznych:

main( ) {
    extern a, b, c;
    putchar(a); putchar(b); putchar(c); putchar('!*n');
}
 
a 'hell';
b 'o, w';
c 'orld';

Program również drukuje Witaj świecie!na terminalu, w tym znak nowej linii . Fraza jest podzielona na wiele zmiennych, ponieważ w B stała znakowa jest ograniczona do czterech znaków ASCII . Poprzedni przykład w tutorialu wydrukowanyCześć! na terminalu, a fraza Witaj świecie! zostało wprowadzone jako nieco dłuższe powitanie, które wymagało kilku stałych znaków do jego wyrażenia.

W żargonie pliku twierdzi, że „Hello, World!” zamiast tego pochodzi z BCPL (1967). Twierdzenie to jest rzekomo poparte archiwalnymi notatkami wynalazców BCPL, Briana Kernighana z Princeton i Martina Richardsa z Cambridge . Wyrażenie poprzedzało o ponad dekadę jego użycie w informatyce; już w latach 50-tych było to hasłem radiowego dżokeja Williama B. Williamsa .

Wariacje

„Witaj świecie!” program działający na konsoli PlayStation Portable firmy Sony jako dowód koncepcji

"Witaj świecie!" programy różnią się złożonością w różnych językach. W niektórych językach, zwłaszcza w językach skryptowych , komunikat „Hello, World!” program może być napisany jako pojedyncza instrukcja, podczas gdy w innych (szczególnie w wielu językach niskiego poziomu ) może być wymagane o wiele więcej instrukcji. Na przykład w Pythonie , aby wydrukować ciągWitaj świecie!po którym następuje znak nowej linii, wystarczy napisać . W przeciwieństwie do tego, równoważny kod w C++ [1] wymaga importu biblioteki oprogramowania wejścia/wyjścia , ręcznej deklaracji punktu wejścia i wyraźnej instrukcji, że ciąg wyjściowy powinien zostać wysłany do standardowego strumienia wyjściowego . Ogólnie rzecz biorąc, języki programowania, które dają programiście większą kontrolę nad maszyną, będą skutkować bardziej złożonymi programami "Hello, World". print("Hello, World!")

Wyrażenie „Witaj świecie!” zaobserwował różne odchylenia w interpunkcji i wielkości liter, takie jak obecność przecinka i wykrzyknika oraz pisanie wielkich liter w pierwszych literach H i W . Niektóre urządzenia ograniczają format do określonych odmian, takich jak wersje pisane wyłącznie wielkimi literami w systemach obsługujących tylko wielkie litery, podczas gdy niektóre ezoteryczne języki programowania mogą wymagać drukowania nieznacznie zmodyfikowanego ciągu. Na przykład pierwszy nietrywialny program Malbolge'a wydrukował "Hello world", uznając to za wystarczająco dobre . Jako wynik zostały użyte inne języki ludzkie; na przykład samouczek dla języka programowania Go wyprowadzał zarówno znaki angielskie, jak i chińskie lub japońskie, demonstrując wbudowaną obsługę Unicode w języku programowania .

„Witaj świecie!” komunikat wyświetlany poprzez malowanie światłem o długiej ekspozycji z ruchomym paskiem diod LED

Niektóre języki zmieniają funkcjonalność "Hello, World!" program, zachowując ducha demonstrowania prostego przykładu. Funkcjonalne języki programowania , takie jak Lisp , ML i Haskell , mają tendencję do zastępowania programu czynnikowego „Hello, World!”, ponieważ programowanie funkcjonalne kładzie nacisk na techniki rekurencyjne, podczas gdy oryginalne przykłady kładą nacisk na I/O, co narusza ducha czysto funkcjonalnego programowanie poprzez wywoływanie efektów ubocznych . Języki zdolne do drukowania „Hello, World!” (Assembly, C, VHDL ) mogą być również używane w systemach wbudowanych , gdzie wyprowadzanie tekstu jest albo trudne (wymaga dodatkowych komponentów lub komunikacji z innym komputerem), albo nie istnieje. W przypadku urządzeń takich jak mikrokontrolery , programowalne tablice bramek i CPLD , "Hello, World!" można zatem zastąpić migającą diodą LED , która pokazuje czas i interakcję między komponentami.

W Debianie i Ubuntu dystrybucji Linuksa dostarczają „Hello, World!” programu za pomocą systemów zarządzania pakietami oprogramowania , które można wywołać za pomocą poleceniadzień dobry. Służy jako kontrola poprawności i prosty przykład instalacji pakietu oprogramowania. Dla programistów zawiera przykład tworzenia pakietu .deb , tradycyjnie lub przy użyciu debhelper , oraz wersjędzień dobryużywany, GNU Hello , służy jako przykład napisania programu GNU .

Odmiany „Hello, World!” pokazano również program, który generuje wyjście graficzne (w przeciwieństwie do wyjścia tekstowego). Sun zademonstrował "Hello, World!" program w Javie oparty na skalowalnej grafice wektorowej , a język programowania XL zawiera obracającą się Ziemię "Hello, World!" z wykorzystaniem grafiki komputerowej 3D . Mark Guzdial i Elliot Soloway zasugerowali, że wiadomość testowa „hello, world” może być przestarzała, ponieważ grafiką i dźwiękiem można manipulować równie łatwo jak tekstem.

Czas na Witaj świecie

„Time to hello world” (TTHW) to czas potrzebny na napisanie „Hello, World!” program w danym języku programowania. Jest to jedna z miar łatwości użycia języka programowania; ponieważ program ma stanowić wprowadzenie dla osób nieznających języka, bardziej złożone „Hello, World!” program może wskazywać, że język programowania jest mniej przystępny. Koncepcja została rozszerzona poza języki programowania na interfejsy API , jako miara tego, jak proste jest dla nowego programisty uzyskanie działającego podstawowego przykładu; krótszy czas oznacza łatwiejszy do wdrożenia interfejs API dla programistów.

Przykłady

PODSTAWOWY

10 PRINT "Hello, World!"
20 END

Seria

@echo off
echo Hello World!

Grzmotnąć

echo "Hello World!"

C

#include <stdio.h>

int main(void) {
  printf("Hello World!");
}

C++

#include <iostream>

int main() 
{
  std::cout << "Hello World!" << std::endl;
}

C#

using System;
class App
{
  static void Main()
  {
    Console.WriteLine("Hello World!");
  }
}

Clojure

(println "Hello world!")

Strzałka

void main() {
  print('Hello, World!');
}

Fortran

program Hello
  print *, "Hello World!"
end program Hello

Udać się

package main
import "fmt"

func main() {
    fmt.Println("Hello World!")
}

Haskell

main :: IO ()
main = putStrLn "Hello World!"

Jawa

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

JavaScript

console.log("Hello World!");

Cel C

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @mylak {
        NSLog(@"Hello World!");
    }
    return 0;
}

Pascal

program Hello;
begin
  writeln ('Hello World!')
end.

Perl

print "Hello World!\n";

PHP

<?php
echo "Hello World!";
?>

PowerShell

Write-Host 'Hello World!'

Pyton

print("Hello World!")

Rubin

puts"Hello World!"

Rdza

fn main() {
    println!("Hello World!");
}

Szybki

print("Hello, World!")

Lua

print("Hello, World!")

Zobacz też

Bibliografia

Zewnętrzne linki