Ваша задача: написать «программу» на выбранном вами языке, которая приводит к тому, что компилятор / интерпретатор / среда выполнения выдает ошибку при компиляции / запуске вашей программы, которая идентична исходному коду вашей программы.
Правила:
- Ваша программа может быть специфической для конкретной версии или реализации среды компилятора / интерпретатора / среды исполнения вашего языка. Если это так, пожалуйста, уточните подробности.
- Разрешены только стандартные параметры компилятора / интерпретатора / среды выполнения. Вы не можете передать какой-то странный флаг вашему компилятору, чтобы получить конкретный результат.
- Программа не обязательно должна быть синтаксически или семантически верной, но я могу дать награду за лучшее синтаксически достоверное представление.
- Программа не должна производить никаких собственных выходных данных (например, вызывая функцию печати или вывода). Весь вывод, сгенерированный при попытке скомпилировать / запустить программу, должен происходить из компилятора / интерпретатора / среды выполнения.
- Полный вывод компилятора / интерпретатора / среды выполнения должен быть в точности идентичен исходному коду вашей программы.
- Компилятор / интерпретатор / среда выполнения должны генерировать как минимум одно сообщение об ошибке при вызове с вашей программой.
Это конкурс популярности . Самый креативный ответ, как определено голосами против, побеждает. Если вы можете дать хорошее обоснование для использования стандартной лазейки, вы можете сделать это.
popularity-contest
quine
error-message
nneonneo
источник
источник
Error: Could not find or load main class Q
Ответы:
Ed (1 байт)
Все остальные решения до сих пор длинны и безобразны. Я полагаю, что это связано с характером большинства сообщений об ошибках. Но хорошее сообщение об ошибке элегантно в своей простоте. Для этого смотрите не дальше, чем ред.
Сохраните это в файл с именем
edscript
и запуститеed < edscript
или запуститеed<<<?
. Результат:Вопросительный знак записывается в stderr, а ed возвращает 1, так что на самом деле это сообщение об ошибке. Интересно, почему Эд не очень популярен?
False (0 байт)
Беги с
false filename
. Он записывает исходный код программы (т. Е. Ничего) в stderr и возвращает 1. Конечно, вызывать false язык программирования сомнительно, а нулевой байт-квин неоригинален, но я подумал, что я мог бы также добавить его. Вероятно, существует некоторый интерпретатор для языка, который не печатает сообщений об ошибках и может заменить false.Теперь я хотел бы, чтобы это был код гольф.
источник
Командная строка Windows
источник
|
также.CoffeeScript, синтаксически действительный
Как проверено на их сайте, используя Chrome или Firefox.
Вы можете заменить
defined
все, что не является встроенной переменной, но я думал, что эта версия была забавной. К сожалению,undefined is not defined
в частности, не работает как Quine.В CoffeeScript это даже не синтаксическая ошибка, потому что он компилируется. Технически это ошибка времени выполнения в JavaScript, хотя и скучная. CoffeeScript является вероятным кандидатом для создания более интересных квин ошибок во время выполнения, потому что множество забавных предложений являются допустимым кодом. Например, приведенный выше пример компилируется в
источник
defined
этоdefined
Итионdefined
. Что ... как ...?Undefined is not defined
(с большой буквыU
), кажется, работает LOLпитон
Spyder
Ну, довольно тривиальным решением для IDE Spyder является повышение
SyntaxError
.Код и идентичный вывод:
(Python 2.7.8 с Spyder 2.2.5)
Терминал
Альтернативное решение для Python началось с борьбы из командной строки с неожиданным отступом.
Команда:
Код и идентичный вывод:
ideone.com
На ideone.com решение может быть следующим. (Попробуй!)
Код и идентичный вывод:
(Это для Python 2. Пример для Python 3 тривиален, но с 15 строками «кода» довольно длинного.)
Основной подход:
Как создать собственное решение за 2 минуты?
Держу пари, что в большинстве случаев такая процедура заканчивается довольно быстро!
источник
SyntaxError: invalid syntax
тоже производит то же самое :)> <> - 25 байт
В Fish любая плохая инструкция выдает ошибку: «что-то пахнет подозрительно ...». Так как s не является допустимой командой, она сразу ошибается.
источник
something smells fishy...
, но он естьSomething smells fishy...
на онлайн-переводчике. Это зависит от переводчика.Windows .EXE, 248 байт
Нет, правда. Сохранить как
quine.txt
, затем переименовать вquine.exe
(или скачать здесь ):источник
Пробелы
Сначала я подумал, что это явно невозможно. Но на самом деле это тоже тривиально. -.-
Попробуй.
Да, моя первая программа для пробелов! ;)
источник
Курица
источник
JavaScript
Поскольку разные браузеры используют разные компиляторы JavaScript, они создают разные сообщения. Это, однако, довольно тривиальные решения.
V8 (Chrome 36 / Node.js)
SpiderMonkey (Firefox 31)
Чакра (Internet Explorer 11)
источник
jsc
::Exception: SyntaxError: Unexpected identifier 'identifier'
DCommodore 64 Basic
При запуске на эмуляторе по вашему выбору (или на реальном Commodore 64), производит
На самом деле это синтаксически верная однострочная программа. Знак вопроса является ярлыком для
PRINT
иSYNTAX
иERROR
является допустимым именем переменной. Ошибка возникает из-за того, что синтаксический анализатор запутывается подстрокойOR
вERROR
.источник
Майкрософт Эксель
Формула:
#DIV/0!
Сообщение об ошибке:
#DIV/0!
Чтобы ввести формулу без знака равенства, перейдите в Параметры Excel / Дополнительно / Параметры совместимости с Lotus и включите Ввод формулы перехода.
источник
#REF!
Баш (32)
Сохранить как файл с именем
x
:Когда запустить:
источник
Java 8 ошибка компиляции quine (12203 байта)
Сгенерировано на windows + mingw с java 1.8.0_11 jdk, используя эту команду:
Может быть не самым коротким, а может и не самым длинным, скорее доказательством концепции. Работает, потому что вывод ошибок показывает не более 100 ошибок.
источник
ArnoldC
Вставьте код в этот компилятор .
источник
IT'S SHOWTIME
на самом деле на первой строчкеTrumpScript - снова сделать PPCG великолепным ( TrumpScript )
При попытке запустить этот язык на ПК с Windows, всегда выводится:
Итак, при запуске этой программы:
Он даже не проанализирует его, потому что проверка ОС не удалась, и вы получили сообщение об ошибке. Примеры могут быть приведены и для Mac, если кто-то хочет их, ха-ха. Боже, я хотел использовать это в PPCG некоторое время, хорошо, что я наконец доберусь.
Полный список ошибок, которые могут быть вызваны особенностями среды:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py
Бонусный ответ: ArnoldC ( АрнольдC )
ArnoldC требует корневого объявления
IT'S SHOWTIME
, то естьmain()
, значит:В результате появляется единственное сообщение об ошибке в ArnoldC ...
Что на самом деле ... смешно. Вы должны запустить его не многословно, хотя и без следов стека.
источник
Z-машина переводчик
Тест против этого популярного переводчика . Также там есть какая-то в основном безобидная игра.
источник
Юлия 0.2.0
Другая синтаксическая ошибка обнаруживается итеративно, пока не будет достигнута фиксированная точка:
источник
Mathematica
A
.
в Mathematica означает либо десятичную точку, либо функциюDot
. В этом случае.
символ появляется в конце выражения и не может быть интерпретирован.источник
С
Я применил метод многократного копирования сообщений об ошибках в источник. Сошлось за 2 цикла. Скомпилировано в OSX 10.9 с cc -c error.c.
Примечание. Это не столько ответ, сколько методика его получения. Результат может измениться в зависимости от вашей ОС или версии используемой вами копии.
Точный способ получить результат - выполнить инструкции
несколько раз, пока выход не перестанет меняться.
источник
cc -c error.c 2>out
а затемmv out error.c
. И с той версией cc, которая у меня есть сегодня, требуется еще несколько итераций.cc
; в противном случае он недействителен и должен быть удален согласно рекомендациям сообщества.C ++ (g ++)
Файл должен быть сохранен как
1.pas
.источник
INTERCALL , 90 байт
Включает завершающий перевод строки в конце. Обратите внимание, что это не STDERR, но многие считали это ошибкой, поэтому я разместил ее здесь.
Это «обязательный заголовок»:
источник
GHCi (интерпретатор / оболочка Haskell)
Использование:
Запишите код в файл с именем Code и загрузите его с помощью GHCi.
Приятным фактом является то, что, если бы слова были фактическими идентификаторами, это было бы допустимым выражением (при условии проверки типов). Это в основном связано с тем, что
:
это встроенный оператор,.
который используется для имен, уточненных модулем, а пробел используется для обозначения приложения функции.источник
.
здесь не оператор Это часть квалифицированного имени. Для какой версии GHCi это?Ruby 2 в Windows
Код:
Код был найден путем тестирования и повторения процесса снова и снова, пока не будет достигнута фиксированная точка. Код должен быть внутри файла
"error.rb"
.Демо-версия:
источник
Applescript (в редакторе сценариев)
источник
AppleScript
Оба
A
иidentifier
могут быть идентификаторами, поэтому AppleScript говорит нет.источник
C (GCC)
Компилировать с
gcc -Wfatal-errors error.c
.источник
CJam 0.6.2
Попробуйте онлайн.
источник
BBC Basic, 7 байт (или 0 байт)
Это допустимая 7-байтовая запись:
Это сообщение об ошибке, выдаваемое интерпретатором, когда он совершенно не в состоянии понять код.
С другой стороны, это не так:
Это допустимое ключевое слово в BBC Basic, которое должно преднамеренно вносить ошибку указанного кода в программу, но синтаксис неправильный (код не указан.) Поэтому он возвращает
Syntax error
(который, в свою очередь, возвращаетсяMistake
при запуске.)Вообще процедура, описанная Фалько в его ответе, приводит к тому, что
Mistake
в BBC basic. Есть несколько исключений. все, что приводит к ошибкамDATA not LOCAL
илиON ERROR not LOCAL
приводит к известной нулевой байте: пустой исходный код создает пустой файл.Учитывая, что большинство сообщений об ошибках в BBC basic являются строчными (и, следовательно, недействительными ключевыми словами), я почти уверен, что любой неверный ввод в конечном итоге приведет к одной из этих возможностей.
источник
CoffeeScript
Сбой при первой ошибке, так что это довольно легко сделать:
демонстрация
источник
вперед
Попробуй здесь
Это было удивительно легко придумать.
источник