Làm một lỗi quine!


104

Thử thách của bạn: viết một "chương trình", cho ngôn ngữ bạn chọn, khiến trình biên dịch / trình thông dịch / thời gian chạy tạo ra đầu ra lỗi khi biên dịch / chạy chương trình của bạn giống với mã nguồn của chương trình.

Quy tắc:

  • Chương trình của bạn có thể dành riêng cho một phiên bản cụ thể hoặc việc triển khai môi trường trình biên dịch / trình thông dịch / thời gian chạy ngôn ngữ của bạn. Nếu vậy, xin vui lòng chỉ định các chi tiết.
  • Chỉ cho phép tùy chọn trình biên dịch / trình thông dịch / thời gian chạy tiêu chuẩn. Bạn không thể chuyển một số cờ lạ cho trình biên dịch của mình để có kết quả cụ thể.
  • Chương trình không cần phải hợp lệ về mặt cú pháp hay ngữ nghĩa, nhưng tôi có thể đưa tiền thưởng cho bài nộp hợp lệ về mặt cú pháp tốt nhất.
  • Chương trình không được tạo ra bất kỳ đầu ra nào của riêng nó (ví dụ: bằng cách gọi một chức năng in hoặc đầu ra). Tất cả đầu ra được tạo khi cố gắng biên dịch / chạy chương trình phải bắt nguồn từ trình biên dịch / trình thông dịch / thời gian chạy.
  • Đầu ra hoàn chỉnh của trình biên dịch / trình thông dịch / thời gian chạy phải giống hệt với mã nguồn chương trình của bạn.
  • Trình biên dịch / trình thông dịch / thời gian chạy phải tạo ra ít nhất một thông báo lỗi khi được gọi với chương trình của bạn.

Đây là một cuộc thi phổ biến . Hầu hết các câu trả lời sáng tạo, như được xác định bởi upvotes, chiến thắng. Nếu bạn có thể đưa ra một trường hợp tốt để sử dụng một lỗ hổng tiêu chuẩn, bạn có thể làm như vậy.


7
" Đầu ra lỗi " là gì? Và " tạo một thông báo lỗi " nghĩa là gì? Cụ thể hơn: 1) Đầu ra có phải là stderr không? 2) Nếu bộ thực thi ghi lỗi vào syslog và không ghi bất cứ điều gì vào stderr, thì nên so sánh với nguồn của chương trình là gì? 3) Nếu bộ thực thi ném một ngoại lệ bên trong khi được cung cấp một chương trình trống, nhưng yêu cầu một cờ thực sự in ngoại lệ và do đó kết thúc bằng một mã thoát khác không nhưng không có đầu ra, có tạo ra thông báo lỗi không?
Peter Taylor

1
Tôi đã thử làm điều này trong java và có một oscilator p3. Đây là giai đoạn ngắn nhất: (Biên dịch từ q.java):Error: Could not find or load main class Q
SuperJedi224

2
Ha, vì sự mơ hồ cú pháp trong câu đầu tiên, tôi nghĩ rằng thách thức ở đây là tạo ra một chương trình thường không tạo ra đầu ra, nhưng nếu bạn chuyển mã của chính nó sang đầu vào, nó sẽ tạo ra lỗi.
Steve Bennett

2
Khi báo cáo lỗi, APL luôn in tên lỗi tùy chỉnh, tùy chọn thông báo lỗi, tên chương trình gây ra lỗi, số dòng (được đặt trong ngoặc) trong đó xảy ra lỗi, dòng mã gây ra lỗi và với một dấu mũ cho biết nơi phân tích cú pháp dừng lại. Bất kỳ hy vọng để tham gia ở đây?
Adám

1
@SteveBennett Tại sao bạn chưa thực hiện thử thách đó?
Máy

Câu trả lời:


117

Ed (1 byte)

Tất cả các giải pháp khác cho đến nay là dài và xấu. Tôi cho rằng đó là do bản chất của hầu hết các thông báo lỗi. Nhưng một thông báo lỗi tốt là thanh lịch trong sự đơn giản của nó. Đối với điều đó, nhìn không xa hơn ed.

?

Lưu tệp này vào một tệp được gọi edscriptvà chạy với ed < edscripthoặc chạy ed<<<?. Kết quả:

?

Dấu hỏi được ghi vào stderr và ed trả về 1, vì vậy đây thực sự là một thông báo lỗi. Tôi tự hỏi tại sao ed không phổ biến?

Sai (0 byte)

Chạy với false filename. Nó viết mã nguồn của chương trình (tức là không có gì) vào stderr và trả về 1. Tất nhiên, việc gọi sai một ngôn ngữ lập trình là đáng nghi ngờ, và quine 0 byte là không có nguồn gốc, nhưng tôi nghĩ tôi cũng có thể thêm nó. Có lẽ có một số trình thông dịch cho một ngôn ngữ in không có thông báo lỗi và có thể thay thế sai.

Bây giờ tôi muốn đây là mã golf.


12
Tôi đã xem qua danh sách (dài) các esolang để tìm một ngôn ngữ như thế này. Đây là điểm yếu của thử thách này. Không phải là viết một chương trình thông minh, mà là về việc lựa chọn ngôn ngữ một cách khéo léo. : /
Ingo Bürk

23
@ IngoBürk May mắn thay đây là một cuộc thi phổ biến, không phải là một môn golf.
lông mịn

Sai 0 byte cũng là mã tương tự mà tại một thời điểm đã giành được giải thưởng "Lạm dụng tồi tệ nhất các quy tắc" của IOCCC vì đã tạo ra quinine ngắn nhất về mặt lý thuyết. Tuy nhiên, nó có rất nhiều lỗi biên dịch và nó được viết bằng K & R C, không phải ISO C (nghiêm ngặt hơn).
Isiah Meadows

6
@ IngoBürk Nhiều vấn đề thực tế là về việc lựa chọn ngôn ngữ một cách khéo léo. : P
Sange Borsch

2
@Mendeleev * Quine (Cho đến gần đây, tôi liên tục đọc nhầm "quine" là "quinine" vì một số lý do ...)
Isiah Meadows

119

Dấu nhắc lệnh Windows

& was unexpected at this time.

nhập mô tả hình ảnh ở đây


Lưu ý rằng điều này |cũng làm việc với .
MD XF

5
& đã bất ngờ vào lúc này. +1
làm việc

81

CoffeeScript, cú pháp hợp lệ

Như đã thử nghiệm trên trang web của họ bằng Chrome hoặc Firefox.

ReferenceError: defined is not defined

Bạn có thể thay thế definedbằng bất cứ thứ gì không phải là biến tích hợp, nhưng tôi nghĩ phiên bản này rất thú vị. Thật không may, undefined is not definedđặc biệt không hoạt động như một quine.

Trong CoffeeScript, đây thậm chí không phải là lỗi cú pháp, vì nó biên dịch. Về mặt kỹ thuật, đây là lỗi thời gian chạy trong JavaScript, mặc dù lỗi nhàm chán. CoffeeScript là một ứng cử viên có khả năng tạo ra một số hạn chế lỗi thời gian chạy thú vị hơn vì rất nhiều câu hài hước là mã hợp lệ. Ví dụ: ví dụ trên biên dịch thành

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

2
definedlà bởi definedition defined. Cái ... thế nào ...?
Máy

3
Undefined is not defined(có vốn U) dường như hoạt động lol
Shieru Asakoto

50

Con trăn

Gián điệp

Chà, một giải pháp khá tầm thường cho Spyder IDE là đưa ra một SyntaxError.

Mã và đầu ra giống hệt nhau:

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 với Spyder 2.2.5)


Thiết bị đầu cuối

Một giải pháp thay thế cho Python bắt đầu từ cuộc đấu tranh dòng lệnh với một vết lõm bất ngờ.

Chỉ huy:

python golf.py

Mã và đầu ra giống hệt nhau:

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

ideone.com

Trên ideone.com một giải pháp có thể như sau. (Thử nó!)

Mã và đầu ra giống hệt nhau:

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

(Đây là cho Python 2. Một ví dụ cho Python 3 là tầm thường nhưng với 15 dòng "mã" khá dài.)


Cách tiếp cận chung:

Làm thế nào để tạo ra giải pháp của riêng bạn trong 2 phút?

  1. Mở một tệp mới trong IDE bạn chọn.
  2. Gục đầu vào bàn phím trước mặt bạn.
  3. Biên dịch.
  4. Thay thế mã bằng thông báo lỗi trình biên dịch.
  5. Lặp lại bước 3 và 4 cho đến khi mã hội tụ.

Tôi cá là một thủ tục như vậy chấm dứt khá nhanh trong hầu hết các trường hợp!


6
Như bạn có thể nói, tôi đang sử dụng phương pháp chung đó. Nó không hoạt động khi mã được sao chép tăng dần số lượng lỗi biên dịch. :-)
rink.attguard.6

