"Привет, мир!" программа -"Hello, World!" program

"Hello, World!" Программа обычно представляет собой компьютерную программу, которая выводит или отображает сообщение «Hello, World!». Такая программа очень проста для большинства языков программирования и часто используется для иллюстрации основного синтаксиса языка программирования. Часто это первая программа, написанная людьми, которые учатся программировать. Его также можно использовать в качестве проверки работоспособности, чтобы убедиться, что компьютерное программное обеспечение, предназначенное для компиляции или запуска исходного кода, правильно установлено и что оператор понимает, как его использовать.

История

"Привет, мир!" программа Брайана Кернигана (1978)

Хотя небольшие тестовые программы существуют с момента разработки программируемых компьютеров , существует традиция использовать фразу «Hello, World!». на тестовое сообщение повлиял пример программы из основополагающей книги 1978 года «Язык программирования Си» . Пример программы в этой книге печатает "Привет, мир", и был унаследован от внутреннего меморандума Bell Laboratories 1974 года Брайана Кернигана , Programming in C: A Tutorial :

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

В приведенном выше примере главный( ) функция определяет, где программа должна начать выполнение . Тело функции состоит из одного оператора , вызова функцииprintfфункция, которая означает « печать с форматированием». Эта функция заставит программу выводить все, что ей передано в качестве параметра , в данном случае строку Привет, мир, за которым следует символ новой строки .

Версии языка C предшествовал собственный учебник Кернигана 1972 года A Tutorial Introduction to the Language B , где первая известная версия программы находится в примере, используемом для иллюстрации внешних переменных:

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

Программа также печатает Привет, мир!на терминале, включая символ новой строки . Фраза разделена на несколько переменных, поскольку в B символьная константа ограничена четырьмя символами ASCII . Предыдущий пример в учебнике напечатанПривет! на терминале, а фраза Привет, мир! было введено как немного более длинное приветствие, для выражения которого требовалось несколько символьных констант.

В « Жаргонном файле» говорится: «Привет, мир!» возникла вместо этого с BCPL (1967). Это утверждение предположительно подтверждается архивными записями изобретателей BCPL Брайана Кернигана из Принстона и Мартина Ричардса из Кембриджа . Эта фраза предшествовала более чем десятилетию ее использования в вычислительной технике; еще в 1950-х годах это была фраза радиодиск -жокея Уильяма Б. Уильямса .

Вариации

A "Привет, мир!" программа, запущенная на Sony PlayStation Portable в качестве доказательства концепции

"Привет, мир!" программы различаются по сложности на разных языках. В некоторых языках, особенно языках сценариев , "Hello, World!" Программа может быть написана как один оператор, в то время как в других (особенно во многих низкоуровневых языках ) может потребоваться гораздо больше операторов. Например, в Python для печати строкиПривет, мир!за которым следует новая строка, нужно только написать . Напротив, эквивалентный код в C ++ [1] требует импорта библиотеки программного обеспечения ввода / вывода , ручного объявления точки входа и явной инструкции о том, что строка вывода должна быть отправлена ​​в стандартный поток вывода . Как правило, языки программирования, которые дают программисту больший контроль над машиной, приводят к созданию более сложных программ «Hello, World». print("Hello, World!")

Фраза "Hello World!" видел различные отклонения в пунктуации и корпуса, например, при наличии запятой и восклицательного знака, и капитализации ведущих H и W . Некоторые устройства ограничивают формат определенными вариациями, например, версии с заглавными буквами в системах, которые поддерживают только заглавные буквы, в то время как некоторые эзотерические языки программирования могут печатать слегка измененную строку. Например, первая нетривиальная программа Malbolge напечатала «Hello world», что было определено как достаточно хорошее . В качестве вывода использовались другие человеческие языки; например, учебное пособие по языку программирования Go выводило как английские, так и китайские или японские символы, демонстрируя встроенную в язык программирования поддержку Unicode .

"Привет, мир!" сообщение, отображаемое через световую картину с длинной выдержкой с движущейся полосой светодиодов

Некоторые языки изменяют функциональность "Hello, World!" программа, сохраняя при этом дух демонстрации простого примера. Языки функционального программирования , такие как Lisp , ML и Haskell , как правило, заменяют "Hello, World!" Факториальной программой, поскольку функциональное программирование подчеркивает рекурсивные методы, тогда как исходные примеры делают упор на ввод-вывод, что нарушает дух чисто функционального программирования. программирование, вызывая побочные эффекты . Языки, которые в противном случае могли бы печатать "Hello, World!" (Assembly, C, VHDL ) также можно использовать во встроенных системах , где вывод текста либо затруднен (требуются дополнительные компоненты или связь с другим компьютером), либо отсутствует. Для таких устройств, как микроконтроллеры , программируемые вентильные матрицы и CPLD , "Hello, World!" таким образом, может быть заменен мигающим светодиодом , который демонстрирует синхронизацию и взаимодействие между компонентами.

В дистрибутивах Debian и Ubuntu Linux есть сообщение «Hello, World!». программы через их системы управления пакетами программного обеспечения , которые можно вызвать с помощью командыПривет. Он служит проверкой работоспособности и простым примером установки программного пакета. Для разработчиков это пример создания пакета .deb , традиционно или с использованием debhelper , а также версияПриветИспользуемый GNU Hello служит примером написания программы GNU .

Вариации "Hello, World!" программы, которые производят графический вывод (в отличие от вывода текста), также были показаны. Sun продемонстрировала "Hello, World!" программа на Java, основанная на масштабируемой векторной графике , а в языке программирования XL есть вращающееся слово "Hello, World!" с использованием компьютерной 3D-графики . Марк Гуздиал и Эллиот Солоуэй предположили, что тестовое сообщение «привет, мир» может быть устаревшим, поскольку графикой и звуком можно манипулировать так же легко, как текстом.

Время Привет, мир

«Время приветствовать мир» (TTHW) - это время, необходимое для написания «Hello, World!» программа на заданном языке программирования. Это один из показателей простоты использования языка программирования; поскольку программа предназначена для ознакомления людей, незнакомых с языком, более сложное "Hello, World!" программа может указывать на то, что язык программирования менее доступен. Эта концепция была распространена не только на языки программирования, но и на API-интерфейсы , поскольку это мера того, насколько просто новому разработчику получить работающий базовый пример; меньшее время указывает на более легкий API для разработчиков.

Примеры

БАЗОВЫЙ

10 PRINT "Hello, World!"
20 END

Партия

@echo off
echo Hello World!

Баш

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

Дротик

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

Фортран

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

Идти

package main
import "fmt"

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

Haskell

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

Джава

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

JavaScript

console.log("Hello World!");

Цель-C

#import <Foundation/Foundation.h>

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

Паскаль

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

Perl

print "Hello World!\n";

PHP

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

PowerShell

Write-Host 'Hello World!'

Python

print("Hello World!")

Рубин

puts"Hello World!"

Ржавчина

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

Быстрый

print("Hello, World!")

Lua

print("Hello, World!")

Смотрите также

использованная литература

внешние ссылки