Из Википедии, бесплатной энциклопедии
  (Перенаправлено из программы Hello World )
Перейти к навигации Перейти к поиску
"Привет, мир!" сообщение отображается через световую картину с длинной выдержкой с движущейся полосой светодиодов

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

История [ править ]

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

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

main (  )  {  printf ( "привет, мир \ п " ); }

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

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

main (  )  {  extern  a ,  b ,  c ;  путчар ( а );  путчар ( б );  путчар ( с );  путчар ( ' ! * п ' ); }  « ад » ; б  ' о ,  ш ' ; c  ' orld ' ;

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

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

Варианты [ править ]

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

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

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

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

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

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

Время Hello World [ править ]

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

См. Также [ править ]

  • C (язык программирования) § Пример "Hello, world"
  • "99 бутылок пива" в информатике.
  • Foobar
  • Плохое яблоко!! (графический эквивалент «Hello, World!» для старого оборудования)
  • Зоомагазин Java
  • Еще один хакер на Perl
  • Список основных тем по информатике
  • Алгоритм Трабба Пардо-Кнута

Ссылки [ править ]

  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. ^ "Уильям Б. Уильямс, Радио-личность, умирает", The New York Times , 4 августа 1986 г.
  8. ^ a b О'Дуайер, Артур (сентябрь 2017 г.). Освоение C ++ 17 STL: в полной мере используйте компоненты стандартной библиотеки в C ++ 17 . Packt Publishing Ltd . п. 251. ISBN. 978-1-78728-823-2. Дата обращения 4 декабря 2019 .
  9. ^ "Мальболге" . Эсоланг . esolangs-wiki . Проверено 28 октября +2016 .
  10. ^ Учебное пособие по языку программирования Go. Архивировано 26 июля 2010 года на Wayback Machine The Go Programming Language. Проверено 26 июля 2011 года.
  11. Перейти ↑ Silva, Mike (11 сентября 2013 г.). «Введение в микроконтроллеры - Hello World» . EmbeddedRelated.com . Дата обращения 19 мая 2015 .
  12. ^ Джордж, Лиго. «Мигающий светодиод с использованием микроконтроллера Atmega32 и Atmel Studio» . electroSome . Дата обращения 19 мая 2015 .
  13. ^ PT, Ранджит. «2. Микроконтроллеры AVR в Linux HOWTO» . Проект документации Linux . Дата обращения 19 мая 2015 .
  14. Андерссон, Свен-Оке (2 апреля 2012 г.). «3.2 Первая разработка Altera FPGA» . RTE . Встроенный AB в реальном времени. Архивировано из оригинального 21 мая 2015 года . Дата обращения 19 мая 2015 .
  15. Фабио, Адам (6 апреля 2014 г.). «Учебное пособие CPLD: изучайте программируемую логику простым способом» . Hackaday . Дата обращения 19 мая 2015 .
  16. ^ «Привет - проект GNU - Фонд свободного программного обеспечения» . gnu.org . Проект GNU. Архивировано из оригинального 29 мая 2014 года . Проверено 7 июля 2017 года .
  17. ^ Jolif, Christophe (январь 2003). «Внедрение возможностей SVG в приложения Java». Sun Developer Network .
  18. ^ де Динешин, Кристоф (24 июля 2010 г.). "Привет, мир!" . Гренуй Буйли.
  19. ^ «Обучение программированию поколения Nintendo» (PDF) . bfoit.org . Архивировано из оригинального (PDF) 05.05.2016 . Проверено 27 декабря 2015 .
  20. ^ Вигерс, Гарольд. «Важность эффективной программы API« Пора в первый раз, привет, мир! »» .
  21. Джин, Бренда; Сахни, Саураб; Шват, Амир (29 августа 2018 г.). Проектирование веб-API: создание API, полюбившихся разработчикам . O'Reilly Media. ISBN 9781492026877. Дата обращения 19 февраля 2020 .

Внешние ссылки [ править ]

  • Рёслер, Вольфрам. «Коллекция Hello World» . helloworldcollection.de .
  • «Привет, мир / Текст» . Розеттский кодекс .
  • «Невоспетые герои ИТ / Часть первая: Брайан Керниган» . TheUnsungHeroesOfIT.com . Архивировано из оригинала на 2016-03-26 . Проверено 23 августа 2014 .