HQ9+
| Значимость предмета статьи поставлена под сомнение.
Пожалуйста, покажите в статье значимость её предмета, добавив в неё доказательства значимости по частным критериям значимости или, в случае если частные критерии значимости для предмета статьи отсутствуют, по общему критерию значимости. Подробности могут быть на странице обсуждения.
|
HQ9+ в эзотерический язык программирования, созданный Клифом Биффлом (Cliff Biffle), который состоит из четырёх команд, каждая из которых представляет один символ: H, Q, 9, и +. Этот язык не является полным по Тьюрингу.
Содержание |
[править] Команды
- Команда H выводит сообщение Hello, world!;
- Команда Q выводит исходный код программы, которая выполняется (то есть, quine);
- Команда 9 выводит слова стихотворения 99 Bottles of Beer on the Wall[1];
- Команда + увеличивает на единицу (инкрементирует) счетчик, который не имеет никакой возможности дальнейшего применения.
[править] Общие сведения
HQ9+ в это шутливый язык, каждая команда которого представляет собой обычную задачу, которую выполняет начинающий программист, когда учится программировать, или когда изучает новый язык программирования. Обычное упражнение в написать программу, которая выводит сообщение Hello, world!. Существуют некоторые языки программирования, на которых это действительно трудно сделать, однако для HQ9+ это элементарная задача, программа H выведет это сообщение. Одна из наитяжелейших задач для многих языков программирования в это вывести quine (собственный код). На HQ9+ эти задачи становятся тривиальными.
Интерпретатор для HQ9+ очень легко написать, поэтому их было создано очень много. Например, интерпретатор HQ9+ на Python был написан приблизительно за 5 минут и имеет всего лишь 16 строк. Также существует транслятор, написанный на Си, который переводит исходный код с HQ9+ на Си и содержит всего лишь 40 строк.
Поскольку HQ9+ не поддерживают ввод данных, то невозможно на языке HQ9+ написать интерпретатор или компилятор к языку HQ9+.
Существует также другой шутливый язык программирования HQ9++, известный также как HQ9+ с Классами, объектно-ориентированная версия, созданная Девидом Морган-Маром (David Morgan-mar). В ней добавлена новая команда, ++ , которая увеличивает счётчик два раза и создает объект. В соответствии с принципом сокрытия информации, доступ к этому объекту невозможен.
Кроме того, существует язык HQ9±, в котором по сравнению с HQ9++ добавлен оператор '-' для проверки правильности программы. Результаты проверки зависят от местонахождения оператора:
- если он стоит первым символом в программе, то это синтаксическая ошибка
- после 'H' в происходит ошибка ввода-вывода
- после 'Q' в программа уходит в бесконечную рекурсию (хорошая реализация должна рухнуть после переполнения стека)
- после '9' в начинается бесконечный цикл
- после '+' в производится деление единицы на ноль
- после '++' в выбрасывает виртуальное исключение, являющееся методом нового подкласса стандартного суперкласса. В соответствии с лучшими принципами сокрытия данных, не существует способа перехватить это исключение.
[править] Примеры
| Исходный код | Вывод |
|---|---|
| H | Hello world! |
| HQ | Hello world! HQ |
| QQQQ | QQQQ QQQQ QQQQ QQQQ |
| Q+Q+Q | Q+Q+Q Q+Q+Q Q+Q+Q |
[править] Ссылки
- Он-лайн интерпретатор
- HQ9+
- HQ9++
- HQ9±
- Русская вариация на тему HQ9+
- Зверёк Харьковский. Путеводитель автостопщика по потаенным знаниям. // "Компьютерра" в„–12 от 31 марта 2005 года
[править] Примечания
- в‘ Текст стихотворения (англ.)
| Основные языки программирования (сравнение IDE история хронология) | |
|---|---|
| Используемые в разработке |
Ада APL Язык ассемблера ActionScript ABAP/4 AutoIt AWK Бейсик Си Кобол C++ C# Cω Clarion Clojure ColdFusion Common Lisp D dBase Delphi Eiffel Erlang Euphoria F# Форт Фортран Gambas Go Groovy HAL/S Haskell Icon Java JavaScript Limbo Lua Object Pascal Objective-C OCaml Oz Parser Паскаль Perl PHP PowerBASIC PureBasic Python ПЛ/1 Пролог Ruby Scala Scheme Smalltalk SQL PL/SQL Tcl Vala Visual Basic (.NET) |
| Академические | |
| IEC 61131-3 | |
| Прочие | |
| Эзотерические | |
| Визуальные | |

