"Привет, мир!" программа
« Привет, мир!» Программа обычно представляет собой простую компьютерную программу , которая выводит (или отображает) на экран (часто консоль ) сообщение, похожее на «Hello, World!» игнорируя любой ввод пользователя. Небольшой фрагмент кода на большинстве языков программирования общего назначения языка . Эта программа используется для иллюстрации основного синтаксиса . «Привет, мир!» программа часто является первой, написанной студентом, изучающим новый язык программирования, [1] но такую программу можно также использовать для проверки работоспособности , чтобы убедиться, что компьютерное программное обеспечение, предназначенное для компиляции или запуска исходного кода , правильно установлено и что его оператор понимает, как его использовать.
История
[ редактировать ]Хотя небольшие тестовые программы существовали со времен разработки программируемых компьютеров , традиция использования фразы «Hello, World!» поскольку на тестовое сообщение повлиял пример программы из книги « Язык программирования C» 1978 года , [2] с вероятным более ранним использованием в BCPL . Пример программы из книги печатает "Привет, мир" и был унаследован из Bell Laboratories внутреннего меморандума 1974 года Брайана Кернигана « Программирование на C: Учебное пособие» : [3]
main( ) {
printf("hello, world");
}
В приведенном выше примере основной( ) Функция определяет, где программа должна начать выполнение . Тело функции состоит из одного оператора — вызова метода печатьф() функция, которая расшифровывается как « формат печати »; он выводит на консоль все, что передается ему в качестве параметра , в данном случае строку "Привет, мир" .
Версии на языке C предшествовала книга Кернигана «Введение в язык B» 1972 года . [4] где первая известная версия программы находится в примере, используемом для иллюстрации внешних переменных:
main( ) {
extrn a, b, c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
Программа выше печатает Привет, мир! на терминале, включая символ новой строки . Фраза разделена на несколько переменных, поскольку в B символьная константа ограничена четырьмя символами ASCII . Предыдущий пример в руководстве напечатан привет! на терминале и фраза Привет, мир! было представлено как немного более длинное приветствие, для выражения которого требовалось несколько символьных констант.
В The Jargon File сообщается, что слово «hello, world» возникло в 1967 году на языке BCPL . [5] За пределами вычислений использование этой фразы началось более десяти лет назад; это была крылатая фраза диск-жокея нью-йоркского радио Уильяма Б. Уильямса, начиная с 1950-х годов. [6]
Вариации
[ редактировать ]"Привет, мир!" программы различаются по сложности на разных языках. В некоторых языках, особенно в языках сценариев , надпись «Hello, World!» Программа может быть написана как один оператор, в то время как в других (особенно во многих языках низкого уровня ) может потребоваться гораздо больше операторов. Например, в Python для печати строки Привет, мир! за которым следует новая строка, нужно только написать print("Hello, World!")
. Напротив, эквивалентный код на C++ [7] требует импорта ввода-вывода библиотеки программного обеспечения , ручного объявления точки входа и явной инструкции о том, что выходная строка должна быть отправлена в стандартный поток вывода .
Фраза «Привет, Мир!» видел различные отклонения в регистре и пунктуации, такие как использование заглавных букв 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!» программы
[ редактировать ]- АБАП
- Есть
- Алдор
- АЛГОЛ
- АЛГОЛ 60
- AmbientTalk
- друг Е
- Апач Клик
- Апачское желе
- Апач Калитка
- AppJar
- AppleScript
- Applesoft БЕЙСИК
- Дуга
- Редактор ассемблера Atari
- АвтоЛИСП
- АвиСинт
- АВК
- БАЗОВЫЙ
- Базовый язык ассемблера
- Балерина
- БКПЛ
- Битник
- Бефунге
- БЕТА
- Блиц БЕЙСИК
- Трах мозгов
- С
- Скрытый ObjectScript
- Каир
- К/АЛ
- Углерод
- Касио БЕЙСИК
- Очарование
- ЧерриПи
- Чистый
- Клипер
- С++
- С#
- КОБОЛ
- Кобра
- Общий промежуточный язык
- Кристалл
- Китон
- Дарт
- Дарвин
- Общие данные Нова
- Дено
- Язык расширения DOORS
- Простой язык программирования
- Эль-76
- Эликсир
- Зеркало
- Расширяемый встраиваемый язык
- Проснуться
- Ф#
- ФастAPI
- Фьёльнир
- Колба
- Фликс
- Форт
- ФОРТРАН
- Крепость
- FreeBASIC
- Идти
- Годо
- Google Гаджеты
- GNU Смоллток
- Взломать
- Гавань
- Хаскелл
- Голливуд
- HTML
- HTML-приложение
- Открытый класс IBM
- Идрис
- ИНТЕРКАЛ
- Базовые курсы Интернета
- Этот
- ИРАФ
- Дж
- ВЫХОД
- Jam.py
- Ява
- JavaFX-скрипт
- JavaScript
- JFace
- ДЗЮДО
- К
- КЕРНАЛ
- Отчаянный
- К-Мелеон
- LibreLogo
- Лисп
- LiveScript
- ЛОЛКОД
- Два
- МАК/65
- МАКРО-10
- МАКРО-11
- БЕЗУМНЫЙ
- Магия
- Мальбольге
- МАТЛАБ
- Меркурий
- МикроПитон
- Microsoft Small Basic
- язык сценариев mIRC
- ММИКС
- Мокито
- Модуль-3
- Моджо
- Монада
- Свинка
- MXML
- Немерль
- Сетевой ассемблер
- Новояз
- Nim
- NWScript
- ОмниМарк
- Опа
- Расширенный бизнес-язык OpenEdge
- Открытый язык программирования
- Ориэль
- ПараСейл
- Язык ассемблера попугаев
- Промежуточное представление попугая
- Паскаль
- ПКАСТЛ
- ПДП-8
- Перл
- Perl-модуль
- PHP
- Тарелка
- Пыль
- Плюс
- Постскриптум
- PowerBASIC
- Пролог
- PureBasic
- Чистые данные
- Чистый скрипт
- ПиГТК
- Питон
- вопрос
- QB64
- QuickBASIC
- Р
- Стойка
- Ракетка
- Раку
- Реагировать
- Реагировать нативный
- Ребол
- Красный
- Рефал
- РГтк2
- Кольцо
- Робот Фреймворк
- Руби
- Ржавчина
- ГОВОРИТ
- САРЛ
- Скала
- Сцилаб
- Царапать
- Но
- Себя
- Шекспир
- начало
- SmallBASIC
- Смолток
- Стандартный ML
- Стандартный набор виджетов
- Быстрый
- ТеХ
- ТИ-990
- ТИ‑БЕЙСИК
- Торнадо
- Турбо Паскаль
- Тьюринг
- UCBЛоготип
- УЕФИ
- Наполнять
- Унлямбда
- V
- Налить
- Визуальный Бейсик
- Визуальный IRC
- веб2py
- Интерфейс шлюза веб-сервера
- Пробелы
- вес
- XBLite
- XHarbour
- Хохо
- XULJet
- Зиг
См. также
[ редактировать ]- «99 бутылок пива» в информатике.
- Плохое яблоко!! § Использование в качестве графического и аудиотеста (графический эквивалент «Hello, World!» для старого оборудования)
- Фубар
- Зоомагазин Ява
- Просто еще один хакер Perl
- Очерк информатики
- Алгоритм ТПК
Ссылки
[ редактировать ]- ^ Джеймс А. Лэнгбридж (3 декабря 2013 г.). Профессиональная разработка встраиваемых систем ARM . Джон Уайли и сыновья. ISBN 9781118887820 .
- ^ Керниган, Брайан В .; Ричи, Деннис М. (1978). Язык программирования C (1-е изд.). Энглвуд Клиффс, Нью-Джерси : Прентис Холл . ISBN 0-13-110163-3 .
- ^ Керниган, Брайан (1974). «Программирование на C: Учебное пособие» (PDF) . Лаборатории Белла. Архивировано (PDF) из оригинала 22 марта 2022 года . Проверено 9 января 2019 г.
- ^ «Язык программирования Б» . Лаборатории Белла. Архивировано из оригинала 11 июня 2015 года . Проверено 30 мая 2016 г. .
- ^ «БЦПЛ» . Файл жаргона . Архивировано из оригинала 3 апреля 2018 года . Проверено 21 апреля 2013 г.
- ^ «Умер Уильям Б. Уильямс, радиоведущий» . Нью-Йорк Таймс . 4 августа 1986 г.
- ^ «Программирование на C++/Примеры/Привет, мир» . Викикниги . Архивировано из оригинала 28 марта 2022 года . Проверено 16 марта 2022 г.
- ^ «Мальбольге» . Эсоланг . esolangs-вики. Архивировано из оригинала 27 августа 2022 года . Проверено 28 октября 2016 г.
- ^ Учебное пособие по языку программирования Go. Архивировано 26 июля 2010 года на сайте Wayback Machine . Язык программирования Go. Проверено 26 июля 2011 г.
- ^ Сильва, Майк (11 сентября 2013 г.). «Введение в микроконтроллеры — Привет, мир» . EmbeddedRelated.com . Архивировано из оригинала 22 мая 2015 года . Проверено 19 мая 2015 г.
- ^ Джордж, Лиго (8 мая 2013 г.). «Мигающий светодиод при использовании микроконтроллера Atmega32 и Atmel Studio» . электроСом . Архивировано из оригинала 5 ноября 2014 года . Проверено 19 мая 2015 г.
- ^ ПТ, Ранджит. «2. Микроконтроллеры AVR в Linux HOWTO» . Проект документации Linux . Архивировано из оригинала 2 мая 2015 года . Проверено 19 мая 2015 г.
- ^ Андерссон, Свен-Оке (2 апреля 2012 г.). «3.2 Первая конструкция Altera FPGA» . Радио Телевидение Ирландии. Архивировано из оригинала 21 мая 2015 года . Проверено 19 мая 2015 г.
- ^ Фабио, Адам (6 апреля 2014 г.). «Учебное пособие по CPLD: простое изучение программируемой логики» . Хакадей . Архивировано из оригинала 20 мая 2015 года . Проверено 19 мая 2015 г.
- ^ "Привет" . Проект ГНУ . Фонд свободного программного обеспечения. Архивировано из оригинала 29 мая 2014 года . Проверено 7 июля 2017 г.
- ^ Джолиф, Кристоф (январь 2003 г.). «Привнесение возможностей SVG в Java-приложения». Сеть разработчиков Sun.
- ^ Динешен, Кристоф (24 июля 2010 г.). "Привет, мир!" . Вареная лягушка.
- ^ «Обучение поколения Nintendo программированию» (PDF) . bfoit.org . Архивировано из оригинала (PDF) 5 мая 2016 года . Проверено 27 декабря 2015 г.
- ^ О'Дуайер, Артур (сентябрь 2017 г.). Освоение C++17 STL: в полной мере используйте компоненты стандартной библиотеки C++17 . Пакт Паблишинг, ООО . п. 251. ИСБН 978-1-78728-823-2 . Проверено 4 декабря 2019 г.
- ^ Вигерс, Гарольд (28 июня 2018 г.). «Важность эффективной программы API «Time to First Hello, World!»» . Архивировано из оригинала 19 февраля 2020 года . Проверено 19 февраля 2020 г.
- ^ Джин, Бренда; Сахни, Саураб; Шват, Амир (29 августа 2018 г.). Проектирование веб-API: создание API, которые нравятся разработчикам . О'Рейли Медиа. ISBN 9781492026877 . Проверено 19 февраля 2020 г.
Внешние ссылки
[ редактировать ]- Коллекция «Привет, мир»
- «Привет, мир/Текст» . Розеттский кодекс . 23 мая 2024 г.
- «GitHub – leachim6/hello-world: Привет, мир на всех компьютерных языках. Спасибо всем, кто вносит в это свой вклад, обязательно посетите CONTRIBUTING.md для получения инструкций!» . Гитхаб . 30 октября 2021 г.
- «Невоспетые герои ИТ / Часть первая: Брайан Керниган» . TheUnsungHeroesOfIT.com . Архивировано из оригинала 26 марта 2016 года . Проверено 23 августа 2014 г.