"Ahoj světe!" program -"Hello, World!" program

A „Ahoj, světe!“ program obecně je počítačový program, který vydává nebo zobrazuje zprávu „Hello, World!“. Takový program je ve většině programovacích jazyků velmi jednoduchý a často se používá k ilustraci základní syntaxe programovacího jazyka. Je to často první program napsaný lidmi, kteří se učí kódovat. Může být také použit jako test rozumnosti, aby se ujistil, že počítačový software určený ke kompilaci nebo spuštění zdrojového kódu je správně nainstalován a že operátor rozumí tomu, jak jej používat.

Dějiny

"Ahoj světe!" program Briana Kernighana (1978)

Přestože malé testovací programy existují již od vývoje programovatelných počítačů , tradice používání fráze „Hello, World!“ jako testovací zpráva byla ovlivněna ukázkovým programem v klíčové knize The C Programming Language z roku 1978 . Ukázkový program v této knize tiskne "Ahoj světe“a byl zděděn z interního memoranda Bell Laboratories z roku 1974 Brianem Kernighanem , Programování v C: Výukový program :

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

Ve výše uvedeném příkladu hlavní( ) funkce definuje, kde by měl program začít vykonávat . Tělo funkce se skládá z jednoho příkazu , voláníprintffunkce, což je zkratka pro „ print f ormatted“. Tato funkce způsobí, že program vydá cokoli, co je mu předáno jako parametr , v tomto případě řetězec Ahoj světe, následovaný znakem nového řádku .

Jazykové verzi C předcházela Kernighanova vlastní příručka 1972 A Tutorial Introduction to the Language B , kde je první známá verze programu nalezena v příkladu používaném k ilustraci externích proměnných:

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

Program také tiskne Ahoj světe!na terminálu, včetně znaku nového řádku . Fráze je rozdělena do více proměnných, protože v B je znaková konstanta omezena na čtyři znaky ASCII . Vytiskl se předchozí příklad v tutoriáluAhoj! na terminálu a frázi Ahoj světe! byl představen jako mírně delší pozdrav, který pro své vyjádření vyžadoval několik konstant znaků.

Soubor Jargon tvrdí, že „ahoj, světe!“ místo toho vznikl s BCPL (1967). Toto tvrzení údajně podporují archivované poznámky vynálezců BCPL, Briana Kernighana z Princetonu a Martina Richardsa z Cambridge . Fráze předcházela více než deset let jeho použití v oblasti výpočetní techniky; už v padesátých letech to byla slogan rádiového diskžokeje Williama B. Williamse .

Variace

A „Ahoj, světe!“ program běžící na Sony PlayStation Portable jako důkaz konceptu

"Ahoj světe!" programy se liší složitostí mezi různými jazyky. V některých jazycích, zejména skriptovacích , je „Hello, World!“ program lze zapsat jako jeden příkaz, zatímco v jiných (zejména mnoha jazycích nízké úrovně ) může být požadováno mnohem více příkazů. Například v Pythonu vytiskněte řetězecAhoj světe!následuje nový řádek, stačí napsat . Naproti tomu ekvivalentní kód v C ++ [1] vyžaduje import knihovny vstupního/výstupního softwaru , ruční deklaraci vstupního bodu a explicitní instrukci, že výstupní řetězec by měl být odeslán do standardního výstupního proudu . Obecně platí, že programovací jazyky, které dávají programátorovi větší kontrolu nad strojem, budou mít za následek složitější programy „Hello, World“. print("Hello, World!")

Fráze „Hello World!“ viděl různé odchylky interpunkce a skříní, jako je například přítomnost čárkou a vykřičníkem, a aktivaci předního H a W . Některá zařízení omezují formát na konkrétní varianty, například verze s velkými písmeny v systémech, které podporují pouze velká písmena, zatímco některé esoterické programovací jazyky mohou muset vytisknout mírně upravený řetězec. Například první netriviální program Malbolge vytiskl „Hello world“, což bylo stanoveno jako dostatečně dobré . Jako výstup byly použity jiné lidské jazyky; například tutoriál pro programovací jazyk Go vygeneroval anglické i čínské nebo japonské znaky, což ukazuje na integrovanou podporu Unicode v programovacím jazyce .

A „Ahoj, světe!“ zpráva se zobrazuje pomocí malování dlouhým expozičním světlem s pohyblivým pruhem LED diod

Některé jazyky mění funkčnost „Hello, World!“ programu při zachování ducha ukázky jednoduchého příkladu. Funkční programovací jazyky, jako Lisp , ML a Haskell , mají tendenci nahrazovat faktoriální program výrazem „Hello, World!“, Protože funkční programování klade důraz na rekurzivní techniky, zatímco původní příklady zdůrazňují I/O, které porušuje ducha čisté funkce programování vytvářením vedlejších účinků . Jazyky jinak schopné tisknout „Hello, World!“ (Assembly, C, VHDL ) lze také použít ve vestavěných systémech , kde je textový výstup buď obtížný (vyžaduje další součásti nebo komunikaci s jiným počítačem), nebo neexistuje. U zařízení, jako jsou mikrokontroléry , polní programovatelná hradlová pole a CPLD , „Hello, World!“ může být tedy nahrazen blikající LED diodou , která ukazuje načasování a interakci mezi součástmi.

Distribuce Debianu a Ubuntu Linux poskytují „Hello, World!“ program pomocí systémů správce softwarových balíků , které lze vyvolat příkazemAhoj. Slouží jako kontrola duševního zdraví a jednoduchý příklad instalace softwarového balíčku. Pro vývojáře poskytuje příklad vytvoření balíčku .deb , tradičně nebo pomocí debhelperu , a verziAhojpoužitý, GNU Hello , slouží jako příklad psaní programu GNU .

Variace „Hello, World!“ program, který produkuje grafický výstup (na rozdíl od textového výstupu), byl také ukázán. Sun předvedl „Hello, World!“ program v Javě založený na škálovatelné vektorové grafice a programovací jazyk XL obsahuje rotující Zemi „Hello, World!“ pomocí 3D počítačové grafiky . Mark Guzdial a Elliot Soloway navrhli, že testovací zpráva „ahoj, svět“ může být nyní zastaralá, protože s grafikou a zvukem lze manipulovat stejně snadno jako s textem.

Čas Hello World

„Time to hello world“ (TTHW) je čas potřebný k napsání „Hello, World!“ program v daném programovacím jazyce. Toto je měřítko snadnosti použití programovacího jazyka; protože program je určen jako úvod pro lidi neznalé jazyka, složitější „Hello, World!“ program může naznačovat, že programovací jazyk je méně přístupný. Tento koncept byl rozšířen nad rámec programovacích jazyků na API , což je měřítkem toho, jak jednoduché je pro nového vývojáře získat základní příklad fungování; kratší čas znamená snazší API pro vývojáře k přijetí.

Příklady

ZÁKLADNÍ

10 PRINT "Hello, World!"
20 END

Šarže

@echo off
echo Hello World!

Bash

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

Šipka

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

Fortran

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

Jít

package main
import "fmt"

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

Haskell

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

Jáva

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

JavaScript

console.log("Hello World!");

Cíl-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!";
?>

Prostředí PowerShell

Write-Host 'Hello World!'

Krajta

print("Hello World!")

Rubín

puts"Hello World!"

Rez

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

Rychlý

print("Hello, World!")

Lua

print("Hello, World!")

Viz také

Reference

externí odkazy