Как «Hello World» стал универсальным первым шагом в программировании

Как «Hello World» стал универсальным первым шагом в программировании

Слышали ли вы когда-нибудь о Hello World? Этот пример кода — обряд посвящения программиста, но что он означает и почему мы его используем? Откройте для себя историю программы и посмотрите, как она раскрывает различные языковые возможности.

Что такое «Привет, мир»?

Независимо от того, новичок ли вы в программировании или изучаете седьмой язык, простая программа-пример поможет. Запуск любой программы — это большой шаг, поэтому разумно начать с проверенного примера. Этот пример — Hello World.

Hello World — это самый простой фрагмент кода, который вы можете себе представить. Он имеет очень простой список требований:

  • Выведите на экран текст «привет, мир».

И это все! Конечно, точный текст, включая пунктуацию, может отличаться и не так уж важен. «Hello, world» — это просто забавная, позитивная вещь, которую можно увидеть, когда вы запускаете свою первую программу.

Как «Hello World» стал универсальным первым шагом в программировании

Сложно точно определить истоки Hello World, но самый ранний конкретный пример, который у нас есть, взят из книги «Учебное введение в язык B» (1972):

основной( ) {
    внешн. а, б, в;
    putchar(a); putchar(b); putchar(c); putchar(‘!*n’);
}
 
«ад»;
поклон’;
c ‘мир’;

B — древний язык, предшественник C. Hello World на самом деле может появиться еще раньше, в 1967 году, когда существовал язык BCPL, но убедительных доказательств этому нет.

Эта концепция стала по-настоящему известна с публикацией книги «Язык программирования Си» в 1978 году. Сейчас эта книга является одним из классических текстов по информатике; включение программы Hello World в качестве первого примера кода заложило традицию, которая сохраняется и по сей день.

Что такого полезного в Hello World?

Hello World имеет две цели. Во-первых, он действует как полезный канонический пример, с которым можно сравнивать языки. Поскольку цель программы настолько проста и понятна, она может многому научить о синтаксисе языка. Опытный программист может взглянуть на программу Hello World, написанную на языке, о котором он ничего не знает, и начать изучать что-то о нем.

Но Hello World также имеет практическое применение. Запуск этого примера программы — большой шаг в написании любой другой программы на том же языке. Для запуска программы требуется соответствующий компилятор или интерпретатор. Он подтвердит, что базовая операционная система правильно обрабатывает ее вывод. И он может помочь вам настроить IDE для работы с языком.

Привет, мир на нескольких языках

Вы можете многое узнать о языке из его реализации Hello World. Поскольку каждая из этих программ должна вести себя совершенно одинаково, вы также можете использовать набор исходных файлов hello.* для тестирования своей среды.

Привет, мир на языке C

Как уже упоминалось, первый достоверный пример Hello World, о котором мы знаем, написан на языке C. Он датируется 1978 годом:

главный() {
    printf(«привет, мир»);
}

Спустя десять лет во второй версии книги этот пример был обновлен для совместимости с ANSI C:

#включать

главный() {
    printf(«привет, мир»);
}

Но в наши дни даже эта версия нуждается в обновлении; современный компилятор C выдаст ошибку при попытке скомпилировать эту программу:

Как «Hello World» стал универсальным первым шагом в программировании

C99 более строг, чем ANSI C; он требует следующее:

#включать

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

Версия Hello World на языке C состоит из трех основных частей:

  • Вызов функции printf («print formatted»), которая выполняет основную работу. Эта функция выводит строковый аргумент (текст внутри двойных кавычек) на стандартный вывод. Символ n в конце строки представляет собой символ новой строки.
  • Оператор #include в начале загружает библиотеку (stdio), которая обеспечивает функциональность вывода (и ввода). Он содержит фактический код для функции printf. Одна из любопытных особенностей C заключается в том, что он не содержит встроенных функций; вы можете написать свои собственные, но для вызова любых других вам понадобится соответствующий оператор #include.
  • Строка printf находится внутри функции с именем «main». Для C это специальная функция, которая будет запускаться автоматически при запуске скомпилированной программы. Обратите внимание, что последняя версия C требует от вас объявить возвращаемый тип «int» (целое число) для main, даже если ваша функция не возвращает значение.

Однако код Hello World — это всего лишь часть головоломки. Оставшаяся половина — запуск программы. При использовании компилируемого языка, например C, вам нужно запустить программу, чтобы перевести исходный код в автономный исполняемый двоичный файл:

gcc привет.с

Если все хорошо, компилятор запустится в режиме молчания и создаст исполняемый файл в вашем текущем каталоге с именем a.out. Запустите эту программу (./a.out), и вы увидите свой код в действии:

Как «Hello World» стал универсальным первым шагом в программировании

Именно так должна вести себя правильная программа Hello World: выводить текст на терминал, добавлять новую строку в конце и завершаться.

Привет, мир на Go

Go — относительно современный язык. Он был выпущен в 2009 году и создан инженерами Google, включая Кена Томпсона, который изобрел язык B. Go имеет простой синтаксис, очень похожий на C:

основной пакет

импорт «фмт»

функция main() {
    fmt.Println(«привет, мир»)
}

Вы можете запустить эту программу с помощью иди беги привет.го или скомпилировать исполняемый файл с помощью перейти к компиляции hello.go и запустите его с помощью ./Привет.

Система пакетов Go поможет вам организовать ваш код и повторно использовать функциональность в соответствии с твердыми инженерными принципами. Однако для простой программы, такой как Hello World, вам просто нужно объявить, что она принадлежит «package main» и убедиться, что у вас есть функция main, которая будет действовать как точка входа по умолчанию.

Привет, мир на Rust

Реализация Hello World на Rust настолько минимальна, что можно подумать, что она нам ничего не говорит. Но даже этот простой код содержит некоторые интересные нюансы языка.

фн мейн() {
    println!(«привет, мир»);
}

Вызов println, который очень похож на функцию, включает восклицательный знак после своего имени. Это означает, что println на самом деле является макросом, а не функцией; вы должны вызывать его, используя синтаксис восклицательного знака.

Как «Hello World» стал универсальным первым шагом в программировании

Как и в C, функция main выступает в качестве точки входа для этой автономной программы. В отличие от C и большинства других языков, ключевое слово Rust для объявления функции очень короткое: fn. Это согласуется с большей частью языка, который использует короткие ключевые слова, такие как «pub», «mut» и «ref».

Вы можете скомпилировать эту программу с помощью rustc привет.рси запустите сгенерированный исполняемый файл с помощью ./Привет.

Привет, мир на Python

Hello World на Python примечателен как один из самых минималистичных. Это соответствует его репутации простого языка, особенно хорошо подходящего для новичков. Вся программа:

print(‘привет, мир’)

Python — это интерпретируемый язык, поэтому вы можете использовать команду python для прямого запуска программ Python. Сохраните приведенный выше код в файл (hello.py), запустите его (питон привет.py), и вы должны увидеть знакомый вывод.

Обратите внимание, что функция Python print() добавляет символ новой строки по умолчанию, поэтому вам не нужно включать n в строку. Также обратите внимание, что, в отличие от C, вы можете заключить текстовую строку Python как в одинарные, так и в двойные кавычки.

Привет, мир на Java

Java — полная противоположность Python. Его часто называют многословным языком, и его программа Hello World не делает ничего, чтобы развеять это:

публичный класс HelloWorld {
    public static void main(String[] args) {
        System.out.print(«привет, мир»);
    }
}

В Java даже простая автономная программа должна быть представлена ​​классом, а эквивалент функции main() в C в Java имеет три модифицирующих ключевых слова:

  • public — спецификатор доступа, указывающий, что функция доступна во всей программе.
  • static — ключевое слово, указывающее, что это метод класса, а не метод экземпляра.
  • void — тип возвращаемого значения, указывающий, что функция не возвращает значение.

Вам не обязательно знать все подробности, стоящие за этими тремя ключевыми словами, но вам необходимо их запомнить, чтобы написать любую программу на Java.

Даже для вызова функции печати Java требуется довольно много печатать. «System.out.» перед «print» идентифицирует стандартный поток вывода, который другие языки используют по умолчанию.

Вам нужно будет узнать еще одну последнюю особенность Java, прежде чем вы сможете запустить Hello World: имя файла. Из-за подхода Java «сначала класс», файл, в котором вы сохраняете свой код, должен быть назван в честь его открытого класса: HelloWorld.java. После того, как вы создали этот файл, запустите javac HelloWorld.java последующей Java HelloWorld чтобы указать интерпретатору Java запустить вашу программу:

Как «Hello World» стал универсальным первым шагом в программировании

Каждый язык программирования уникален, но даже в таких разных языках, как здесь, вы можете заметить сходства. Самое главное, как только вы сможете запустить Hello World, вы сможете сосредоточиться на специфике языка, который вы изучаете.

Валентин Павлов/ автор статьи
Страсть Влентина к играм началась с Resident Evil, и с тех пор он не переставал играть в хоррор-игры. Пишет экспертные руководства для самых сложных игр и обзоры для самых громких релизов. Является магистром журналистики и имеет степень бакалавра лингвистики. Любимые игры: GTA 5, Silent Hill 2, Call of Duty: Modern Warfare 2, Heavy Rain, Metro 2033 и другие.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий