Zrób błąd quine!


104

Twoje wyzwanie: napisz „program” dla wybranego języka, który spowoduje, że kompilator / interpreter / środowisko wykonawcze wygeneruje błąd podczas kompilacji / uruchamiania programu, który jest identyczny z kodem źródłowym programu.

Zasady:

  • Twój program może być specyficzny dla konkretnej wersji lub implementacji kompilatora / interpretera / środowiska wykonawczego Twojego języka. Jeśli tak, proszę podać dane szczegółowe.
  • Dozwolone są tylko standardowe opcje kompilatora / interpretera / środowiska wykonawczego. Nie można przekazać dziwnej flagi do kompilatora, aby uzyskać określony wynik.
  • Program nie musi być poprawny pod względem składniowym lub semantycznym, ale mogę dać nagrodę za najlepsze zgłoszenie poprawne pod względem składniowym.
  • Program nie może generować żadnych danych wyjściowych (np. Przez wywołanie funkcji drukowania lub wyjścia). Wszystkie dane wyjściowe wygenerowane podczas próby kompilacji / uruchomienia programu muszą pochodzić z kompilatora / interpretera / środowiska wykonawczego.
  • Kompletne wyjście kompilatora / interpretera / środowiska wykonawczego musi być dokładnie identyczne z kodem źródłowym programu.
  • Kompilator / interpreter / środowisko wykonawcze musi wygenerować co najmniej jeden komunikat o błędzie po wywołaniu z programem.

To konkurs popularności . Najbardziej kreatywna odpowiedź, określona przez entuzjastów, wygrywa. Jeśli możesz podać dobry argument za użyciem standardowej luki, możesz to zrobić.


7
Co to jest „ wyjście błędu ”? A co to znaczy „ wygenerować komunikat o błędzie ”? Mówiąc dokładniej: 1) Czy wyjście musi być zgodne ze standardem? 2) Jeśli środowisko wykonawcze rejestruje błąd w syslog i nie zapisuje niczego na stderr, co należy porównać ze źródłem programu? 3) Jeśli środowisko wykonawcze zgłosi wyjątek wewnętrznie, gdy otrzyma pusty program, ale wymaga flagi, aby faktycznie wydrukować wyjątek, a zatem kończy działanie z niezerowym kodem wyjścia, ale bez danych wyjściowych, czy został wygenerowany komunikat o błędzie?
Peter Taylor

1
Próbowałem to zrobić w Javie i otrzymałem oscylator p3. To była najkrótsza faza: (Kompilacja z q.java):Error: Could not find or load main class Q
SuperJedi224

2
Ha, z powodu dwuznaczności składniowej w pierwszym zdaniu, pomyślałem, że wyzwaniem było stworzenie programu, który normalnie nie generuje danych wyjściowych, ale jeśli przekażesz mu własny kod jako dane wejściowe, spowoduje to błąd.
Steve Bennett,

2
Podczas zgłaszania błędu APL zawsze drukuje konfigurowalną nazwę błędu, opcjonalnie komunikat o błędzie, nazwę programu, który spowodował błąd, numer wiersza (w nawiasach kwadratowych), w którym wystąpił błąd, wiersz kodu, który spowodował błąd, oraz linia ze znakiem wskazującym, gdzie zatrzymano analizowanie. Czy jest jakaś nadzieja na udział tutaj?
Adám,

1
@ SteveBennett Dlaczego jeszcze nie podjąłeś tego wyzwania?
CalculatorFeline

Odpowiedzi:


117

Ed (1 bajt)

Wszystkie dotychczasowe rozwiązania są długie i brzydkie. Przypuszczam, że wynika to z natury większości komunikatów o błędach. Ale dobry komunikat o błędzie jest elegancki w swojej prostocie. W tym celu nie szukaj dalej niż ed.

?

Zapisz to w pliku o nazwie edscripti uruchom z ed < edscriptlub uruchom ed<<<?. Wynik:

?

Znak zapytania jest zapisywany do stderr, a ed zwraca 1, więc w rzeczywistości jest to komunikat o błędzie. Zastanawiam się, dlaczego ed nie jest bardzo popularny?