9
@ rink.attguard.6: Đó là khi kiến ​​thức chuyên môn có giá trị của chúng tôi về công nghệ phần mềm là bắt buộc. ;)
Falko

@ rink.attguard.6 Hoặc khi bạn bị đuổi khỏi vòng tròn. Hãy thử nó trong cửa sổ ngay lập tức Excel-VBA.
Dennis Jaheruddin

45
Tôi đã làm bước 1, 2 và 3, nhưng tôi không thể làm bước 4, mã perl hoàn toàn hợp lệ!
Rodolphito

Này, làm thế nào về điều này trong IDE cổ trăn, cũng SyntaxError: invalid syntaxtạo ra điều tương tự :)
Gurupad Mamadapur

42

> <> - 25 byte

something smells fishy...

Trong Fish, bất kỳ hướng dẫn xấu nào cũng dẫn đến lỗi: "thứ gì đó có mùi tanh ...". Vì s không phải là một lệnh hợp lệ, nó bị lỗi ngay lập tức.


10
Xin lưu ý rằng tên ngôn ngữ là> <>, thường được phát âm là "cá".
Aaron

1
Và nó thực sự là "Thứ gì đó có mùi tanh ..."
Conor O'Brien

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ Trên trình thông dịch python, thực sự là vậy something smells fishy..., nhưng nó là Something smells fishy...trên trình thông dịch trực tuyến. Nó phụ thuộc vào người phiên dịch.
Addison Crump

1
@VTCAKAVSMoACE À, cảm ơn.
Conor O'Brien


41

Windows .EXE, 248 byte

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.

Không, thực sự. Lưu dưới dạng quine.txt, sau đó đổi tên thành quine.exe(hoặc tải xuống tại đây ):


38

Khoảng trắng

Đầu tiên tôi nghĩ điều này rõ ràng là không thể. Nhưng thật ra nó cũng tầm thường. -.-

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

Thử nó.

Vâng, chương trình khoảng trắng đầu tiên của tôi! ;)


1
Thậm chí chúng ta có thể gọi đây là một chương trình khoảng trắng?
V. Courtois

1
Đây có phải là một lỗi phiên dịch?
Immibis


29

JavaScript

Vì các trình duyệt khác nhau sử dụng các trình biên dịch JavaScript khác nhau, chúng tạo ra các thông báo khác nhau. Tuy nhiên, đây là những giải pháp khá tầm thường.

V8 (Chrome 36 / Node.js)

SyntaxError: Unexpected identifier

nhập mô tả hình ảnh ở đây

Nhện (Firefox 31)

SyntaxError: missing ; before statement

nhập mô tả hình ảnh ở đây

Luân xa (Internet Explorer 11)

Expected ';'

nhập mô tả hình ảnh ở đây


Trong jsc:: Exception: SyntaxError: Unexpected identifier 'identifier'D
vỗ tay

2
@ConfuseMr_C Đó là một mã thông báo mạnh hơn để bóp nghẹt.
SuperJedi224

@ SuperJedi224 Có. Ít nhất là nó hoạt động: P
vỗ tay

28

Hàng hóa 64 cơ bản

?SYNTAX  ERROR

Khi chạy trên trình giả lập bạn chọn (hoặc một hàng hóa thực tế 64), sẽ tạo ra

?SYNTAX  ERROR

Trên thực tế, đây là một chương trình một dòng có giá trị cú pháp. Dấu chấm hỏi là một phím tắt cho PRINT, và SYNTAXERRORlà tên biến hợp lệ. Lỗi xảy ra do trình phân tích cú pháp bị nhầm lẫn bởi chuỗi con ORtrong ERROR.


5
Nếu trình phân tích cú pháp bị nhầm lẫn và gây ra lỗi cú pháp, điều đó có làm cho nó không hợp lệ về mặt cú pháp không?
Martin Ender

4
@ MartinBüttner, điều đó thực sự phụ thuộc vào việc bạn xem xét thẩm quyền cho "cú pháp hợp lệ": mô tả ngôn ngữ hoặc việc triển khai ngôn ngữ.
Đánh dấu

16
Tôi thấy, về mặt kỹ thuật là hợp lệ về mặt cú pháp nhưng nó vấp phải trình phân tích cú pháp do lỗi của một triển khai cụ thể?
Martin Ender

6
Ít nhiều, bị bối rối bởi thực tế chỉ có một thực hiện.
Đánh dấu

Nitpick: CBM BASIC thực sự in hai khoảng trắng, không phải một, giữa "SYNTAX" và "ERROR". Thật không may, tôi không thể chỉnh sửa câu trả lời này để sửa nó, vì Stack Exchange áp đặt mức tối thiểu 6 ký tự ngớ ngẩn cho các chỉnh sửa.
Phi hành gia

