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