Fałsz (0 bajtów)

Uruchom z false filename. Zapisuje kod źródłowy programu (tj. Nic) do stderr i zwraca 1. Oczywiście, wywołanie fałszywego języka programowania jest wątpliwe, a quine z bajtu zerowego jest nieoryginalne, ale pomyślałem, że równie dobrze mogę go dodać. Prawdopodobnie jest jakiś tłumacz dla języka, który nie drukuje komunikatów o błędach i może zastąpić fałsz.

Teraz chciałbym, żeby to był golf golfowy.


12
Przeglądałem (długą) listę esolangów, aby znaleźć taki język. To jest słabość tego wyzwania. Nie chodzi o pisanie sprytnego programu, chodzi o sprytny wybór języka. : /
Ingo Bürk

23
@ IngoBürk Na szczęście jest to konkurs popularności, a nie golf.
puszysty

0-bajtowa Fałsz to także ten sam kod, który kiedyś zdobył nagrodę „Worst Abuse of Rules” przyznaną przez IOCCC za wykonanie teoretycznie najkrótszej chininy. Miał jednak wiele błędów kompilatora i został napisany w K&R C, a nie ISO C (co jest bardziej rygorystyczne).
Isiah Meadows

6
@ IngoBürk Wiele rzeczywistych problemów dotyczy także sprytnego wyboru języka. : P
Sarge Barszcz

2
@Mendeleev * Quine (Do niedawna ciągle źle czytałem „quine” jako „chinine” z jakiegoś powodu ...)
Isiah Meadows


81

CoffeeScript, poprawny składniowo

Jak przetestowano na ich stronie internetowej przy użyciu Chrome lub Firefox.

ReferenceError: defined is not defined

Możesz zastąpić definedwszystko, co nie jest wbudowaną zmienną, ale myślałem, że ta wersja jest fajna. Niestety undefined is not definedw szczególności nie działa jako quine.

W CoffeeScript nie jest to nawet błąd składniowy, ponieważ się kompiluje. Jest to technicznie błąd w środowisku wykonawczym w JavaScript, aczkolwiek nudny. CoffeeScript jest prawdopodobnie kandydatem do stworzenia bardziej interesujących zapytań o błędach w czasie wykonywania, ponieważ wiele śmiesznych zdań jest poprawnymi kodami. Np. Powyższy przykład kompiluje się do

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

2
definedjest definedRozbiórka defined. Co ... jak ...?
CalculatorFeline

3
Undefined is not defined(ze stolicą U) wydaje się działać lol
Shieru Asakoto,

50

Pyton

Spyder

Cóż, dość trywialnym rozwiązaniem dla Spyder IDE jest podniesienie SyntaxError.

Kod i identyczne wyjście:

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 ze Spyder 2.2.5)


Terminal

Alternatywne rozwiązanie dla Pythona rozpoczęło się od zmagań wiersza poleceń z nieoczekiwanym wcięciem.

Komenda:

python golf.py

Kod i identyczne wyjście:

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

ideone.com

Na ideone.com rozwiązanie może wyglądać następująco. (Spróbuj!)

Kod i identyczne wyjście:

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'))

(Dotyczy to języka Python 2. Przykład dla języka Python 3 jest trywialny, ale z 15 wierszami „kodu” dość długim.)


Ogólne podejście:

Jak stworzyć własne rozwiązanie w 2 minuty?

  1. Otwórz nowy plik w wybranym przez siebie środowisku IDE.
  2. Uderz głową w klawiaturę przed sobą.
  3. Skompilować.
  4. Zastąp kod komunikatem o błędzie kompilatora.
  5. Powtarzaj kroki 3 i 4, aż kod się zbiegnie.

Założę się, że taka procedura kończy się dość szybko w większości przypadków!


6
Jak zapewne możesz powiedzieć, stosuję to ogólne podejście. Nie działa, gdy skopiowany kod stopniowo zwiększa liczbę błędów kompilatora. :-)
rink.attendant. 6

9
@ rink.attendant.6: To wtedy potrzebna jest nasza ceniona specjalistyczna wiedza na temat inżynierii oprogramowania. ;)
Falko,

