Сделайте ошибку Quine!


104

Ваша задача: написать «программу» на выбранном вами языке, которая приводит к тому, что компилятор / интерпретатор / среда выполнения выдает ошибку при компиляции / запуске вашей программы, которая идентична исходному коду вашей программы.

Правила:

  • Ваша программа может быть специфической для конкретной версии или реализации среды компилятора / интерпретатора / среды исполнения вашего языка. Если это так, пожалуйста, уточните подробности.
  • Разрешены только стандартные параметры компилятора / интерпретатора / среды выполнения. Вы не можете передать какой-то странный флаг вашему компилятору, чтобы получить конкретный результат.
  • Программа не обязательно должна быть синтаксически или семантически верной, но я могу дать награду за лучшее синтаксически достоверное представление.
  • Программа не должна производить никаких собственных выходных данных (например, вызывая функцию печати или вывода). Весь вывод, сгенерированный при попытке скомпилировать / запустить программу, должен происходить из компилятора / интерпретатора / среды выполнения.
  • Полный вывод компилятора / интерпретатора / среды выполнения должен быть в точности идентичен исходному коду вашей программы.
  • Компилятор / интерпретатор / среда выполнения должны генерировать как минимум одно сообщение об ошибке при вызове с вашей программой.

Это конкурс популярности . Самый креативный ответ, как определено голосами против, побеждает. Если вы можете дать хорошее обоснование для использования стандартной лазейки, вы можете сделать это.


7
Что такое « вывод ошибок »? И что значит « генерировать сообщение об ошибке »? Более конкретно: 1) должен ли вывод быть в stderr? 2) Если среда выполнения записывает ошибку в системный журнал и ничего не записывает в stderr, что следует сравнивать с исходным кодом программы? 3) Если среда выполнения выдает внутреннее исключение, когда ему выдается пустая программа, но требует наличия флага, чтобы фактически распечатать исключение, и, таким образом, завершается выходом с ненулевым кодом выхода, но без вывода, было ли сгенерировано сообщение об ошибке?
Питер Тейлор

1
Я попытался сделать это в Java и получил осциллятор p3. Это был самый короткий этап: (Компиляция из q.java):Error: Could not find or load main class Q
SuperJedi224

2
Ха, из-за синтаксической неоднозначности в первом предложении, я подумал, что задача здесь состоит в том, чтобы создать программу, которая обычно не производит вывод, но если вы передадите ей собственный код в качестве ввода, она выдаст ошибку.
Стив Беннетт

2
При сообщении об ошибке APL всегда печатает настраиваемое имя ошибки, необязательно сообщение об ошибке, название программы, вызвавшей ошибку, номер строки (в скобках), где произошла ошибка, строку кода, вызвавшую ошибку, и строка с кареткой, указывающей, где остановлен синтаксический анализ. Есть ли надежда на участие здесь?
Адам

1
@SteveBennett Почему вы еще не приняли этот вызов?
CalculatorFeline

Ответы:


117

Ed (1 байт)

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

?

Сохраните это в файл с именем edscriptи запустите ed < edscriptили запустите ed<<<?. Результат:

?

Вопросительный знак записывается в stderr, а ed возвращает 1, так что на самом деле это сообщение об ошибке. Интересно, почему Эд не очень популярен?

False (0 байт)

Беги с false filename. Он записывает исходный код программы (т. Е. Ничего) в stderr и возвращает 1. Конечно, вызывать false язык программирования сомнительно, а нулевой байт-квин неоригинален, но я подумал, что я мог бы также добавить его. Вероятно, существует некоторый интерпретатор для языка, который не печатает сообщений об ошибках и может заменить false.

Теперь я хотел бы, чтобы это был код гольф.


12
Я просматривал (длинный) список esolangs, чтобы найти такой язык. Это слабость этой проблемы. Дело не в написании умной программы, а в умном выборе языка. : /
Инго Бюрк

23
@ IngoBürk К счастью, это конкурс популярности, а не гольф.
пушистый

0-байтовый False - это тот же код, который когда-то был удостоен награды IOCCC «Наихудшее нарушение правил» за теоретически самый короткий хинин. В нем было много ошибок компилятора, и он был написан на K & R C, а не ISO C (что более строго).
Isiah Meadows

6
@ IngoBürk Многие реальные проблемы связаны с умным выбором языка. : P
Sarge Borsch

2
@Mendeleev * Quine (До недавнего времени я постоянно неверно истолковывал слово «quine» как «хинин» по какой-то причине ...)
Isiah Meadows


81

CoffeeScript, синтаксически действительный

Как проверено на их сайте, используя Chrome или Firefox.

ReferenceError: defined is not defined

Вы можете заменить definedвсе, что не является встроенной переменной, но я думал, что эта версия была забавной. К сожалению, undefined is not definedв частности, не работает как Quine.

В CoffeeScript это даже не синтаксическая ошибка, потому что он компилируется. Технически это ошибка времени выполнения в JavaScript, хотя и скучная. CoffeeScript является вероятным кандидатом для создания более интересных квин ошибок во время выполнения, потому что множество забавных предложений являются допустимым кодом. Например, приведенный выше пример компилируется в

({
  ReferenceError: defined === !defined
});

2
definedэто definedИтион defined. Что ... как ...?
CalculatorFeline

3
Undefined is not defined(с большой буквы U), кажется, работает LOL
Shieru Asakoto

50

питон

Spyder

Ну, довольно тривиальным решением для IDE Spyder является повышение SyntaxError.

Код и идентичный вывод:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile
    execfile(filename, namespace)
  File "/Users/falko/golf.py", line 1
    Traceback (most recent call last):
                         ^
SyntaxError: invalid syntax

(Python 2.7.8 с Spyder 2.2.5)


Терминал

Альтернативное решение для Python началось с борьбы из командной строки с неожиданным отступом.

Команда:

python golf.py

Код и идентичный вывод:

  File "golf.py", line 1
    File "golf.py", line 1
    ^
IndentationError: unexpected indent

ideone.com

На ideone.com решение может быть следующим. (Попробуй!)

Код и идентичный вывод:

Traceback (most recent call last):

  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/py_compile.py", line 117, in compile
    raise py_exc
py_compile.PyCompileError: SyntaxError: ('invalid syntax', ('prog.py', 1, 22, 'Traceback (most recent call last):\n'))

(Это для Python 2. Пример для Python 3 тривиален, но с 15 строками «кода» довольно длинного.)


Основной подход:

Как создать собственное решение за 2 минуты?

  1. Откройте новый файл в IDE по вашему выбору.
  2. Ударь голову по клавиатуре перед собой.
  3. Компиляция.
  4. Замените код сообщением об ошибке компилятора.
  5. Повторите шаги 3 и 4, пока код не сходится.

Держу пари, что в большинстве случаев такая процедура заканчивается довольно быстро!


6
Как вы, вероятно, можете сказать, я использую этот общий подход. Это не работает, когда скопированный код постепенно увеличивает количество ошибок компилятора. :-)
rink.attendant.6

9
@ rink.attendant.6: Именно тогда необходимы наши ценные экспертные знания в области разработки программного обеспечения. ;)
Фалько

@ rink.attendant.6 Или когда тебя отправляют бегать кругами. Попробуйте это в непосредственном окне Excel-VBA.
Деннис Джаэруддин

45
Я выполнил шаги 1, 2 и 3, но не смог выполнить шаг 4, код perl был совершенно корректным!
Родольфито

Эй, как насчет этого в IDE на Python, SyntaxError: invalid syntaxтоже производит то же самое :)
Гурупад Мамадапур

42

> <> - 25 байт

something smells fishy...

В Fish любая плохая инструкция выдает ошибку: «что-то пахнет подозрительно ...». Так как s не является допустимой командой, она сразу ошибается.


10
Обратите внимание, что название языка> <>, что обычно произносится как «рыба».
Аарон

1
И это действительно "Что-то пахнет рыбой ..."
Конор О'Брайен

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ На интерпретаторе python это действительно так something smells fishy..., но он есть Something smells fishy...на онлайн-переводчике. Это зависит от переводчика.
Аддисон Крамп

1
@VTCAKAVSMoACE Ах, спасибо.
Конор О'Брайен

Потому что «рыба» - это название программы / языка оболочки для 90-х !
Ник Т

41

Windows .EXE, 248 байт

The version of this file is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.

Нет, правда. Сохранить как quine.txt, затем переименовать в quine.exe(или скачать здесь ):


38

Пробелы

Сначала я подумал, что это явно невозможно. Но на самом деле это тоже тривиально. -.-

Fail: Input.hs:108: Non-exhaustive patterns in function parseNum'

Попробуй.

Да, моя первая программа для пробелов! ;)


1
Можем ли мы даже назвать это пробельной программой?
В. Куртуа

1
Это ошибка интерпретатора?
user253751


29

JavaScript

Поскольку разные браузеры используют разные компиляторы JavaScript, они создают разные сообщения. Это, однако, довольно тривиальные решения.

V8 (Chrome 36 / Node.js)

SyntaxError: Unexpected identifier

введите описание изображения здесь

SpiderMonkey (Firefox 31)

SyntaxError: missing ; before statement

введите описание изображения здесь

Чакра (Internet Explorer 11)

Expected ';'

введите описание изображения здесь


В jsc:: Exception: SyntaxError: Unexpected identifier 'identifier'D
хлопнуть

2
@ConfusedMr_C Это странный жетон, чтобы подавиться.
SuperJedi224

@ SuperJedi224 Да. По крайней мере, это работает: P
хлоп

28

Commodore 64 Basic

?SYNTAX  ERROR

При запуске на эмуляторе по вашему выбору (или на реальном Commodore 64), производит

?SYNTAX  ERROR

На самом деле это синтаксически верная однострочная программа. Знак вопроса является ярлыком для PRINTи SYNTAXи ERRORявляется допустимым именем переменной. Ошибка возникает из-за того, что синтаксический анализатор запутывается подстрокой ORв ERROR.


5
Если анализатор запутается и бросает синтаксическую ошибку, делает это не делает его не синтаксически правильным?
Мартин Эндер

4
@ MartinBüttner, это действительно зависит от того, какой из прав вы считаете «допустимым синтаксисом»: описание языка или его реализация.
Марк

16
Понятно, что технически это синтаксически допустимо, но это отключает синтаксический анализатор из-за ошибки конкретной реализации?
Мартин Эндер

6
Более или менее, озадачены тем , что там есть только одна реализация.
Марк

Nitpick: CBM BASIC на самом деле печатает два пробела, а не один, между «SYNTAX» и «ERROR». К сожалению, я не могу отредактировать этот ответ, чтобы исправить его, поскольку Stack Exchange навязывает глупый минимум из 6 символов для правок.
Психонавт

28

Майкрософт Эксель

Формула: #DIV/0!

Сообщение об ошибке: #DIV/0!

Чтобы ввести формулу без знака равенства, перейдите в Параметры Excel / Дополнительно / Параметры совместимости с Lotus и включите Ввод формулы перехода.


-2 байта:#REF!
тост инженера

19

Баш (32)

Сохранить как файл с именем x:

x: line 1: x:: command not found

Когда запустить:

>> bash x
x: line 1: x:: command not found

19

Java 8 ошибка компиляции quine (12203 байта)

Сгенерировано на windows + mingw с java 1.8.0_11 jdk, используя эту команду:

echo a > Q.java; while true; do javac Q.java 2> Q.err; if [ $(diff Q.err Q.java | wc -c) -eq 0 ]; then break; fi; cat Q.err > Q.java; done

Может быть не самым коротким, а может и не самым длинным, скорее доказательством концепции. Работает, потому что вывод ошибок показывает не более 100 ошибок.

Q.java:1: error: class, interface, or enum expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:1: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:2: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:2: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:2: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:3: error: illegal start of type
^
^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
 ^
Q.java:4: error: <identifier> expected
Q.java:1: error: <identifier> expected
      ^
Q.java:4: error: ';' expected
Q.java:1: error: <identifier> expected
       ^
Q.java:4: error: illegal start of type
Q.java:1: error: <identifier> expected
        ^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
               ^
Q.java:5: error: '(' expected
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:5: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:5: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:5: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:6: error: illegal start of type
                      ^
                      ^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
 ^
Q.java:7: error: <identifier> expected
Q.java:1: error: <identifier> expected
      ^
Q.java:7: error: ';' expected
Q.java:1: error: <identifier> expected
       ^
Q.java:7: error: illegal start of type
Q.java:1: error: <identifier> expected
        ^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
               ^
Q.java:8: error: '(' expected
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:8: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:8: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:8: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:9: error: illegal start of type
                                 ^
                                 ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
 ^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
      ^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
       ^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
        ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
               ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                       ^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                               ^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                ^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                  ^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                    ^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                       ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                     ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                           ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                                      ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                                                 ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:11: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:11: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:11: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:12: error: illegal start of type
                                      ^
                                      ^
Q.java:12: error: <identifier> expected
                                      ^
                                       ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
   ^
Q.java:13: error: ';' expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
      ^
Q.java:13: error: <identifier> expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
              ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
               ^
Q.java:13: error: ';' expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                  ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                               ^
Q.java:13: error: unclosed character literal
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                   ^
Q.java:13: error: unclosed character literal
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                        ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                                          ^
Q.java:14: error: <identifier> expected
Q.java:1: error: = expected
      ^
Q.java:14: error: ';' expected
Q.java:1: error: = expected
       ^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
        ^
Q.java:14: error: = expected
Q.java:1: error: = expected
               ^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
                 ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
          ^
Q.java:15: error: ';' expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:15: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:16: error: illegal start of type
                                           ^
                                           ^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
 ^
Q.java:17: error: <identifier> expected
Q.java:2: error: <identifier> expected
      ^
Q.java:17: error: ';' expected
Q.java:2: error: <identifier> expected
       ^
Q.java:17: error: illegal start of type
Q.java:2: error: <identifier> expected
        ^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
               ^
100 errors


17

TrumpScript - снова сделать PPCG великолепным ( TrumpScript )

При попытке запустить этот язык на ПК с Windows, всегда выводится:

Make sure the currently-running OS is not Windows, because we're not PC

Итак, при запуске этой программы:

Make sure the currently-running OS is not Windows, because we're not PC

Он даже не проанализирует его, потому что проверка ОС не удалась, и вы получили сообщение об ошибке. Примеры могут быть приведены и для Mac, если кто-то хочет их, ха-ха. Боже, я хотел использовать это в PPCG некоторое время, хорошо, что я наконец доберусь.

Полный список ошибок, которые могут быть вызваны особенностями среды:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py


Бонусный ответ: ArnoldC ( АрнольдC )

ArnoldC требует корневого объявления IT'S SHOWTIME, то есть main(), значит:

WHAT THE FUCK DID I DO WRONG

В результате появляется единственное сообщение об ошибке в ArnoldC ...

WHAT THE FUCK DID I DO WRONG

Что на самом деле ... смешно. Вы должны запустить его не многословно, хотя и без следов стека.


9
Это должны быть два отдельных ответа.
mbomb007


12

Юлия 0.2.0

Другая синтаксическая ошибка обнаруживается итеративно, пока не будет достигнута фиксированная точка:

ERROR: syntax: extra token "token" after end of expression

11

Mathematica

Syntax: "needed." is incomplete; more input is needed.

A .в Mathematica означает либо десятичную точку, либо функцию Dot. В этом случае .символ появляется в конце выражения и не может быть интерпретирован.


введите описание изображения здесь


Я не думал, что это возможно.
нгенисис

9

С

Я применил метод многократного копирования сообщений об ошибках в источник. Сошлось за 2 цикла. Скомпилировано в OSX 10.9 с cc -c error.c.

error.c:1:1: error: unknown type name 'error'
error.c:1:1: error: unknown type name 'error'
^
error.c:1:6: error: expected identifier or '('
error.c:1:1: error: unknown type name 'error'
     ^
2 errors generated.

Примечание. Это не столько ответ, сколько методика его получения. Результат может измениться в зависимости от вашей ОС или версии используемой вами копии.

Точный способ получить результат - выполнить инструкции

$ cc -c error.c 2>out ; mv out error.c ; cat error.c

несколько раз, пока выход не перестанет меняться.


Я повторил. Сначала это не сработало. Чтобы заставить это работать, вы должны выполнить, cc -c error.c 2>outа затем mv out error.c. И с той версией cc, которая у меня есть сегодня, требуется еще несколько итераций.
Флориан Ф

Вы можете отметить, что в своем ответе требуется конкретная версия OSX cc; в противном случае он недействителен и должен быть удален согласно рекомендациям сообщества.
MD XF

@MDXF: это работает с Clang. Вот ссылка на tio.run, 122 байта: tio.run/##S9ZNzknMS///Xy85PyVVryQzXy/…
Г. Слипен

8

C ++ (g ++)

Файл должен быть сохранен как 1.pas.

g++: error: 1.pas: Pascal compiler not installed on this system

4
Есть ли еще работать , если компилятор Паскаля будет установлен в системе?
SuperJedi224

@ SuperJedi224 По крайней мере установка FreePascal не помогает. Я предполагаю, что GNU Pascal может быть правильным компилятором Pascal, но я не пробовал.
jimmy23013

