stringtranslate.com

"Привет, мир!" программа

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

История

"Привет, мир!" программа, написанная от руки на языке Си и подписанная Бриа Керг ( Brian Kernighan , 1978)

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

main ( ) { printf ( «привет, мир» ); }   

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

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

main ( ) { extern a , b , c ; путчар ( а ); путчар ( б ); путчар ( с ); putchar ( ' !* n ' ); } ' ад ' ; _ поклон ' ; _ _ _ _ c ' мир ' ;               

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

В The Jargon File сообщается, что слово «hello, world» возникло в 1967 году на языке BCPL . [5] За пределами вычислений использование этой фразы началось более десяти лет назад; это была крылатая фраза диск-жокея нью-йоркского радио Уильяма Б. Уильямса, начиная с 1950-х годов. [6]

Вариации

«Привет, мир!» программа, работающая на PlayStation Portable от Sony, в качестве доказательства концепции

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

Тест обработки на станке с ЧПУ в Perspex

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

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

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

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

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

Время приветствовать мир

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

Статьи Википедии, содержащие фразу «Hello, World!» программы

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

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

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

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