@ rink.attendant.6 Lub gdy zostaniesz wysłany w kółko. Wypróbuj w oknie programu Excel-VBA.
Dennis Jaheruddin,

45
Zrobiłem krok 1, 2 i 3, ale nie mogłem zrobić kroku 4, kod perla był całkowicie poprawny!
rodolphito,

Hej, co powiesz na IDE w magazynie Pythona, SyntaxError: invalid syntaxprodukuje to samo :) :)
Gurupad Mamadapur,

42

> <> - 25 bajtów

something smells fishy...

W Fish każda zła instrukcja generuje błąd: „coś pachnie podejrzanie ...”. Ponieważ s nie jest prawidłowym poleceniem, natychmiast popełnia błąd.


10
Pamiętaj, że nazwa języka to> <>, co zwykle wymawia się jako „ryba”.
Aaron

1
I to naprawdę „Coś pachnie rybą ...”
Conor O'Brien

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ Na interpreterie pythonowym rzeczywiście tak jest something smells fishy..., ale Something smells fishy...na interpretatorze internetowym. To zależy od tłumacza.
Addison Crump,

1
@VTCAKAVSMoACE Ach, dzięki.
Conor O'Brien

Bo „fish” to nazwa programu / języka powłoki z lat 90. !
Nick T

41

Windows .EXE, 248 bajtów

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.

Nie naprawdę. Zapisz jako quine.txt, a następnie zmień nazwę na quine.exe(lub pobierz tutaj ):


38

Biała przestrzeń

Najpierw pomyślałem, że jest to oczywiście niemożliwe. Ale w rzeczywistości jest to również trywialne. -.-

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

Spróbuj.

Tak, mój pierwszy program do białych znaków! ;)


1
Czy możemy nawet nazwać to programem spacji?
V. Courtois,

1
Czy to błąd tłumacza?
immibis


29

JavaScript

Ponieważ różne przeglądarki używają różnych kompilatorów JavaScript, generują różne komunikaty. Są to jednak dość trywialne rozwiązania.

V8 (Chrome 36 / Node.js)

SyntaxError: Unexpected identifier

wprowadź opis zdjęcia tutaj

SpiderMonkey (Firefox 31)

SyntaxError: missing ; before statement

wprowadź opis zdjęcia tutaj

Chakra (Internet Explorer 11)

Expected ';'

wprowadź opis zdjęcia tutaj


W jsc: Exception: SyntaxError: Unexpected identifier 'identifier': D
klaskać

2
@ConfusedMr_C To dziwny token do uduszenia.
SuperJedi224,

@ SuperJedi224 Tak. Przynajmniej działa: P
klaśnięcie

28

Commodore 64 Basic

?SYNTAX  ERROR

Po uruchomieniu na wybranym emulatorze (lub rzeczywistym Commodore 64), produkuje

?SYNTAX  ERROR

W rzeczywistości jest to poprawny pod względem składni program jednowierszowy. Znak zapytania jest skrót PRINT, a SYNTAXi ERRORsą prawidłowymi nazwami zmiennych. Błąd występuje, ponieważ analizator składni zostaje pomylony przez podciąg ORw ERROR.


5
Jeśli analizator składni zostanie zdezorientowany i zgłosi błąd składniowy, czy nie oznacza to, że nie jest poprawny pod względem składniowym?
Martin Ender

4
@ MartinBüttner, to tak naprawdę zależy od tego, który z nich uważa za „prawidłową składnię”: opis języka lub implementację języka.
Mark

16
Rozumiem, więc technicznie jest poprawny składniowo, ale wyzwala parser z powodu błędu konkretnej implementacji?
Martin Ender

6
Bardziej lub mniej uwikłane przez fakt, że tam jest tylko jedna realizacja.
Mark

Nitpick: CBM BASIC faktycznie drukuje dwie spacje, a nie jedną, między „SYNTAX” i „ERROR”. Niestety nie mogę edytować tej odpowiedzi, aby ją poprawić, ponieważ Stack Exchange narzuca głupie minimum 6 znaków do edycji.
Psychonaut,

28