28

Microsoft Excel

Công thức: #DIV/0!

Thông báo lỗi: #DIV/0!

Để nhập công thức mà không sử dụng dấu bằng, hãy đi vào Tùy chọn Excel / Cài đặt tương thích nâng cao / Lotus và bật Mục nhập công thức chuyển tiếp.



19

Bash (32)

Lưu dưới dạng tệp có tên x:

x: line 1: x:: command not found

Khi chạy:

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

19

Kiểm tra lỗi biên dịch Java 8 (12203 byte)

Được tạo trên windows + mingw với java 1.8.0_11 jdk, sử dụng lệnh này:

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

Có thể không phải là ngắn nhất, cũng có thể không phải là dài nhất, hơn nữa là một bằng chứng về khái niệm. Hoạt động vì đầu ra lỗi hiển thị tối đa 100 lỗi.

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 - Làm cho PPCG trở lại tuyệt vời ( TrumpScript )

Khi cố chạy ngôn ngữ này trên PC Windows, đầu ra luôn là:

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

Vì vậy, khi chạy chương trình này:

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

Nó thậm chí sẽ không phân tích cú pháp vì kiểm tra hệ điều hành không thành công và bạn nhận được thông báo lỗi. Ví dụ cũng có thể được cung cấp cho Mac nếu có ai muốn chúng haha. Chúa tôi đã muốn sử dụng điều này trong PPCG một thời gian rồi, cuối cùng tôi cũng nhận được.

Danh sách đầy đủ các lỗi có thể được kích hoạt bằng cách sử dụng thông tin cụ thể về môi trường:
https://github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py


Phần thưởng trả lời: ArnoldC ( ArnoldC )

ArnoldC yêu cầu khai báo gốc IT'S SHOWTIME, có nghĩa là main(), vì vậy:

WHAT THE FUCK DID I DO WRONG

Kết quả trong thông báo lỗi duy nhất trong ArnoldC ...

WHAT THE FUCK DID I DO WRONG

Mà, thực sự là ... vui nhộn. Bạn phải chạy nó không dài dòng mặc dù không có dấu vết ngăn xếp.


9
Đây nên là hai câu trả lời riêng biệt.
mbomb007


12

Julia 0.2.0

Một lỗi cú pháp khác được tìm thấy lặp đi lặp lại cho đến khi đạt được một điểm cố định:

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

11

Toán học

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

A .trong Mathicala có nghĩa là dấu thập phân hoặc hàm Dot. Trong trường hợp này, sự .xuất hiện ở cuối của một biểu thức và không thể được giải thích.


nhập mô tả hình ảnh ở đây


Tôi không nghĩ rằng nó có thể.
ngenisis

9

C

Tôi đã áp dụng phương pháp sao chép liên tục các thông báo lỗi vào nguồn. Nó hội tụ trong 2 chu kỳ. Được biên dịch trên OSX 10.9 với '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.

Lưu ý: Đây không phải là một câu trả lời vì nó là một phương pháp để có được một câu trả lời. Kết quả có thể thay đổi tùy thuộc vào HĐH của bạn hoặc phiên bản cc bạn đang sử dụng.

Phương pháp chính xác để có kết quả là thực hiện các hướng dẫn

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

lặp đi lặp lại cho đến khi đầu ra ngừng thay đổi.


Tôi đã thử lại. Nó đã không làm việc lúc đầu. Để làm cho nó hoạt động, bạn phải thực hiện cc -c error.c 2>outvà sau đó mv out error.c. Và với phiên bản cc tôi có ngày hôm nay, phải mất thêm vài lần lặp lại.
Florian F

Bạn có thể muốn lưu ý rằng trong câu trả lời của bạn, nó yêu cầu một phiên bản OSX cụ thể cc; mặt khác, nó không hợp lệ và phải được xóa theo hướng dẫn của cộng đồng.
MD XF

@MDXF: Nó hoạt động với tiếng kêu. Đây là một liên kết đến tio.run, 122 byte: tio.run/##S9ZNzknMS///Xy85PyVVryQzXy/ Lỗi
G. Sliepen

8

C ++ (g ++)

Các tập tin phải được lưu dưới dạng 1.pas.

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

4
Nó vẫn hoạt động nếu trình biên dịch Pascal được cài đặt trong hệ thống?
SuperJedi224

