"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]
Время Привет, мир
«Время приветствовать мир» (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 .
- ^ «Язык программирования Б» .
- ^ BCPL , Файл жаргона
- ^ "Уильям Б. Уильямс, Радио-личность, умирает", The New York Times , 4 августа 1986 г.
- ^ а б О'Дуайер, Артур (сентябрь 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 года.
- ^ Сильва, Майк (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 года .
- ^ Джолиф, Кристоф (январь 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» . helloworldcollection.de .
- «Привет, мир / Текст» . Розеттский кодекс .
- "GitHub - leachim6 / hello-world: Привет, мир на всех компьютерных языках. Спасибо всем, кто вносит свой вклад в это, обязательно посетите CONTRIBUTING.md для получения инструкций по участию!" .
- «Невоспетые герои ИТ / Часть первая: Брайан Керниган» . TheUnsungHeroesOfIT.com . Архивировано из оригинала на 2016-03-26 . Проверено 23 августа 2014 .