Microsoft Excel

Formuła: #DIV/0!

Komunikat o błędzie: #DIV/0!

Aby wprowadzić formułę bez użycia znaku równości, przejdź do Opcje programu Excel / Zaawansowane / Ustawienia zgodności Lotus i włącz opcję Wprowadzanie formuły przejścia.


-2 bajty:#REF!
Inżynier Toast

19

Bash (32)

Zapisz jako plik o nazwie x:

x: line 1: x:: command not found

Po uruchomieniu:

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

19

Quine błędu kompilacji Java 8 (12203 bajtów)

Wygenerowano w systemie Windows + mingw z java 1.8.0_11 jdk, używając tego polecenia:

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

Może nie być najkrótszy, może też nie być najdłuższy, a raczej dowód koncepcji. Działa, ponieważ dane wyjściowe błędów pokazują maksymalnie 100 błędów.

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 - Making PPCG Great Again ( TrumpScript )

Podczas próby uruchomienia tego języka na komputerze z systemem Windows dane wyjściowe są zawsze następujące:

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

Podczas uruchamiania tego programu:

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

Nawet go nie przeanalizuje, ponieważ sprawdzenie systemu operacyjnego kończy się niepowodzeniem i pojawia się komunikat o błędzie. Przykłady można podać także dla komputerów Mac, jeśli ktoś chce ich haha. Boże, od jakiegoś czasu chciałem tego użyć w PPCG, dobrze, że w końcu doszedłem.

Pełna lista błędów, które mogą być wywoływane za pomocą specyfikacji środowiskowych:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py


Dodatkowa odpowiedź: ArnoldC ( ArnoldC )

ArnoldC wymaga deklaracji root IT'S SHOWTIME, co oznacza main():

WHAT THE FUCK DID I DO WRONG

Powoduje wyświetlenie jedynego komunikatu o błędzie w ArnoldC ...

WHAT THE FUCK DID I DO WRONG

Co jest właściwie ... przezabawne. Musisz uruchomić go w trybie nieokreślonym, chociaż bez śladów stosu.


9
Powinny to być dwie osobne odpowiedzi.
mbomb007,


12

Julia 0.2.0

Inny błąd składniowy został znaleziony iteracyjnie do momentu osiągnięcia stałego punktu:

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

11

Matematyka

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

A .w Mathematica oznacza przecinek dziesiętny lub funkcję Dot. W takim przypadku .pojawia się na końcu wyrażenia i nie można go interpretować.


wprowadź opis zdjęcia tutaj


Nie sądziłem, że to możliwe.
ngenisis

9

do

Zastosowałem metodę wielokrotnego kopiowania komunikatów o błędach do źródła. Zbiegło się w 2 cyklach. Kompilowany na OSX 10.9 z „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.

Uwaga: To nie tyle odpowiedź, ile metodologia jej uzyskania. Wynik może ulec zmianie w zależności od systemu operacyjnego lub wersji używanego DW.

Dokładną metodą uzyskania wyniku jest wykonanie instrukcji

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

kilkakrotnie, aż wyjście przestanie się zmieniać.


Spróbowałem. Na początku nie działało. Aby to zadziałało, musisz wykonać, cc -c error.c 2>outa następnie mv out error.c. I z wersją cc, którą mam dzisiaj, potrzeba jeszcze kilku iteracji.
Florian F

Warto zauważyć, że w odpowiedzi wymaga określonej wersji OSX cc; w przeciwnym razie jest nieprawidłowy i musi zostać usunięty zgodnie z wytycznymi dla społeczności.
MD XF,

@MDXF: Działa z clang. Oto link do tio.run, 122 bajtów: tio.run
G. Sliepen

8

C ++ (g ++)

Plik musi zostać zapisany jako 1.pas.

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

4
Czy to nadal działa, jeśli kompilator Pascal jest zainstalowany w systemie?
SuperJedi224,

@ SuperJedi224 Przynajmniej instalacja FreePascal nie pomaga. Podejrzewam, że GNU Pascal może być właściwym kompilatorem Pascal, ale nie próbowałem.
jimmy23013

8