8

INTERCALL , 90 байт

Fatal error: A INTERCALL program must start with the mandatory header to prevent golfing.\n

Включает завершающий перевод строки в конце. Обратите внимание, что это не STDERR, но многие считали это ошибкой, поэтому я разместил ее здесь.

Это «обязательный заголовок»:

INTERCALL IS A ANTIGOLFING LANGUAGE
SO THIS HEADER IS HERE TO PREVENT GOLFING IN INTERCALL
THE PROGRAM STARTS HERE:

Ссылка на репо битая.
connectyourcharger

@connectyourcharger Хм, похоже, репо больше нет.
Эрик Outgolfer

Да, поиски в Google ничего не дают, кроме репо для Intercal.
connectyourcharger

@connectyourcharger Нет необходимости; Есть только 8 репозиториев, называемых «intercall» (без учета регистра), и ни один из них не относится к языку, поэтому можно с уверенностью сказать, что он пропал навсегда (нет, в Wayback Machine тоже ничего нет).
Эрик Outgolfer

8

GHCi (интерпретатор / оболочка Haskell)

Code.hs:1:1: Parse error: naked expression at top level

Использование:

Запишите код в файл с именем Code и загрузите его с помощью GHCi.

Приятным фактом является то, что, если бы слова были фактическими идентификаторами, это было бы допустимым выражением (при условии проверки типов). Это в основном связано с тем, что :это встроенный оператор, .который используется для имен, уточненных модулем, а пробел используется для обозначения приложения функции.


.здесь не оператор Это часть квалифицированного имени. Для какой версии GHCi это?
dfeuer

@dfeuer да, мой плохой. Не стесняйтесь исправить это. Версия GHCI, вероятно, присутствует во всем, что было в то время.
гордый haskeller

7

Ruby 2 в Windows

Код:

error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

Код был найден путем тестирования и повторения процесса снова и снова, пока не будет достигнута фиксированная точка. Код должен быть внутри файла "error.rb".

Демо-версия:

C:\>type error.rb
error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTR
ING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

C:\>ruby.exe error.rb
error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTR
ING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

7

Applescript (в редакторе сценариев)

Syntax Error
A "error" can't go after this identifier.

введите описание изображения здесь


8
это ошибка?
кошка

Статья «А» появляется перед словами, которые начинаются с согласного или согласного звука. Для слов, начинающихся с гласного или гласного звука, правильной статьей является «an». Я просто придирчивый :)
кот

1
@ Cat, я вижу. Да, я никогда не претендовал на грамматическую правильность :)
Digital Trauma

7

AppleScript

Идентификатор не может идти после этого идентификатора.

Оба Aи identifierмогут быть идентификаторами, поэтому AppleScript говорит нет.

идентификаторы


21
он должен быть идентификатор ... давай ....
кот

7

C (GCC)

error.c:1:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
 error.c:1:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
      ^
compilation terminated due to -Wfatal-errors.

Компилировать с gcc -Wfatal-errors error.c.



6

BBC Basic, 7 байт (или 0 байт)

Это допустимая 7-байтовая запись:

Mistake

Это сообщение об ошибке, выдаваемое интерпретатором, когда он совершенно не в состоянии понять код.

С другой стороны, это не так:

ERROR

Это допустимое ключевое слово в BBC Basic, которое должно преднамеренно вносить ошибку указанного кода в программу, но синтаксис неправильный (код не указан.) Поэтому он возвращает Syntax error(который, в свою очередь, возвращается Mistakeпри запуске.)

Вообще процедура, описанная Фалько в его ответе, приводит к тому, что Mistakeв BBC basic. Есть несколько исключений. все, что приводит к ошибкам DATA not LOCALили ON ERROR not LOCALприводит к известной нулевой байте: пустой исходный код создает пустой файл.

Учитывая, что большинство сообщений об ошибках в BBC basic являются строчными (и, следовательно, недействительными ключевыми словами), я почти уверен, что любой неверный ввод в конечном итоге приведет к одной из этих возможностей.


5

CoffeeScript

Сбой при первой ошибке, так что это довольно легко сделать:

E:\foo.coffee:1:3: error: unexpected \
E:\foo.coffee:1:3: error: unexpected \
  ^

демонстрация

E:\>coffee -c foo.coffee
E:\foo.coffee:1:3: error: unexpected \
E:\foo.coffee:1:3: error: unexpected \
  ^

E:\>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.