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

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

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

История

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

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

главный( ) {        printf("Привет, мир");}

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

Версии на языке C предшествовала собственная версия Кернигана 1972 года. Учебное введение в язык B,[5] где первая известная версия программы находится в примере, используемом для иллюстрации внешних переменных:

главный( ) {    внешний а, б, c;    путчар(а); путчар(б); путчар(c); путчар('!*п');} а 'ад';б 'о, ш';c 'Orld';

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

В Файл жаргона утверждает, что "Hello, World!" возникла вместо BCPL (1967).[6] Это утверждение предположительно подтверждается архивными записями изобретателей BCPL, Брайан Керниган в Принстон и Мартин Ричардс в Кембридж.

Вариации

A "Привет, мир!" программа работает на Sony PlayStation портативный как доказательство концепции

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

Фраза "Hello World!" видел различные отклонения в пунктуации и регистре, например наличие запятой и восклицательного знака, а также использование заглавных букв в начале ЧАС и W. Некоторые устройства ограничивают формат определенными вариациями, например, версии с заглавными буквами в системах, поддерживающих только заглавные буквы, а некоторые эзотерические языки программирования возможно, придется напечатать слегка измененную строку. Например, первая нетривиальная Мальболге программа напечатала "HEllO WORld", это было определено как достаточно хорошо.[8] В качестве вывода использовались другие человеческие языки; например, учебник для Язык программирования Go выводил как английские, так и китайские символы, демонстрируя встроенные в язык программирования Unicode поддерживать.[9]

Некоторые языки изменяют функциональность "Hello, World!" программу, сохраняя дух демонстрации простого примера. Функциональное программирование языки, такие как Лисп, ML и Haskell, как правило, заменяют факториал программа для «Hello, World!», поскольку функциональное программирование делает упор на рекурсивные методы, тогда как оригинальные примеры делают упор на ввод-вывод, что нарушает дух чистого функционального программирования, производя побочные эффекты. Языки, в противном случае способные печатать "Hello, World!" (Сборка, C, VHDL ) также может использоваться в встроенные системы, где текстовый вывод либо затруднен (требуются дополнительные компоненты или связь с другим компьютером), либо отсутствует. Для таких устройств, как микроконтроллеры, программируемые вентильные матрицы, и CPLD, "Привет, мир!" может быть заменен мигающим ВЕЛ, который демонстрирует время и взаимодействие между компонентами.[10][11][12][13][14]

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

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

Привет, мир

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

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

Рекомендации

  1. ^ Джеймс А. Лэнгбридж (3 декабря 2013 г.). Профессиональная разработка встраиваемых ARM. ISBN  9781118887820.
  2. ^ "синобиторг / железо". GitHub.
  3. ^ Керниган, Брайан В.; Ричи, Деннис М. (1978). Язык программирования C (1-е изд.). Энглвуд Клиффс, Нью-Джерси: Prentice Hall. ISBN  0-13-110163-3.
  4. ^ Керниган, Брайан (1974). «Программирование на C: Учебник» (PDF). Bell Labs. Получено 9 января 2019.
  5. ^ "Язык программирования B".
  6. ^ BCPL, Файл жаргона
  7. ^ а б О'Дуайер, Артур (сентябрь 2017 г.). Освоение C ++ 17 STL: полное использование компонентов стандартной библиотеки в C ++ 17. Packt Publishing Ltd. п. 251. ISBN  978-1-78728-823-2. Получено 4 декабря 2019.
  8. ^ "Мальболге". Эсоланг. esolangs-wiki. Получено 28 октября 2016.
  9. ^ Учебник по языку программирования Go. В архиве 26 июля 2010 г. Wayback Machine Язык программирования Go. Проверено 26 июля 2011 года.
  10. ^ Сильва, Майк (11 сентября 2013 г.). «Введение в микроконтроллеры - Hello World». EmbeddedRelated.com. Получено 19 мая 2015.
  11. ^ Джордж, Лиго. «Мигающий светодиод с использованием микроконтроллера Atmega32 и Atmel Studio». электро. Получено 19 мая 2015.
  12. ^ PT, Ранджит. «2. Микроконтроллеры AVR в Linux HOWTO». Проект документации Linux. Получено 19 мая 2015.
  13. ^ Андерссон, Свен-Оке (2 апреля 2012 г.). «3.2 Первая разработка Altera FPGA». RTE. Встроенный AB в реальном времени. Архивировано из оригинал 21 мая 2015 г.. Получено 19 мая 2015.
  14. ^ Фабио, Адам (6 апреля 2014 г.). «Учебное пособие по CPLD: изучайте программируемую логику простым способом». Hackaday. Получено 19 мая 2015.
  15. ^ «Привет - Проект GNU - Фонд свободного программного обеспечения». gnu.org. Проект GNU. Архивировано из оригинал 29 мая 2014 г.. Получено 7 июля 2017.
  16. ^ Джолиф, Кристоф (январь 2003 г.). «Внедрение возможностей SVG в приложения Java». Сеть разработчиков Sun.
  17. ^ де Динешин, Кристоф (24 июля 2010 г.). "Привет, мир!". Гренуй Буйли.
  18. ^ «Обучение программированию поколения Nintendo» (PDF). bfoit.org. Архивировано из оригинал (PDF) на 2016-05-05. Получено 2015-12-27.
  19. ^ Вигерс, Гарольд. «Важность эффективной программы API« Время в первый раз, привет, мир! »».
  20. ^ Джин, Бренда; Сахни, Саураб; Шват, Амир (29 августа 2018 г.). Проектирование веб-API: создание API, полюбившихся разработчикам. O'Reilly Media. ISBN  9781492026877. Получено 19 февраля 2020.

внешняя ссылка