INTERCALL , 90 bajtów

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

Zawiera końcowy znak nowej linii na końcu. Zauważ, że to nie jest STDERR, ale wielu uważało to za błąd, więc opublikowałem go tutaj.

To jest „obowiązkowy nagłówek”:

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

Link do repozytorium jest uszkodzony.
connectyourcharger

@connectyourcharger Hm, wygląda na to, że nie ma już repo.
Erik the Outgolfer

Tak, wyszukiwania Google nie przynoszą nic poza repozytoriami dla Intercal.
connectyourcharger

@connectyourcharger Nie ma potrzeby; istnieje tylko 8 repozytoriów zwanych „intercall” (bez rozróżniania wielkości liter) i żadne z nich nie dotyczy języka, więc można śmiało powiedzieć, że zniknęło na dobre (nie, w Wayback Machine też nie ma nic).
Erik the Outgolfer

8

GHCi (interpreter / shell Haskella)

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

Stosowanie:

Wpisz kod do pliku o nazwie Code i załaduj za pomocą GHCi.

Dobrym faktem jest to, że gdyby słowa były rzeczywistymi identyfikatorami, byłoby to wyrażenie prawne (o ile sprawdzałoby typ). Wynika to głównie z faktu, że :jest wbudowanym operatorem, .służy do nazw kwalifikowanych do modułów, a białe znaki są używane do oznaczania aplikacji funkcji.


.nie ma tutaj operatora. To część kwalifikowanej nazwy. Dla jakiej wersji GHCi to jest?
dfeuer

@dfeuer tak, mój zły. Możesz to naprawić. Wersja ghci prawdopodobnie dotyczy tego, co było wtedy.
dumny haskeller

7

Ruby 2 w systemie Windows

Kod:

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...
          ^

Kod został znaleziony przez testowanie i powtarzanie procesu w kółko, aż do osiągnięcia punktu stałego. Kod musi znajdować się w pliku "error.rb".

Próbny:

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 (w edytorze skryptów)

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

wprowadź opis zdjęcia tutaj


8
to błąd?
kot

Artykuł „A” pojawia się przed słowami rozpoczynającymi się od spółgłoski lub dźwięku spółgłoski. W przypadku słów rozpoczynających się samogłoską lub dźwiękiem samogłoski poprawnym artykułem jest „an”. Jestem po prostu nikczemny :)
kot

1
@ kot Widzę. Tak, nigdy nie twierdziłem, że poprawność gramatyczna :)
Cyfrowa trauma

7

AppleScript

Identyfikator nie może podążać za tym identyfikatorem.

Zarówno Ai identifiermoże być identyfikatory, więc AppleScript mówi nie.

identyfikatory


21
powinno być identyfikator ... chodź ....
kot

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.

Kompiluj z gcc -Wfatal-errors error.c.



6

BBC Basic, 7 bajtów (lub 0 bajtów)

To jest poprawny 7-bajtowy wpis:

Mistake

Jest to komunikat o błędzie generowany przez tłumacza, gdy nie jest on w stanie zrozumieć kodu.

Z drugiej strony nie jest to:

ERROR

Jest to poprawne słowo kluczowe w BBC Basic, które ma celowo wprowadzić błąd określonego kodu do programu, ale składnia jest niepoprawna (nie podano kodu). Dlatego zwraca Syntax error(co z kolei zwracaMistake po uruchomieniu).

Ogólnie procedura opisana przez Falko w jego odpowiedzi prowadzi do MistakeBBC basic. Jest kilka wyjątków. cokolwiek, co powoduje błędy DATA not LOCALlubON ERROR not LOCAL prowadzi do słynnej zera bajtów zero-bajtowych: pusty kod źródłowy tworzy pusty plik.

Biorąc pod uwagę, że większość komunikatów o błędach w BBC basic składa się z małych liter (i dlatego nie są poprawnymi słowami kluczowymi), jestem prawie pewien, że każde nieprawidłowe wejście ostatecznie doprowadzi do jednej z tych możliwości.


5

CoffeeScript

Błąd pierwszego błędu, więc jest to dość łatwe:

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

Próbny

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

E:\>

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.