@ SuperJedi224 Ít nhất cài đặt FreePascal không giúp được gì. Tôi cho rằng GNU Pascal có thể là trình biên dịch Pascal đúng, nhưng tôi đã không thử.
jimmy23013

8

INTERCALL , 90 byte

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

Bao gồm một dòng mới ở cuối. Lưu ý rằng đây không phải là STDERR, nhưng nó được coi là đầu ra lỗi bởi nhiều người, vì vậy tôi đã đăng nó ở đây.

Đây là "tiêu đề bắt buộc":

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

Liên kết đến repo bị hỏng.
Connectyourcharger

@connectyourcharger Hừm, hình như không còn repo nữa.
Erik the Outgolfer

Vâng, các tìm kiếm của Google không mang lại kết quả gì ngoại trừ repos cho Intercal.
Connectyourcharger

@connectyourcharger Không cần; chỉ có 8 repos được gọi là "intercall" (không phân biệt chữ hoa chữ thường) và không có bản nào trong số đó là về ngôn ngữ, vì vậy có thể nói rằng nó sẽ tốt (không, không có gì trong Wayback Machine cả).
Erik the Outgolfer

8

GHCi (trình thông dịch / shell Haskell)

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

Sử dụng:

Viết mã trong một tệp có tên Code và tải bằng GHCi.

Một thực tế tốt đẹp là, nếu các từ là định danh thực tế, đây sẽ là một biểu thức pháp lý (miễn là nó sẽ đánh máy). Điều này về cơ bản là do thực tế :là một toán tử tích hợp, .được sử dụng cho các tên đủ điều kiện mô-đun và khoảng trắng được sử dụng để biểu thị ứng dụng hàm.


.không phải là một nhà điều hành ở đây. Đó là một phần của một cái tên đủ điều kiện. Phiên bản này của GHCi là gì?
dfeuer

@dfeuer vâng, xấu của tôi. Hãy sửa nó. Phiên bản ghci có lẽ là xung quanh bất cứ điều gì đã được đưa ra tại thời điểm đó.
tự hào

7

Ruby 2 trên Windows

Mã số:

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

Mã được tìm thấy bằng cách kiểm tra và lặp đi lặp lại quá trình cho đến khi đạt đến điểm sửa lỗi. Mã phải nằm trong tập tin "error.rb".

Bản giới thiệu:

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 (trong Script Editor)

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

nhập mô tả hình ảnh ở đây


8
đó là một lỗi?
con mèo

Bài báo "A" xuất hiện trước các từ bắt đầu bằng phụ âm hoặc phụ âm. Đối với các từ bắt đầu bằng nguyên âm hoặc nguyên âm, bài viết đúng là "an". Tôi chỉ là nitpicky :)
con mèo

1
@cat tôi thấy. Đúng, tôi chưa bao giờ tuyên bố đúng ngữ pháp :)
Chấn thương kỹ thuật số

7

AppleScript

Một định danh không thể đi sau định danh này.

Cả hai Aidentifiercó thể là định danh, vì vậy AppleScript nói không.

định danh


21
nó phải là một định danh ... thôi nào ....
con mèo

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.

Biên dịch với gcc -Wfatal-errors error.c.



6

BBC Basic, 7 byte (hoặc 0 byte)

Đây là một mục 7 byte hợp lệ:

Mistake

Đây là thông báo lỗi do trình thông dịch tạo ra khi nó hoàn toàn không thể hiểu được mã.

Mặt khác, đây không phải là:

ERROR

Đây là một từ khóa hợp lệ trong BBC Basic, được cho là cố tình đưa lỗi của một mã được chỉ định vào chương trình, nhưng cú pháp sai (không có mã nào được đưa ra.) Do đó, nó trả về Syntax error(lần lượt trả về Mistakekhi chạy.)

Nói chung, thủ tục được mô tả bởi Falko trong câu trả lời của ông dẫn đến Mistakecơ bản của BBC. Có một vài trường hợp ngoại lệ. bất cứ điều gì tạo ra lỗi DATA not LOCALhoặc ON ERROR not LOCALdẫn đến quine zero byte nổi tiếng: một mã nguồn trống tạo ra một tệp trống.

Vì hầu hết các thông báo lỗi trong BBC cơ bản là chữ thường (và do đó không phải là từ khóa hợp lệ) Tôi khá chắc chắn rằng bất kỳ đầu vào không hợp lệ nào cuối cùng sẽ dẫn đến một trong những khả năng này.


5

Cà phê

Lỗi ở lỗi đầu tiên, do đó khá dễ thực hiện:

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

Bản giới thiệu

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

E:\>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.