이 언어는 언제 발표 되었습니까?


92

당신의 도전은 간단합니다. 작성된 언어가 릴리스 된 연도에 STDOUT 또는 파일로 인쇄하는 프로그램을 작성해야합니다. 이것은 간단한 작업이므로 가능한 한 다른 언어로 작성해야합니다.

당신의 점수는 올바르게 인쇄 된 다른 연도의 총 수입니다.

사용하는 각 언어마다

  • 사용중인 언어의 버전을 지정하십시오. (여러 버전이있는 경우)

  • 해당 버전이 처음 출시 된 연도를 지정하고

  • 버전 / 언어 날짜를 증명하는 페이지에 대한 링크를 제공하십시오.

버전 번호 (해당되는 경우)와 릴리스 날짜를 지정하는 한 이들 중 하나가 릴리스 날짜 증명으로 계산됩니다.

  • 위키 백과 페이지

  • esolangs 페이지입니다.

  • 언어의 공식 웹 사이트. 릴리스 날짜가있는 한 github 페이지 또는 이와 유사한 수. (코드 어딘가에 버전 번호가 없으면 최신 커밋은 계산되지 않습니다)

언어의 여러 버전 또는 릴리스가없는 경우 언어의 초기 릴리스 날짜를 사용하십시오.

같은 언어의 마이너 버전 않는 한 서로 다른 세에서 와서 아직 정확한 출력을 생성으로, 서로 다른 언어를 계산합니다. 사용중인 언어의 현재 버전에 대한 정보 (릴리스 날짜 포함)를 제공하는 내장을 사용할 수 없습니다 . 예를 들어, 이것은 잘못된 파이썬 제출입니다.

import platform
i = platform.python_version()
if i == '3.5':
    print(2015)
if i == '3.4':
    print(2014)
if i == '3.3':
    print(2012)
...

어느 제출물이 가장 뚜렷한 년 승리를 올바르게 인쇄하는지!

규칙

  • 각 프로그램은 언어의 해 출력한다 아무것도 더를 . 후행 줄 바꿈 (Windows 스타일 또는 * nix 스타일)이 허용됩니다.

  • 어떤 프로그램도 입력 할 수 없습니다.

  • 동점 인 경우 바이트 단위로 기록 된 가장 짧은 코드가 우선합니다. 이를 위해 원하는 인코딩을 사용할 수 있지만 모든 프로그램은 동일한 인코딩을 사용해야합니다.

  • 올바른 출력이 여전히 STDOUT 또는 파일로 인쇄되는 한 모든 프로그램이 STDERR로 인쇄되거나 런타임 / 컴파일 시간 오류 및 경고 발생 시킬 수 있습니다.

  • 언어마다 다른 IO 방법을 사용할 수 있지만 대부분은 전체 프로그램 (이 과제에서는 허용되지 않는 기능)이며 허용 된 기본 IO 방법 중 하나를 따릅니다 .

행복한 골프 폴리 글로 팅!


Pip 에는 Wikipedia 또는 Esolangs 페이지가 없기 때문에 GitHub 만 있고 GitHub의 의미에서 "릴리스"가없는 경우이 챌린지에 사용할 수 없습니까? (커밋 할 때마다 업데이트되는 버전 번호가 있습니다.)
DLosc

1
@dlosc 글쎄, 나는 어떤 언어도 불필요하게 배제하고 싶지 않지만, "출시일"이 완전히 객관적인지 확인하고 싶다. 더 많은 언어를 포함하는 릴리스 날짜를 적용하는 더 좋은 방법을 생각할 수 있습니까?
DJMcMayhem

4
(따라서 기본적으로 모든 단일 제출에서 2003을 인쇄하기 위해 공백 코드를 삽입합니다 )
Value Ink

8
" 사용중인 언어 의 현재 버전 에 대한 정보를 제공하는 내장을 사용할 수 없습니다 ." 나의 강조. 인터프리터 파일에서 빌드 날짜를 찾을 수 있습니까?
Adám

2
나는 이것이 하나의 사본이라고 생각하지 않습니다. 그것이 그렇더라도,이 도전은 다른 도전과 달리, 사용자가 나가서 사용하고있는 것에 대해 배우도록 장려하기 때문에 '원본'으로 받아 들여 져야합니다.

답변:


159

2D 프로그래밍 언어의 간략한 역사 : 16 (+2) 년

v19977/2{@{{4{\_______>/02&&&#????        *    P+++++1P1P-1P+1E     *                         *
\'\02'oo100@n590@n;                       *                         *                         *
>"8991",,,;5-;,@                          *                         *                         *
   *                                      *                         *                         *
  \ *              ++++++++++++++++++++++++  ++++++++++++++++++++++++  ++O--OO++++++++OX*******      *
     *   #2018O@       *                  *      *                  *      *                  *      *
      *                *                  *      *                  *      *                  *      *
       *               *                  *      *                  *      *                  *      *
        *           ****    ****          *   ****    ****          *   ****    ****          *   ****    *****
         *         *   *   *    *         *  *   *   *    *         *  *   *   *    *         *  *   *   *
          *        *   *  *      *        *  *   *  *      *        *  *   *  *      *        *  *   *  *
           *      *    * ****     *       * *    * ****     *       * *    * ****     *       * *    * ****
            *     *    *     *            * *    *     *            * *    *     *            * *    *     *
R"2014";     *****      *******       ******      *******       ******      *******       ******      *******

 x
x%"2010"x
 x

$'main'        \/\/\/\
 \-[2005]o-#   \++++++\
               /++++++/
               \++++++\
               /++++++/
               \/\/\/\++.--..+++.#

S1^2^2^6^8MAOUOAOOF

      /K:0:1:@

  >      "7102"4&o@

|        }+++++[>++++++++++<-]>.--..++++++.@

2D 프로그래밍 언어를 좋아한다고 언급 했습니까?

1993 년 : Befunge

마지막 섹션을 보았던 언어가 모든 것을 시작했습니다. 비 펀지, 당신과 제어 흐름 리디렉션 할 수 <v>^있지만, 지금은 유비쿼터스 거울을 \하고 /아직 일이 아니었다. Anarchy Golf에 사용 된 Befunge 인터프리터 는 알 수없는 명령을 무시합니다. 이것을 사용하여 Befunge 제품군을> <> 제품군과 구별 할 수 있습니다. 따라서 Befunge가 실행 한 코드는 다음과 같습니다.

v
\
>"8991",,,;5-;,@

"8991"스택에 개별 문자를 푸시합니다. ,,,처음 세 개를 인쇄합니다. 그리고 ;(우리는 비 펀지 (98)과 구별하는 데 사용할 함), 알 수없는 5-83,도 전에 인쇄 @프로그램을 종료합니다.

1997 : 위 어드

솔루션의이 부분을 작성하는 것은 모든 다른 사람을 쓰는만큼 아마 나를 데려 함께 피팅 ...

Wierd는 공간과 다른 모든 두 가지 기호 만 알고 있습니다. 명령어 포인터는 비 공백 문자로 구성된 경로를 따라 왼쪽 상단에서 대각선으로 시작하여 항상 가능한 한 직진하려고합니다. 경로의 구부러짐은 실제 명령을 구성합니다 (턴 정도는 실행할 명령을 결정 함). Wierd가 본 코드는 다음과 같습니다.

v1997                                     *                         *                         *
 '                                        *                         *                         *
  8                                       *                         *                         *
   *                                      *                         *                         *
    *              ++++++++++++++++++++++++  ++++++++++++++++++++++++  ++O--OO++++++++OX*******      *
     *                 *                  *      *                  *      *                  *      *
      *                *                  *      *                  *      *                  *      *
       *               *                  *      *                  *      *                  *      *
        *           ****    ****          *   ****    ****          *   ****    ****          *   ****    *****
         *         *   *   *    *         *  *   *   *    *         *  *   *   *    *         *  *   *   *
          *        *   *  *      *        *  *   *  *      *        *  *   *  *      *        *  *   *  *
           *      *    * ****     *       * *    * ****     *       * *    * ****     *       * *    * ****
            *     *    *     *            * *    *     *            * *    *     *            * *    *     *
             *****      *******       ******      *******       ******      *******       ******      *******

1997상단은 실제로 실행하지만, 이상한 우리가있는 소스 코드에서 읽을 수 있습니다되지 않은 많은 그것처럼 보이지 않는 경우에도 (네 자리 숫자 자체에 대한 문자 코드를 구성하는 것보다 짧은 .. ). 이 전체를 무너 뜨리고 싶지는 않지만 반복되는 4 개의 섹션을 명확하게 볼 수 있습니다. 이것이하는 일은 먼저 1스택에 저장 한 다음이 네 개의 섹션 각각이 이것을 증가시킨 1다음 분기하는 것입니다. 하단 지점은 다른 지점을 밀어1,이 좌표에서 소스 문자를 검색하여 인쇄하지만 상단 분기는 다음 섹션으로 리디렉션됩니다. 경로의 끝이 불필요하게 긴 이유를 궁금해 할 수도 있지만, Wierd가 경로의 끝에 도달하면 현재 분기를 종료하기로 결정하기 전에 가까운 경로로 점프하려고하기 때문입니다. 이를 피하려면 이러한 끝을 다른 코드에서 충분히 멀리 이동해야합니다.

1998 년 : Befunge 98

Befunge는 1998 년에 임의의 차원으로 일반화 할 수있는 매우 엄격한 사양으로 상당히 잘 알려진 업데이트를 받았습니다 (임의의 토폴로지라고 생각합니다). 그래도 Befunge와 하위 호환이 가능하여 둘을 폴리 글로 팅하기가 매우 쉽습니다. 이 Befunge에는 여전히 미러가 없었으므로 실행 경로는 Befunge 93과 동일합니다.

v
\
>"8991",,,;5-;,@

차이점은 Befunge 98은를 무시하지 않는다는 것 ;입니다. 대신 다음 명령까지 모든 명령 ;이 무시 된다는 점에서 주석처럼 작동합니다 . 이 방법은, 우리는 감소하지 않습니다 8에를 3하고, 인쇄 1998등이다.

2001 년 : 스페이스 오드 ... 탁구

2001 년은 Piet의 해이지만 다른 모든 프로그램과 함께 이미지 파일을 폴리 글로 팅하는 느낌이 들지 않았으므로 여기에 덜 알려진 2D 언어가 있습니다. 꽤 많은 기능을 가지고있는 것 같습니다 (우리는 사용하지 않을 것입니다). 원래 통역사 (공식 웹 사이트의 보관 된 버전에서 유일하게 죽은 링크) 를 찾은 Sp3000에게 감사합니다 .

PingPong은 미러 있고 <v>^리디렉터가 없다는 점에서 다소 특이 합니다. 그래서 이것은 v19977시작시를 통과 한 다음 바닥을 감싸는 거울에 부딪칩니다. 관련 코드는 다음과 같습니다.

v19977/

...

      /K:0:1:@

...

실제 코드는 매우 간단합니다. Kpushs 20, 숫자 자체를 푸시하고 :정수를 인쇄 @하고 프로그램을 종료합니다.

2003 년 : SNUSP

SNUSP는 명시적인 진입 점을 지원하기 때문에 상황이 조금 더 쉬워지는 첫 번째 언어입니다. 해당 진입 점은로 표시됩니다 $. esolangs의 일부 기사에서 볼 때이 언어는 다른 여러 언어에 영감을 주었지만 불행히도 하루가 끝날 때 Brainfuck 파생물입니다. 즉, 이것이 현재 셀을 48로 설정하는 방식이 매우 깔끔하다고 생각합니다 (그리고 esolangs 기사에서 도난당했습니다). 코드의 관련 부분은 다음과 같습니다.

$'main'        \/\/\/\
               \++++++\
               /++++++/
               \++++++\
               /++++++/
               \/\/\/\++.--..+++.#

이것들은 24 +초이며 미러는 IP를 정확히 두 번 통해 보냅니다.

2004 년 : Axo

어떤 이유로 들어,이 언어는 않습니다<^>대신 보통의 리디렉터 v가 사용 %. 따라서 이것은 첫 번째 줄을 가로 질러 움직입니다. 관련 코드는 다음과 같습니다

v19977/2{@{{4{\

우리는 시작하기 위해 몇 자리 숫자를 누르고 나누기를 수행합니다. 그런 다음 2{를 인쇄 2, @스택을 지 웁니다. {{두 개의 (암시 적) 0s를 인쇄합니다 . 4{를 출력 4하고 \프로그램을 종료합니다.

2005 : 레일

2005 년은 어려운 선택이었습니다. 다른 년 동안했던 나는 많은 2D 언어를 발견하고이 조정되고에서 시작 둘 아치 밑의 통로, 아래 왼쪽 모서리가 (이 그들을 쉽게 추가 만들었을 것입니다). 나는 Rail을 좋아하지만 명시적인 진입 점이 있기 때문에 추가하기가 어렵지 않았습니다. Rail은로 시작하는 라인을 찾고에서에서 $'main'남동쪽으로 이동하기 시작합니다 $. 즉 관련 코드는 다음과 같습니다.

$'main'
 \-[2005]o-#

\-단지는 (어떤 작전) 추적되지 않습니다. 는 [2005]리터럴 문자열 o전에 인쇄 #프로그램을 종료합니다.

2006 년 : BestFriends.js

2 차원적인 Brainfuck. 올해도 Black이라는 또 다른 흥미로운 언어가 있는데,이 언어는 좌표 (3,3)(1 기반) 에서 시작 하여 이것도 폴리 글 로트에서 재미있게 사용했을 것입니다. 그래도 통역사를 찾지 못했습니다. 따라서 우리는 다른 BF 파생물과 함께 작업해야합니다.

이것에 대한 흥미로운 점은 그리드를 다른 2D 언어와 같이 줄 바꿈이있는 줄로 형식화하지 않는다는 것입니다. 대신 |줄 구분 기호로 사용됩니다. |다른 언어를 사용하지 않았 |으므로 BF.js에 관한 한 프로그램의 전체 나머지를 한 줄로 만드는 마지막 줄을 간단히 넣을 수 있습니다. 관련 코드는 다음과 같습니다 ( |실제 줄 바꿈으로 바꿈).

v19977/2{...
        }+++++[>++++++++++<-]>.--..++++++.@

BF.js는 미러도 사용 하지 <v>^ 않습니다. 제어 흐름을 리디렉션하는 유일한 방법 {}은 IP 방향을 90 ° 돌리는 것입니다. 따라서이 중괄호는 IP를 두 번째 줄로 이동합니다. 나머지는 셀을 50(코드 포인트 )로 설정 하고 값을 비트 주위로 이동하여 2인쇄 하는 일반 Brainfuck 솔루션입니다 (특히 골프는 아닙니다) 2006. @프로그램을 종료합니다.

2008 년 : BrainSpace 1.0

올해 에는 여러 진입 점을 사용하고 FissionZiim의 애인 처럼 보이는 DOBELA 를 사용 하고 싶었습니다 . 불행히도, 통역사가 일을 할 수 없었습니다. 여기 또 다른 BF 파생물이 있습니다 (마지막 약속).

마지막 코드와 달리 미러와 미러를 모두 알고 <v>^있으므로 관련 코드는 다음과 같습니다.

v
\'\
  8

  \ *              ++++++++++++++++++++++++  ++++++++++++++++++++++++  ++O--OO++++++++OX

이것은 일반적인 BF 스타일 []루프를 가지고 있지 않으므로 (실제로 2D 루프를 형성해야합니다) 50어쨌든 Wierd에서 수많은 문자를 연속으로 가지고 있기 때문에 하드 코딩하기로 결정했습니다 . 점을 유의 '하고 8무시하는이 (가) *우리가 무시할 수있는 조건 트램 폴린하고는 O브레인 퍽의입니다 .. 는 X프로그램을 종료합니다.

2009 년 : > <>

아마도이 부품 주위에서 가장 인기있는 Fungeoid (Befunge 자체 제외) 일 것입니다. > <>은 <v>^미러와 문자열 리터럴을 모두 가지고 있으므로 실행 된 코드는 다음과 같습니다.

v
\'\02'oo100@n590@n;

문자열 리터럴은 대부분 \BrainSpace 1.0에 사용했던 것을 건너 뛰는 역할을 하지만 우리가있는 동안 처음 두 문자를 푸시 할 수도 있습니다. oo그들을 인쇄합니다. 그런 다음 100세 자리 숫자를 밀고 @맨 위를 맨 아래로 밀고 n0아래에 인쇄합니다 . 우리는 같은 것을 다시 590인쇄합니다 9. 내가 왜 그대로 인쇄하지 않는지 궁금하다면 20092015 년을 기다리십시오. ;프로그램이 종료됩니다.

2010 : 추기경

이 항목은에 명시적인 진입 점이 있기 때문에 간단했습니다 %. 그러나 이것은 모든 방향으로 4 개의 IP를 생성하므로 언어 ​​이름을 제거해야합니다. 관련 코드는 다음과 같습니다.

 x
x%"2010"x
 x

그래 (카디널에서 문자열 모드는 문자를 스택에 넣지 않고 직접 인쇄합니다.)

2011 년 : RunR

이번에 는에 명시적인 진입 점을 가진 또 다른 언어 ( 다양한 아주 멋진 esolang을 만든 David Catt 가 작성) S. 이것은 관련 코드를이 부분으로 만듭니다.

S1^2^2^6^8MAOUOAOOF

RunR은 대부분의 연산이 일종의 레지스터로 작동하고 이진 연산을 위해 명시 적으로 스택으로 값을 이동해야하기 때문에 약간 흥미 롭습니다. 숫자는 레지스터 값을 자체로 설정하고 ^현재 레지스터를 스택으로 푸시합니다. 이어서 M승산 (스택으로부터 팝 시간 값을 레지스터)이다 U감산이며, A또한이고, O출력된다. F프로그램을 종료합니다.

2012 : 로피

Wierd와 마찬가지로 Ropy는 공백이 아닌 문자 섹션을 따르려고 시도하지만 여기서 구부러지는 명령을 결정하지 않습니다. 실제로 Ropy는 선택한 방향이 스택의 상단에 달려 있다는 점에서 내 자신의 미로 와 더 비슷합니다 . 그러나 Ropy는 첫 번째 줄을 따라 이동하기 때문에 여기서 걱정할 필요가 없습니다.

v19977/2{@{{4{\_______>/02&&&#????

까지 무시할 수있는 것들이 많이 있습니다 >. 우리가 알아야 할 것은 스택의 상단이 그 시점에 4있고 2아래에 있을 것 입니다.

>중복 (가) 4, /(A) 내로 돌려 분할이다 1. 그런 다음를 누릅니다 02. &&&스택의 상위 4 개 숫자를 역순으로 결합하여을 제공 2012합니다. #출력합니다. ????그렇지 않으면 스택의 상단도 출력되므로 스택을 지 웁니다.

관심의 한 지점은 두 번째이다 7에서이 19977때문에 끈적 끈적의 추가되었습니다. /끈적 끈적의 부서가하는 top / second(많은 스택 기반 언어에서 일반적인 순서의 반대), 어디에 7 / 9줄 것입니다 0. 스택 상단에 0이 있으면 Ropy는 이동 방향으로 야생 작업을 수행하므로 7스택 상단을 양수로 유지하고 Ropy가 계속 동쪽으로 이동하도록 다른 쪽 을 밀어야합니다.

2014 년 : 핵분열

명시적인 진입 점을 사용하면 쉽습니다. RDLU해당 방향으로 원자 (명령 포인터)를 생성하므로 관련 비트는 다음과 같습니다.

R"2014";

거기에의합니다 U뿐만 아니라 소스 코드에 있지만, 원자는 결국 중 하나를 명중 *프로그램을 종료 이상한에서 (이 원자는보다 더 많이 걸립니다 R요구 인쇄 2014).

2015 : 골> <>

Sp3000의보다 강력한> <> 파생물. > <>와 대체로 하위 호환성이 있으므로 실행 코드는 여전히 다음과 같습니다.

v
\'\02'oo100@n590@n;

그러나 회전 방향 @이 변경되어 폴리 글 로트에서> <> 및 Gol> <>을 구별하는 표준 트릭이므로 15대신 인쇄 됩니다 09. 따라서 프로그램의 후반부에 이상한 점이 있습니다.

2016 : CSL

CSL은 명령이 즉시 실행되지 않는다는 점에서 매우 흥미 롭습니다. 대신, 각 명령은 명령을 스택으로 푸시하고, e그리고 E그것으로부터 명령을 실행하기 위해 사용될 수있다. 관련 코드는 다음과 같습니다.

v19977/2{@{{4{\_______>/02&&&#????        *    P+++++1P1P-1P+1E

따라서 E전체 명령 스택을 실행하므로 앞에있는 항목이 반대로 실행됩니다. 우리는 다음을 살펴보기 만하면됩니다 *.

1+P1-P1P1+++++P*

1의 데이터 스택에 자신을 밀어 넣습니다. +-감소 / 증가합니다. P스택 상단을 인쇄합니다. 그런 다음 *스택의 상위 두 값을 곱합니다. 그러나 스택이 비어 있으므로 프로그램이 종료됩니다.


이 시점에서 우리는이 챌린지가 게시 된 이후에 릴리스 된 언어를 얻습니다. 특히 점수를 매기 지 않기 때문에 특히 점수를 매기지는 않습니다 (이 도전을 염두에 두지 않음). 그러나, 그들은 새로운 IP 이동 의미론을 가지고있어서, 2G 언어의이 쇼케이스에 흥미로운 것을 추가하면서 폴리 글 로트에 쉽게 맞출 수있게했다.

2017 : 앨리스

Alice는 기능이 풍부한 Fungeoid로 설계되었습니다. 대부분의 다른 2D 언어와의 흥미로운 차이점 중 하나는 IP가 직교 또는 대각선으로 움직일 수 있다는 것입니다. 이들 사이를 전환하면 언어에서 거의 모든 명령의 의미가 변경됩니다. 또한 Alice는 기존의 <^>v방향 설정 기와 \/미러를 모두 지원 하지만 미러는 Alice에서 매우 고유 한 동작을 갖습니다 (이로 인해 Alice IP를 코드의 지금까지 사용되지 않은 부분으로 쉽게 이끌 수 있음).

대부분의 언어 는 마치 45도 각도의 거울 인 것처럼 처리 \하고 /IP는 반사되는 광선으로 IP를 처리하지만 Alice는 67.5 도의 각도로 처리합니다 (실제 슬래시 글리프의 각도에 더 가깝습니다). IP도 미러를 통해 이동 합니다 (따라서 언어 이름). 이 각도로 인해 거울은 직교 또는 대각선 방향을 따라 이동합니다. 또한 서수 모드 (예 : IP가 대각선을 따라 이동하는 동안)에서는 그리드가 줄 바꿈되지 않고 대신 IP가 가장자리에서 튀어 나옵니다 (카디널 모드에서는 줄 바꿈).

Alice가 실행 한 코드는 다음과 같습니다.

v19
\ \

...

  >      "7102"4&o@

...

IP는 평소와 같이 왼쪽 상단에서 시작하여 v남쪽으로 보냅니다. 이제는 \IP가 북서쪽으로 이동하는 것을 반영하여 그리드의 왼쪽 가장자리에서 즉시 튀어 오릅니다 (대신 북동쪽으로 이동). 1무시해도됩니다. IP가 다음 가장자리에서 남동쪽으로 이동하기 위해 위쪽 가장자리에서 튀어 오릅니다. 우리 \는 IP 북쪽을 반영하는 다른 것을 쳤다 . 9무시해도 IP가 그리드의 맨 아래로 줄 바꿈됩니다. 몇 줄이 지나면 >편의상 동쪽으로 리디렉션 합니다. 다음 "7102"의 코드 포인트가 밀어 2017, 4&o그 네 개의 문자를 출력하고 @프로그램을 종료합니다.

2018 : 부 푸스

Wumpus는 삼각 그리드의 첫 번째 2D 언어로, 코드를 통한 이동을 상당히 다르게합니다 (다시 사용하지 않은 코드 부분에 쉽게 도달 할 수 있도록합니다). 따라서 격자의 각 문자를 작은 정사각형으로 생각하는 대신 위쪽 및 아래쪽 삼각형이 번갈아 나타나는 것으로 생각해야합니다. 왼쪽 위 모서리는 항상 위쪽 삼각형입니다.

Wumpus에는 같은 방향 설정 기가 <^>v없지만 거울이 \/있습니다. 그러나 삼각형 격자로 인해 대부분의 다른 언어와 다르게 작동합니다. IP는 일반적인 광선처럼 광선처럼 반사되지만 각도가 60 ° 인 것으로 생각해야합니다. 따라서 동쪽으로 움직이는 IP는 그리드의 북서쪽 축을 따라 움직입니다.

대부분의 다른 언어와의 또 다른 차이점으로, 그리드의 가장자리는 줄 바꿈되지 않지만 IP는 가장자리에서 바운스됩니다 (해당 가장자리 셀에 적절한 미러가 포함 된 것처럼). 또 다른 재미있는 세부 사항은 삼각 그리드를 통과하는 대각선이 실제로 소스 코드의 계단처럼 보입니다.

이를 염두에두고 Wumpus가 실행 한 코드는 다음과 같습니다 ( .명확성 을 위해 공백을 바꿨습니다) .

v19977/
   02
  89
 ..
..
.....*...#2018O@

v19977우리가 무시할 수 있습니다 단지 쓰레기입니다. /IP가 북서쪽으로 전송 977되며, 오른쪽 가장자리에서 튀어 나오면서 오른쪽에서 다시 이동합니다 . 그런 다음 IP가 2089왼쪽 끝을 치고 다시 동쪽으로 반사되기 전에 여러 공간을 통해 남서쪽으로 이동 합니다. *또한 정크입니다. 그런 다음 마지막으로 #2018밀어 2018, O그것을 출력하고 @프로그램을 종료합니다.


누락 된 년

마지막으로, 내가 다루지 않은 몇 년 동안의 메모.

수년 동안 폴리 글롯에 사용될 수있는 적합한 언어를 찾기 위해 2D 언어를 연구하는 동안 대중의 신념과 달리 Befunge는 최초의 2D 언어 가 아니라는 것을 알았습니다 . 이 타이틀은 1991 년에 이미 만들어진 Biota 가 보유한 것 같습니다 . 불행히도, 언어에는 출력이 없으므로이 도전에 사용할 수 없었습니다.

내가 알 수있는 한 1992 년과 1995 년에 2D 언어가 만들어지지 않았다. 몇 년이 지나도 나는 다루지 않았다.

  • 1994 : Befunge와 독립적으로 Orthagonal 이 만들어졌습니다. 언어는 실제로 의미 상 상당히 유사하지만 Orthagonal은 실제로 소스 코드를 2D로 배치하지 않습니다. 대신 각 줄은 (x, y, instruction)튜플입니다. 필자는 제작자 Jeff Epler로부터 언어 사양과 원래 통역사를 얻었지만, 결국 구문이 2D가 아니라는 사실로 인해이 폴리 글 로트에 적합하지 않은 언어가되었습니다.
  • 1996 : Orthagonal (다른 사람이 만든)의 후계자 인 Orthogonal 이 작성되었지만이 폴리 글롯의 목적 상 Orthagonal과 동일한 문제가 발생합니다.
  • 1999 : 내가 찾을 수있는 유일한 언어는 Chris Pressey의 셀룰러 오토 마톤 REDGREEN 입니다. 불행히도 이전의 RUBE와 달리 I / O 의미가없는 것 같습니다.
  • 2000 : Chris Pressey의 noit o 'mnain worb 라고하는 또 다른 셀룰러 오토 마톤이 있지만 I / O도 없습니다. 실행하려고 시도하지 않은 Numberix 도 있으며 소스 코드에서 16 진수가 아닌 문자를 무시할지 여부는 확실하지 않습니다.
  • 2002 : 언어 사양이 저를 두려워하는 I / O 및 ZT 가 없는 Clunk 가 있습니다 .
  • 2007 : 나는 여기에서 세 가지 언어를 찾았습니다. Zetaplex 는 이미지 기반이므로 ( 아니요 ) RubE On Conveyor Belts 는 프로그램의 첫 번째 줄을 어지럽히는 다소 엄격한 형식의 헤더를 요구하는 것 같습니다. QuintopiaCellbrain 도 있지만 특정 헤더가 필요한 것 같습니다.
  • 2013 : 다시, 나는 세 가지 언어를 찾았습니다. 많은 양의 구조 조정으로 낚시 가 가능할 수도 있지만 프로그램을 유효한 도크로 시작해야합니다. 메모리의 Quipu 는 구문에 대해 너무 엄격하여 많은 폴리 글로 팅 을 허용합니다. 그리고 Swordfish 는> <> 가족의 또 다른 구성원이지만 불행히도 통역사를 찾을 수 없었습니다. 그렇지 않으면이 것을 추가하기가 쉬울 것입니다.

관심있는 사람이 있다면, 내가 찾을 수있는 한 구현 된 2D 언어의 전체 목록을 찾을 수 있습니다 (이 답변이 게시 된 시점). 이 목록에서 누락 된 항목이 있으면 전체 목록에 관심이 있으므로 채팅 으로 알려주십시오 .


8
와. 정말 인상적입니다
DJMcMayhem

@MartinEnder Esolang 자체에 연도별로 2D 프로그래밍 언어 목록을 추가하는 것을 고려 했습니까?
doppelgreener

@doppelgreener 나는 그것이 어떻게 거기에 맞는지 잘 모르겠습니다. 본질적으로 2D 카테고리와 다양한 연도 카테고리의 교차점입니다.
Martin Ender

RubE On Conveyor Belts 헤더 행을 수정하겠습니다. 타임머신을 가지고 있다면 13 살짜리에게 미리 크기를 모르고 파일을 읽는 방법을 가르쳐주기 위해 빌릴 수 있습니다. (헤더 라인이있는 유일한 이유입니다. IMO를 사용하면 엄격하게 말하더라도 크기 헤더를 프로그램의 일부로 계산하지 않아도됩니다)
immibis

1
@cairdcoinheringaahing 당신은 간다. 그리고 2018 년 Wumpus는 내가 그랬을 때.
Martin Ender

117

15 년, 파이썬

버전 : 0.9.1 , 2.0.0 , 2.2.0, 2.2.2, 2.5.0, 2.5.1, 3.0.0, 3.1.0, 3.1.3, 3.2.1, 3.3.0, 3.3.3, 3.4.0, 3.5.0 및 3.6.0a4 . 링크되지 않은 버전은 다운로드 페이지 에서 찾을 수 있습니다 .

0.9.1의 출시일은 여기 에서 찾을 수 있습니다 . 불행히도 이전 버전이 누락되어 컴퓨터의 컴파일 문제로 인해 많은 시간을 생략해야했습니다. 대표 연도는 1991, 2000-2002 및 2006-2016입니다.

gzipped 버전을 사용하여 Arch Linux에서 테스트되었습니다.

# Note: This file needs a trailing newline due to 0.9.1

# 0.9.1: No bitwise operators
# This one errors out by division by zero.
try:
    eval('1&2')
except:
    print(1991)
    1/0

import sys

# 2.0.0: repr('\n') gives "'\012'" instead of "'\n'"
# == doesn't exist until Python 0.9.3 and <> doesn't exist in Python 3, hence we
# use <. Also, 0.9.1 doesn't have double quoted strings.
if repr('\n') < '\'\\n\'':
    print(2000)
    sys.exit()

# 2.2.0: email module still has a _Parser class - module revamped in 2.2.2
# I would use whether or not True exists as a name here, but weirdly "True"
# worked in 2.2.2 even though the docs say it was introduced in 2.3...
try:
    import email
    email._Parser
    print(2001)
    sys.exit()
except AttributeError:
    pass

# 2.2.2: a in b only works for strings a of length 1.
try:
    eval('"art" in "Martin"')
except TypeError:
    print(2002)
    sys.exit()

# 2.5.0: int() allows null bytes in integer to convert when given an explicit
# base.
try:
    print(int('2006\x00Hello, World!', 10))
    exit()
except ValueError:
    pass

# 2.5.1: pow overflows
# Note that we can't use ** here since that doesn't exist in 0.9.1.
if pow(2, 100) < 1:
    print(2007)
    exit()

# 3.0.0: round returns a float rather than an int.
if str(round(1, 0)) > '1':
    print(2008)
    exit()

# 3.1.0: bug caused complex formatting to sometimes drop the real part.
if format(complex(-0.0, 2.0), '-') < '(-':
    print(2009)
    exit()

# 3.1.3: str of a float is shorter than the repr of the same float.
if str(1.0/7) < repr(1.0/7):
    print(2010)
    exit()

# 3.2.1: For some weird reason, u'...' Unicode strings were disabled then
# re-enabled later.
try:
    eval('u"abc"')
except:
    print(2011)
    exit()

# 3.3.0: int still works without a first argument.
try:
    int(base=10)
    print(2012)
    exit()
except TypeError:
    pass

# 3.3.3: no enum module :(
try:
    import enum
except ImportError:
    print(2013)
    exit()

# 3.4.0: PEP 448 (additional unpacking generalisations) not implemented yet
try:
    eval('[*[1], *[2], *[3]]')
except SyntaxError:
    print(2014)
    exit()

# 3.5.0: No f-strings
try:
    eval('f"abc"')
except SyntaxError:
    print(2015)
    exit()

print(2016)

18
... 와. 일부 사람들이 자신의 언어를 얼마나 잘 알고 있는지는 여전히 놀랍습니다. 시간을 거슬러 올라가는 것과 같습니다 ...
wizzwizz4

python 0은 try / except를 지원합니까 ??
OldBunny2800

8
@ OldBunny2800 놀랍게도, 그렇습니다
Sp3000

54

짧고 달다; 8 바이트 의 3 개의 APL ( K , J201 , Dyalog 7.1 )

1993+1^2

1993 년 플러스

K : {2}를 제외한 처음 1 개의 정수 {0}, 즉 {0}; 1993 – 온라인으로 사용해보십시오!

J : 12 = 1; 1994 – 온라인으로 사용해보십시오!

APL : LCM (1,2) = 2; 1995 – 온라인으로 사용해보십시오!


아주 좋아요! 더 많은 Iverson 언어를 결합 할 수 있다고 생각하십니까?
마일

@miles K로 힘들어하고 APL2 / APLX / APL * PLUS는 너무 비슷합니다.
Adám

@miles 2000의 J 버전을 알고 있습니까? 그렇다면 2e3+?1Dyalog 9.0.1로 할 수 있습니다 .
Adám

또 다른 멋진 전망은 J의 거듭 제곱 X^Y과 마찬가지로 X와 Y의 숫자 ^이지만 APL의 LCM입니다.
Adám

2
나는 2000 년까지 자신의 날짜와 릴리스를 통해 기능의 페이지를 발견했습니다 jsoftware.com/release/status.htm
마일

46

10 년, 12 개 언어, 2430 바이트

이 답변은 본인과 사용자 1000000000 사이의 협력 입니다.

간단한 언어 목록 :

Brainfuck    1993
Befunge      1993
Piet         2001
Whitespace   2003
Braincopter  2005
Grass        2007
Starry       2008
Paintfuck    2008
Brainbool    2010 (11111011010)
Python 2.7.2 2011
Fission      2014
Brainflak    2016 

코드는 다음과 같습니다.

P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""{}{}     + + +---[.     + +..  '.. +. +.. +. +. +.] + + + + + + +(((((()()()()){}){}){}){})({({} +-[<() + + + + + + +>-()])}{}<[. + + + + + + + +..-------  `             +.[-]]>)[< '
 17 12 
# > 7*::,8 +:,,2 +,@<>R"2014";]*ne*e*es*s*swWWW*swWWWW*sw*e*e*e*eeev*wn*n*n*n*ne*e*se*s*s*s*sWWwWWWw**e*eeee*vwn*n*n*n*ne*e*se*s*s*s*sWWWw*eeee*e*ne*n*nWWWWWw*ne*nWWWWWWw*w*sw*se*sWWWWWWWw*s*WWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwvwWWWwWWWWwvwWWwWWWwvwWWwWWWwvwWWwWWWwvwWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv `
255 0 255 255   0   192 192 0   192 192 0 192 192   192 255
255 192
255 255 192
255
255
0 255 255 0 255 255 0 255 255 0 255 255 0 192 192 192 255 255 255 255 255 0 192 192 0 0 255 255 255
255 0 0 255 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 0 192 192 255 255 255 255 255 255 255 255 255 255 255 255 0 192
192 0 0 255 0 192 192 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 0 0 255 255
255 0 192 192 0 0 255 0 0 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 255 255 255 255 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 192 192
#   """

이것을 응답 내에 맞추기 위해 전체 TIO 링크를 잊어 버리고 오히려 사용자가 코드를 입력 할 수있는 유효한 인터프리터에 링크를 게시합니다. 여기입니다 페이스트 빈 링크 하는 목적은.

피에트

PPM 파일 형식 의 피에트 인터프리터는 우리가 읽을 수 사용되는 이미지 형식 중 하나는 일반 텍스트 ASCII 버전이 있습니다. 이것을 사용하여 Piet와 Braincopter가 읽은 이미지 파일에 다른 언어의 코드를 정크로 포함시킬 수있었습니다.

이미지는 다음과 같습니다 :

원시 이미지

Piet에게 모든 이미지가 중요한 것은 아닙니다. 다음은 Piet가 코드를 따르는 경로를 강조하는 행이있는 버전입니다.

피에트 경로

프로그램을 만드는 다소 복잡한 방법에도 불구하고 프로그램 자체는 매우 간단합니다. 이미지 상단 1 10 10 10 2을 따라 스택으로 밀어 넣 습니다. 측면을 따라 세 번 곱하고 한 번 더합니다. 하단에서 결과 (2001)를 출력 한 다음 정지합니다.

브레인 콥터

Braincopter는 다른 시각적 언어입니다. 또한 동일한 ppm이미지 파일을 사용하여 실행합니다. npiet의 매우 엄격한 제한으로 인해 Braincopter 코드는 원래 Braincopter 작업의 하위 세트 만 사용할 수 있습니다. 우리는 Piet에서 유효한 연산 색상을 사용하도록 제한됩니다. 그러면 -Braincopter 에서 운영자가 제거 됩니다.

Braincopter 코드에서 추적 한 경로는 다음과 같습니다.

Braincopter 경로

Braincopter 프로그램은 -운영자 가 없기 때문에 조금 이상 합니다. 청록색과 짙은 청록색의 벽은 포인터를 리디렉션하는 역할을하지만 그 외에는 다음과 같은 생각과 동일합니다.

++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++..+++++.

2005 년을 인쇄합니다.

페인트

Paintfuck은 목록에서 세 번째 시각적 프로그래밍 언어이지만 이미지를 가져와 텍스트를 출력하는 대신 텍스트를 가져와 이미지를 출력합니다.

Paintfuck은 대부분의 코드가 중요하지 않으므로 관련성이없는 문자를 무시하므로 코드의 관련 섹션은 다음과 같습니다.

nsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

그것들은 no-ops가 아니지만 w코드 끝의 s는 아무것도하지 않습니다. 그들은 용액의 잔디 부분을 위해 있습니다. n, e, sw화상을 이동하는 데 사용되어 *소정의 위치에 점을 플롯하는 데 사용된다. 프로그램은 다음을 출력합니다 :

Paintfuck 출력

더 큰 버전 :

Painfuck 출력, 그러나 더 큰

Brainfuck

Paintfuck과 마찬가지로 Brainfuck은 대부분의 문자를 무시합니다. 다시 한 번 중요한 것은 다음과 같습니다.

 []+++---[.++....+.+..+.+.+.]++++++++-[<+++++++>-]<[.++++++++..-------+.[-]]>[<>,+,,+,<>]

이것의 대부분은 상황에 따라 더 이상 관련이 없으며 다른 언어에 필요한 캐릭터 일뿐입니다. 이 코드의 더 얇은 버전은 다음과 같습니다.

+++++++[<+++++++>-]<[.++++++++..------.[-]]

이것은 단순히 간단하게 인쇄합니다 1993.

브레인 볼

Brainbool은 캐릭터 선택에서 Brainfuck과 매우 유사합니다. 두 사람을 함께 -엮을 수있는 가장 큰 차이점 은 Brainbool 의 부족입니다 . Brainbool의 중요한 캐릭터는 다음과 같습니다.

[]+++[.++....+.+..+.+.+.]++++++++[<+++++++>]<[.++++++++..+.[]]>[<>,+,,+,<>]

Brainbool과 brainfuck의 출력은 상호 배타적입니다. Brainbool은의 두 번째 세트에서 출력을 숨 깁니다 []. Brainfuck +++---[설정을 0으로 설정하고 출력을 건너 뛰기 전에 발생합니다. 반면 Brainbool +++은 1을 설정하여 루프를 통과하도록합니다. 마찬가지로 Brainbool은 네 번째 루프에서 0으로 설정되어 건너 뛰고 Brainfuck은 49의 값으로 루프에 들어갑니다.

Brainbool에는 10 진수 출력이 없으므로 2010을 이진수로 출력합니다.

11111011010

분열

핵분열에 중요한 코드의 유일한 부분은 다음과 같습니다.

R"2014";

R아톰 소환은 오른쪽으로 이동하는 "2014"인쇄 2014;정지하는 실행.

펀지

Befunge는 다음 문자 만 통과합니다.

P3v
  7
  > 7*::,8 +:,,2 +,@

P3PIET 유효한 .ppm 이미지를 만들기 위해 필요하고, 누적 스택 3을 누른다. 는 v포인터를 아래쪽으로 리디렉션하기 위해 배치됩니다. 관통 그러므로 통과 717사용은 .ppm 이미지의 폭을 나타내는 데. 은 >오른쪽에있는 포인터를 리디렉션합니다. 7*스택 상단에 7을 곱하면 스택 상단에 49 (ASCII 값 1)가 남습니다 . ::스택 상단을 두 번 복제합니다. 에 1의해 출력됩니다 ,. 8 +ASCII에 맨 위로 증가하는 8을 더합니다 9. 두 번 :,,출력 9합니다. 2 +ASCII 1를 ASCII 로 증가 3시키고 ,인쇄합니다. 마지막으로 @프로그램을 종료합니다.

전부 인쇄합니다 1993.

공백

이름에서 알 수 있듯이 공백은 프로그램에서 공백 만 사용합니다. 이것은 공백 인터프리터가 보는 것입니다.

[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]
[Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]

이 코드의 대부분은 프로그램 실행과 관련이 없습니다 (공백 만 포함 된 모든 행은 단순히 0을 스택으로 푸시합니다). 중요한 부분 :

[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]

첫 번째 줄은 2003 년을 스택으로 푸시합니다. 그런 [Tab][LF][Space][Tab]다음 스택 맨 위 (2003)를 숫자로 인쇄합니다. 마지막 세 줄 바꿈은 프로그램 실행을 종료합니다.

잔디

Grass는 w파일 에서 첫 번째까지 그리고 그 이후 wW, 또는 을 제외한 모든 문자를 무시합니다 v. 잔디 통역사는 다음과 같이 읽습니다.

wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv

첫 번째 줄은 전달 된 모든 것에 2를 더하는 함수를 정의합니다. 두 번째 줄은 전달 된 내용에 4를 더하는 함수를 정의합니다. 세 번째는 인수를 더한 두 개의 인자를 인쇄하고 인수를 두 번 인쇄 한 다음 마지막으로 7을 더한 인수를 인쇄하는 함수를 정의합니다 (Grass는 ASCII 값을 기준으로 문자를 출력합니다). 네 번째, 다섯 번째 및 여섯 번째 행은 각각 인수에 8을 더하고, 16을 더하고, 32를 더하고, 64를 더하는 함수를 정의합니다. 마지막 행은 문자 w(Grass에서 사전 정의 된 유일한 숫자, ASCII 값 119) 를 취하는 기본 기능을 정의하고 프로그램에 정의 된 추가 기능과 내장 된 add one 기능을 사용하여 185를 추가합니다. 잔디는 256에서 숫자를 감싸므로 결과는 48입니다 (캐릭터에 해당)0). 함수는 이것을 2007 년을 출력하는 세 번째 줄의 함수로 전달합니다.

별이 빛나는

별이 빛나는 공간을 제외한 모든 것을 무시, +, *, ., ,, `,와 '. 따라서 별이 많은 통역사는

       + + +.     + +..  '.. +. +.. +. +. +. + + + + + + + + + + + + + + +. + + + + + + + +..  `             +. '
     *, +,, +,************************************************* `

그러나 label 및 jump 명령어는 코드 섹션을 건너 뛰는 데 사용되어 실행될 경우 문제가 발생할 수 있으므로 코드는 실제로 다음과 같습니다.

       + + +.     + +..  '  `             +. ' `

이 코드는 두 개를 스택으로 푸시하고 두 번 복제 한 다음 그 중 하나를 숫자로 표시하여 인쇄합니다. 그런 다음 0을 밀어서 복제하고 두 0을 숫자로 인쇄합니다. 다음으로 두 가지 중 하나를 튀어 나와서 점프 한 다음 7 개를 스택으로 밀고 튀어 나와서 인쇄합니다. 마지막으로 스택에 마지막 두 개를 표시하고 프로그램 끝으로 이동합니다.

파이썬 2.7.2

파이썬 코드는 다음 형식을 따릅니다.

P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""..."""

어디 ...다른 쓰레기의 모든 의미합니다.

첫 번째 줄 P3v=""은 유효한 .ppm파일 이기 때문에 코드는 P3이 오류로 시작해야 하지만 파이썬에 말하면 변수 선언이므로 무시합니다.

다음으로 인쇄해야합니다 2011. 그러나 a .ppm형식의 형식으로 인해이 줄에 숫자를 포함 할 수 없습니다. 이 문제를 해결하기 위해 문자열의 모든 ASCII 값을 요약 "~~~~~~~~~~~~~~~y"하고 결과를 인쇄합니다. 마지막으로 우리는 여러 줄 주석의 삼중 따옴표를 사용하여 파이썬이 다른 모든 것을 무시합니다.

브레인 플라크

우리는 마지막으로 최고를 구했습니다.

다른 사람과 마찬가지로 Brainflak는 대부분의 캐릭터를 무시합니다. 관련 문자는 다음과 같습니다.

(([()])){}{}[](((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)[<><>]

파이썬 코드 (([()]))는 스택에 -1을 두 번 푸시하므로 프로그램 처리를 시작하기 전에 제거해야합니다.

그 후 Brainbool은 []아무것도하지 않는 프로그램을 사용하고 프로그램이 시작됩니다.

(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)마지막 [<><>]은 Befunge와 Brainfuck의 잔재이지만 운 좋게 아무것도하지 않습니다.

프로그램이 종료되면 스택의 내용을 인쇄합니다 2016. 즉, 인쇄 됩니다.


훌륭한! 나는 Piet이 어떻게 든 나타나서 PPM에 물건을 포함시키는 것이 좋기를 바랐습니다. 잘 했어!
cincodenada

1
일에 대한 We saved the best for last. : D
DJMcMayhem

38

5 년

#define q/*-[>+<-----]>--.++++++++..------.[-][
print('2010'if len(bin.__doc__)==86else'2015')
"""*/
main(c){c=-4.5//**/
-4.5;printf("19%d",90-c);}
#define w/*]
*/"""

1989 : C89 [1]1999 : C99

한 줄 주석은 //C99에 추가되었으므로 C89 컴파일러는 해당 코드를로 c=-4.5 / /*comment*/ -4.5동일 c=-4.5 / -4.5하게 읽는 반면 C99 컴파일러는로 c=-4.5 //comment/**/
- 4.5동일 하게 판독 c=-4.5 - 4.5합니다.
파이썬 부분은 C 프로그램의 주석입니다.

2010 년 : Python 2.72015 : Python 3.5

문서는 Python 3과 2 사이에서 다양하며이 프로그램은 문서의 길이를 사용하여 Python 버전을 감지합니다.
C 부분은 Python 프로그램에서 문자열로되어 있습니다.

1993 [2] : Brainfuck

기본적으로 아닌 모든 것을 무시합니다 .,[]+-<>. C 프로그램에 포함되어 있기 때문에 ,현재 바이트를 0으로 설정하여 Brainfuck에서 해당 부분을 해제해야했습니다.


  1. C89 사양은 1990 년에 발표되었습니다. 추가 정보 .
  2. 공식 출시 날짜를 찾을 수 없으므로 EsolangsWikipedia를 믿습니다 .

4
이것은 특히, 위대 -4.5/-4.5하고 -4.5-4.5. 거기에 BF를 던지지 않고도 두 가지 주요 언어 각각의 두 가지 버전을 매쉬하는 것은 매우 인상적입니다. :-)
ETHproductions

이것은 코드 골프는 아니지만 a=온라인 2 라인은 불필요합니다
TheInitializer

@TheInitializer 예,없이 시도했지만 a=오류가 발생하여 유지하기로 결정했습니다. 그래도 오타가 발생한 이유를 모르겠습니다.
betseg

@betseg 해당 코드가 Python에서만 실행되는 경우 작동합니다.
TheInitializer

17

15 년, JavaScript

JavaScript의 릴리스주기는 매우 이례적이고 일관되지 않으므로 Firefox 구현을 사용하겠습니다. 이것이 허용되지 않는 경우 알려주십시오.

버전 : Phoenix 0.1 , Firebird 0.6 , Firefox 1.0.0 , 1.5.0 , 2.0.0 , 3.0 Beta 1 , 3.0.0 , 3.5.0 , 3.6.0 , 4.0.0 , 10.0.0 , 18.0.0 , 27.0 .0 , 35.0.0 , 44.0.0 (모두 Windows 7에서 테스트)

중요 사항 : Firefox 1.0.0 이상 버전을 설치하고 열면 기록 및 책갈피를 포함 하여 저장된 모든 Firefox 데이터가 지워질 수 있습니다.

또한 1.0.0부터는 한 번에 하나의 버전 만 열 수 있습니다. 다른 버전을 열려고하면 이미 열려있는 버전의 새 창이 나타납니다.

명령

암호

<script onbeforeunload="123">
// This uses document.write because alert does nothing in Phoenix (Firefox) 0.1.
document.write((function () {
    function assert (code) {
        try {
            eval(code);
            return true;
        } catch (e) {
            return false;
        }
    }

    // Firefox 44 supports octal and binary literals in Number(); Firefox 35 does not.
    if (Number("0o1") === 1)
        return 2016;

    // Firefox 35 supports template strings; Firefox 27 does not.
    if (assert("`abc`"))
        return 2015;

    // Firefox 27 supports argument spreading; Firefox 18 does not.
    if (assert("Math.max(...[1, 2, 3])"))
        return 2014;

    // Firefox 18 supports default arguments; Firefox 10 does not.
    if (assert("function q(a = 1) { }"))
        return 2013;

    // Firefox 10 has basic WeakMap support; Firefox 4 does not.
    if (assert("WeakMap.a"))
        return 2012;

    // Firefox 4 has basic typed array support; Firefox 3.6 does not.
    if (assert("Int8Array.a"))
        return 2011;

    // Firefox 3.6 added the async attribute to script elements.
    if (assert("document.getElementsByTagName('script')[0].async.a"))
        return 2010;

    // Firefox 3.5 added the String.prototype.trim() method.
    if (assert("'abc'.trim()"))
        return 2009;

    // Firefox 3.0 added partial support for object destructuring.
    if (assert("var {c} = {c: 7}"))
        return 2008;

    // Firefox 3.0 beta 1 added the Array.prototype.reduce() and Array.prototype.reduceRight() methods.
    if (assert("[].reduce.a"))
        return 2007;

    // Firefox 2.0 added support for restricted words as properties.
    if (assert("({if:1}).if"))
        return 2006;

    // Firefox 1.5 added the Array.prototype.indexOf() methods, along with a couple other Array methods.
    if (assert("[1].indexOf(1)"))
        return 2005;

    // Practically the only JS difference between v0.6 and v1.0 is the addition of the onbeforeunload event.
    if (assert("document.getElementsByTagName('script')[0].onbeforeunload.a"))
        return 2004;

    // The Object.prototype.eval() method was removed in Firebird 0.6.
    if (!assert("'abc'.eval()"))
        return 2003;

    // We're all the way back to the good old Phoenix 0.1 browser...
    return 2002;
})());
</script>

<!--<<<<-[>+<-----]>--.++++++++..------.[-][-->스크립트 앞에 BF : 를 포함시키고 ]그 이후에 포함 된 다른 HTML 주석을 포함 하여 16 년을 추가 할 수 있습니다 .
Steven H.

6
@StevenH. 음 ... 와우, 이것에에 솔랑 포함을 생각조차 못 했어. 그리고 그것은 BF를 포함시키는 정말 현명한 방법입니다 :-) 그러나 나는 정말로 정말로하고 싶은지
모르겠습니다

13

6 개 언어, Turtlèd and brainfuck , Python 3.5, Python 2.7, > <> , 핵분열

Turtlèd는 올해 전에 존재하지 않았으며 github 커밋이 계산되지 않고 BF가 1993을 발표 한 esolang 페이지 증거를 가지고 있더라도 쉽게 객관적입니다. Python 3.5는 2015, 2.7은 2010입니다.> <>에는 esolang 페이지가 있습니다. , 2009 년, Fission과 마찬가지로 2014 년

#-[>+<-----]>--.++++++++..------#"2016"/
print(2015 if len(len.__doc__)==42 else 2010)
#;                           oooo"2009"/
#;"4102"L

아마도 esolangs의 bf constants 페이지에 크레딧을 제공해야합니다 ... ¯ \ _ (ツ) _ / ¯

작동 방식, 종류 :

Turtlèd :

Turtlèd는 실제로 첫 번째 줄 이외의 줄에 대해서는 아무것도하지 않습니다.

#-[>+<-----]>--.++++++++..------#"2016"/
  ^sets string variable to this   ^ prints 2016

/는 nop입니다

Brainfuck

Brainfuck은 명령에없는 문자를 무시합니다.

그것은보고 -[>+<-----]>--.++++++++..------.(마지막은. 파이썬 부분에서입니다)

Brainfuck을 수행하는 것은 랩핑을 사용하여 255를 5로 나눈 다음 결과에서 2를 빼고 인쇄하고 8 번 증가하고 두 번 인쇄하고 6 번 감소하고 인쇄합니다.

파이썬 2와 3

print(2015 if len(len.__doc__)==42 else 2010)

len에 대한 문서의 길이는 버전마다 다르므로 버전 3의 경우 올바른 버전 인 경우 연도를 인쇄하고, 그렇지 않은 경우 버전 2의 경우 연도를 인쇄합니다.

> <>

#는 포인터를 거꾸로 반영하므로 해당 줄의 다른쪽에있는 /를 else누르고 2010, 와 사이의 공간을 통과 한 다음 다시 "2009"에 도달하여 스택에 9,0,0,2를 눌렀다가 역순으로 인쇄합니다. .

분열

분열에는 스폰자가 있으므로 맨 아래에 단독으로 실행되는 줄을 가질 수 있습니다.

#;"4102"L
        L spawn left moving atom
  "4102"  print this right to left
 ;        halt
# python comment

13

3 년, 3 개 언어 : C, TeX, MIXAL

*main(){puts("1990");}/*\newwrite\O\openout\O=O\write\O{1982}\bye                                                                                                                              
START   ENTA    1997
        CHAR
        STX     6
        OUT     6(19)
        HLT
        END     START   */ 

파일 이름을 지정하십시오 date.mixal.

  1. C (1990)-경고와 함께 컴파일하고로 인쇄 1990합니다 stdout.
  2. TeX (1982)- tex date.mixal; 1982파일로 인쇄 합니다 O.tex(DVI 출력 무시).
  3. MIXAL (1997)-GNU 믹스 개발 키트를 사용하여 컴파일 mixasm date.mixal하고 mixvm -r date.mix; 1997텔레타이프 장치로 인쇄 합니다 (= stdout).

TeX 및 MIXAL 프로그램은 C 프로그램의 주석에 있습니다. MIXAL 프로그램은 \byeTeX가 무시한 이후에옵니다 . C 및 TeX 프로그램은 MIXAL 프로그램의 주석입니다. 어떤 이유로 든 gcc기꺼이 받아들 *main입니다.


나는 MIXAL, +1 : D
cat

13

3 년 (GolfScript, CJam, MATL), 24 23 바이트

[A11]Wd%;200 1e2/0 8_+(

이 출력

  • 2007 GolfScript에서.

  • 2015 CJam (버전 0.6.5)에서.

  • 2016 MATL (버전 19.2.0)

설명

골프 스크립트

정의되지 않은 토큰은 GolfScript에서 noops 입니다. 실제로 무언가를하는 코드의 유일한 부분은 다음과 같습니다.

200      Push 200
           STACK: 200
1        Push 1
            STACK: 200, 1
/        Divide
           STACK: 200
0        Push 0
           STACK: 200, 0
8        Push 8
           STACK: 200, 0, 8
+        Add
           STACK: 200, 8
(        Subtract 1
           STACK: 200, 7
         Implicitly display 200, 7 as "2007"

CJam

[A11]    Push array [10 11]
           STACK: [10 11]
W        Push -1
           STACK: [10 11], -1
d        Convert to double
           STACK: [10 11], -1.0
%        Select elements from array
           STACK: [11 10]
;        Pop
           STACK is empty
200      Push 200
           STACK: 200
1e2      Push 100
           STACK: 100
/        Divide
           STACK: 2
0        Push 0
           STACK: 2, 0 
8_       Push 8 and duplicate
           STACK: 2, 0, 8, 8
+        Add
           STACK: 2, 0, 16
(        Subtract 1
           STACK: 2, 0, 15
         Implicitly display 2, 0, 15 as "2015" 

MATL

%이후의 모든 것은 주석입니다.

[A11]    Push array [5 11]
           STACK: [5 11]
W        2 raised to that
           STACK: [32 2048]
d        Compute increment
           STACK: 2016
         Implicitly display as "2016"

수정 : CJam에서 %[11 10] 을받은 후 . 중요하지 않습니다.
aditsu

트윗 담아 가기 감사합니다, 수정
Luis Mendo

12

2 개 언어, Python 2.7 및 Python 3.5

Python 2.7은 2010 년 에 릴리스되었습니다 .

Python 3.5는 2015 년 에 출시되었습니다 .

print('2010'if 3/2==1else'2015')

이것은 연산자 가 Python 2의 정수 나누기에서 Python 3의 부동 소수점 나누기로 변경된 PEP 238 에 의존합니다 /.


3
이 버그 / 버전 간 통신의 변화를 식별 관련된 경우이 재미있는 도전이 될 수있다
마일

1
@TuukkaX 그것은 Fedora 24의 Python 2.7.12와 Python 3.5.1에서 모두 작동합니다.
miles

1
'2010'if 3/2>1else'2015'대신 할 수 없습니까 ?
Qwerp-Derp

15
또는 우리 수학 :print(int(2010+1/2*10))
Jakube

2
print('2015'if 1/2else'2010')더 나은
Cyoce

12

8 년, TI 기본

Disp 1996           <-- TI-83
Text(-1,1,1,1
ClrHome
Disp 1999           <-- TI-83+ OS 1.03 (initial OS)
sub(1
ClrHome
Disp 2002           <-- TI-83+ OS 1.15
isClockOn
ClrHome
Disp 2004           <-- TI-84+ OS 2.21
invT(e,1
ClrHome
Disp 2005           <-- TI-84+ OS 2.40
CLASSIC
ClrHome
Disp 2009           <-- TI-84+ OS 2.53
BackgroundOn
ClrHome
Disp 2013           <-- TI-84+ Color Silver Edition
Send({1
ClrHome
2015                <-- TI-84+ Color Edition OS 5.1

"올바른 출력이 여전히 STDOUT 또는 파일로 인쇄되는 한 모든 프로그램이 STDERR로 인쇄되거나 런타임 / 컴파일 시간 오류 및 경고를 발생시킬 수 있습니다." 현재 오류가 아닌 유일한 디스플레이는 연도이므로이 규칙을 준수하고 있습니다. 대신 메모리에 기록하고 싶은 경우, 교체 Disp (date)와 함께 (date)->I.

참고 문헌 :

  1. 계산기 출시 날짜-https: //epsstore.ti.com/OA_HTML/csksxvm.jsp? nSetId= 74258
  2. TI-83 + OS 1.15 릴리스 날짜 - http://wikiti.brandonw.net/index.php?title=83Plus:OS:VersionDifferences#TIOS_1.15
  3. 계산기 호환성 -http : //tibasicdev.wikidot.com/compatibility
  4. TI-84 + CSE 출시일 - https://www.amazon.com/Texas-Instruments-Silver-Graphing-Calculator/dp/B00AWRQKDC
  5. TI-84 + CE 릴리스 날짜 -http: //www.prnewswire.com/news-releases/texas-instruments-unveils-the-new-ti-84-plus-ce-300026266.htmlhttps : // www. cemetech.net/forum/viewtopic.php?t=8870

9

5 년, Go 1.0, 1.1, 1.4, 1.5, 1.6 : 285 257 바이트

(1.2는 1.1과 같이 2013 년에 릴리스되었고, 1.4와 같이 2014 년에 1.3, 2016과 1.6과 같이 릴리스되었습니다.)

1.6에만 액세스 할 수 있기 때문에 모든 버전에서 이것을 테스트하지는 않았지만 이론적으로는 작동합니다! 언어 변경으로 인해 프로그램이 컴파일되지 않았을 수 있으므로 표준 라이브러리 변경에 의존했습니다.

package main
import(."fmt"
."reflect"
."time")
func main(){s:="6"
if _,e:=Parse("2016-Sep-30","2016-Sep-31");e==nil{s="5"}
if Sprint(ValueOf(0))!="0"{s="4"}
if Sprint(&map[int]int{1:1})[0]!='&'{s="3"}
if string(0xd800)==string(0xfffd){s="2"}
Print("201"+s)}

Ungolfed 및 댓글 :

package main

import (
    "fmt"
    "reflect"
    "time"
)   package main

import (
    . "fmt"
    . "reflect"
    . "time"
)

func main() {
    s := "6"
    // 1.6: time.Parse rejects invalid days
    if _, e := Parse("2016-Sep-30", "2016-Sep-31"); e == nil {
        s = "5"
    }
    // 1.5: A reflect.Value now prints what it holds, rather than use
    // its String() method
    if Sprint(ValueOf(0)) != "0" {
        s = "4"
    }
    // 1.4: Printing pointers to maps gives the map instead of the address
    if Sprint(&map[int]int{1: 1})[0] != '&' {
        s = "3"
    }
    // 1.1: Unicode surrogate halves are no longer allowed
    if string(0xd800) == string(0xfffd) {
        s = "2"
    }
    Print("201" + s)
}

7

4 년, 99 바이트 / 77 자

v=1//1;"""
 1991/*"""
for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
"""
"
>9002nnnn;
"""#*/

참고 : 연도가 정확한지 확실하지 않습니다.

  • 파이썬 2.7, 2010
  • 1991 년 자바 스크립트
  • 2015 년 이모 노미 콘
  • ><>2009 년

파이썬과 JS를 함께 작동시키는 방법을 알아내는 데 시간이 걸렸습니다.

설명

v=1//1;"""파이썬과 자바 스크립트 에서 변수 v1나누기로 설정 1하고 1(자바 스크립트 //에서 주석을 ;"""시작 ) 파이썬에서 여러 줄 문자열을 시작합니다. 은 ;그 자바 스크립트가 작동을 중지하기 때문에 개행 문자로 대체 할 수 없습니다.

1991/*"""나머지 여러 줄 문자열입니다. > <>가 1스택으로 밀리지 않도록 공간이 필요 합니다. 여러 줄 문자열의 시작은 Javascript에서 주석의 일부이므로 여러 줄 주석을 인쇄 1991하고 시작합니다.

for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨파이썬에서는 목록을 반복 [0]하고 실행 하는 for 루프입니다 print 2010. 주석은 단지 Emotinomicon 코드입니다 (이모티콘이나 문자열이 아닌 모든 것을 무시합니다). > <>에서 ( f)는 15 스택으로 푸시 됩니다.

> <>의 IP가 1 열 p에서 종료되고> <>에서 유효한 명령이 아니기 때문에 for 루프를 제거 할 수 없습니다 . > <>에서 입력을받는 명령 if이기 때문에 명령문으로 대체 할 수도 없습니다 i.

""" 여러 줄 문자열의 시작입니다.

" 는 여러 줄 문자열의 일부이며> <>에서 연 문자열을 닫는 데 필요합니다 (이전 줄의 첫 번째 인용 부호는> <>에서 문자열을 시작 함).

>9002nnnn;> <>에서 오른쪽 방향 IP 변경 푸시 9, 0, 02,이 출력을 참조로하고 프로그램을 종료한다.

"""#*/파이썬에서는 여러 줄 문자열을 끝내고 주석을 시작합니다. Javascript에서 여러 줄 */주석을 끝냅니다.


Gol> <>을 사용한 보너스 버전 :

5 개 언어 4 년 118 114 바이트 / 96 92 문자

v=1//1;"""
 1991/*"""
for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
"""
`
"
>9002nnnn;
"
>5102nnnn;
"""#*/
  • Golfish v0.4.2, 2015

설명 ²

왼쪽 상단에서 IP가 시작되어 오른쪽으로 이동합니다. 은 v이 아래로 이동합니다.

f푸시 15합니다.

" 문자열을 시작합니다.

` > <>에는없는 문자를 이스케이프 처리하는 데 사용됩니다.

"문자열을 닫아야하지만 우리는 사용 `했으므로 그렇지 않습니다.

> 문자열의 일부.

" 문자열을 종료합니다.

>5102nnnn;실제 코드입니다. >의 IP를 잘 이동하게 5102밀어 5, 1, 02,와 nnnn;숫자를 출력하고 프로그램을 종료합니다.


적절한 헤더가없는 유니 코드 문자의 Python 오류. ( SyntaxError: Non-ASCII character '\xf0' in file test.txt on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details)
밀 마법사

@WheatWizard 파일을 UTF-8로 저장
acrolith

7

7 년, 8 개의 브라우저

CSS에는 실제로 릴리스가 없지만 브라우저 버전 (컴파일러 버전으로 생각할 수 있습니까?) 때문에 언어 릴리스 날짜가 정확히 아닙니다.

다음 브라우저의 경우 브라우저 이름, 버전 및 릴리스 날짜를 인쇄하며 다른 것은 없습니다. 몇 가지 이후 버전에서도 동일한 내용을 인쇄합니다 (크롬은 버전 번호별로 이전 버전의 크롬을 다운로드하기 어렵 기 때문에 스크린 샷에서 늦게 나타납니다).

사용한 버전 번호를 인쇄 할 수 있지만 사용한 기능이 소개 된 첫 번째 버전을 표시하는 것을 선호했습니다.

  • IE6
  • IE7
  • IE8
  • IE9 (예상되지 않은 IE9가 없습니다)
  • Firefox 4
  • Firefox 3.6
  • 크롬 18
  • 크롬 21
  • 최신 브라우저

FF3.6 FF4 크롬 19 크롬 22 IE8- 쿼크 IE8-IE7 호환성 IE8

index.html

<!DOCTYPE html>
 <html>
  <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <link rel=stylesheet href=style.css>
  </head>
  <body>
    <div class=borderbox>
      <div class="inlineblock">
        &nbsp;IE6-2001
      </div>

      <div class="white">
        <div class="outofbox">
          <a href="#">IE8-2009</a>
        </div>
        <div class="inherit">
          <a href="#">IE7-2006</a>
        </div>
      </div>
    </div>
    <div class="white">
      <header class="filter-quirk filter-blur filter-blur-url">
        IE9
      </header>
    </div>
    <div class="flex white">
      Modern Browsers - 2017
    </div>
    <div class="webkit-flex">
      <div class="">
        Chrome 21-2012
      </div>
    </div>
    <div class="webkit-invert white flexdisable">
      <div class="">
        Chrome 18-2012
      </div>
    </div>

    <svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">

    </svg>

    <div class="filter">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g
           transform="scale(8)"
           aria-label="FF4"
           id="text8419">
           <rect
              style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.79374999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
              id="rect21965"
              width="17.005648"
              height="3.9855044"
              x="-0.16825682"
              y="-0.025296567" />
          <path
             d="m 1.0052634,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 H 0.69107072 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 0.1785938 V 0.72431329 h -0.1785938 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.1793519 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 1.0052634 V 1.4155373 H 1.4848207 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8421" />
          <path
             d="m 2.9883464,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 h -0.770599 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.8527475 V 0.72431329 H 2.6741537 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 4.1624349 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 2.9883464 V 1.4155373 H 3.4679037 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8423" />
          <path
             d="M 5.6692683,1.8917872 H 4.7729923 V 1.7363445 l 0.754062,-1.28322911 h 0.277813 V 1.7561883 h 0.112448 q 0.0893,0 0.0893,0.069453 0,0.066146 -0.0893,0.066146 h -0.112448 v 0.4233333 h 0.112448 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -0.499402 q -0.0893,0 -0.0893,-0.069453 0,-0.066146 0.0893,-0.066146 h 0.251355 z m 0,-0.1355989 V 0.58871439 h -0.07938 L 4.9019713,1.7561883 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8425" />
          <path
             d="M 8.2881171,1.6077068 H 6.9585859 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 1.3295312 q 0.089297,0 0.089297,0.066146 0,0.069453 -0.089297,0.069453 z"
             style="stroke-width:0.79374999"
             id="path8422" />
          <path
             d="m 8.9582054,0.90656104 q 0,-0.14882812 0.1785937,-0.31749999 0.1819011,-0.17197916 0.4365625,-0.17197916 0.2414323,0 0.4233333,0.17197916 0.1852081,0.17197916 0.1852081,0.39687498 0,0.14882817 -0.0893,0.28111977 Q 10.006617,1.3960402 9.7056533,1.67716 L 9.0210439,2.3154672 v 0.00992 H 10.059533 V 2.2063266 q 0,-0.089297 0.06945,-0.089297 0.06614,0 0.06614,0.089297 V 2.460988 H 8.8920596 V 2.2625506 L 9.6725804,1.5283318 q 0.2315104,-0.2282031 0.3009635,-0.3307291 0.07276,-0.102526 0.07276,-0.21497396 0,-0.17197916 -0.1422132,-0.30096353 -0.1422136,-0.12898437 -0.3307292,-0.12898437 -0.1686718,0 -0.3075781,0.0992188 -0.1355989,0.0992188 -0.1752864,0.24804686 -0.019844,0.0661458 -0.069453,0.0661458 -0.023151,0 -0.042995,-0.0165365 -0.019844,-0.0198437 -0.019844,-0.0429948 z"
             style="stroke-width:0.79374999"
             id="path8424" />
          <path
             d="m 12.207981,1.3001287 v 0.3307292 q 0,0.3902604 -0.171979,0.6349999 -0.171979,0.2447396 -0.446484,0.2447396 -0.274506,0 -0.446485,-0.2447396 Q 10.971054,2.0211183 10.971054,1.6308579 V 1.3001287 q 0,-0.39356766 0.171979,-0.63830724 0.171979,-0.24473957 0.446485,-0.24473957 0.274505,0 0.446484,0.24473957 0.171979,0.24473958 0.171979,0.63830724 z M 11.589518,0.55268084 q -0.224896,0 -0.353881,0.22820312 -0.128984,0.22489584 -0.128984,0.53578124 v 0.2943489 q 0,0.3241146 0.132292,0.5457031 0.135599,0.2182813 0.350573,0.2182813 0.224895,0 0.35388,-0.2248959 0.128984,-0.2282031 0.128984,-0.5390885 V 1.3166652 q 0,-0.32411458 -0.135599,-0.54239582 -0.132292,-0.22158854 -0.347265,-0.22158854 z"
             style="stroke-width:0.79374999"
             id="path8426" />
          <path
             d="M 13.642054,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436562,-0.43656248 z"
             style="stroke-width:0.79374999"
             id="path8428" />
          <path
             d="M 15.625137,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436563,-0.43656248 z"
             style="stroke-width:0.79374999"
               id="path8430" />
          </g>
      </svg>
    </div>
    <div class="white gradient msfilter" style=color:white>
      FF3.6-2010
    </div>
  </body>
 </html>

style.css

.borderbox {
    height: 40px;
    overflow: hidden;
    padding-bottom: 100px;
}
.outofbox {
    background: blue none repeat scroll 0 0;
    margin-top: 20px;
    opacity: 0;
}
.white {
    color: white;
}
.outofbox a, .inherit a, .inherit a:visited, .outofbox a:visited {
    color: inherit;
}
.inlineblock {
    display: inline;
    width: 100%;
    zoom: 1;
    display: inline-block;
    margin-left: 100px;
    text-align: right;
}
.white header{
  color: black;
}
.absolute{
  position: absolute;
}
.flex{
  display: none;
  display: flex;
}
.flex.white{
  filter: invert(100%)
}
.webkit-flex{
  display: none;
  display: -webkit-flex;
  overflow: hidden;
  flex-flow: column;
  height: 3em;
  justify-content: flex-end;
}
.webkit-flex div{
  margin-bottom: -1.1em;
}
.flexdisable{
  display: -webkit-flex;
  overflow: hidden;
  -webkit-flex-flow: column;
  -webkit-justify-content: flex-end;
  height: 60px;
}
.flexdisable div{
  margin-bottom: -30px;
}
.filter-quirk{
  filter: url(#quirk);
}
.filter-blur{
  filter: blur(100px);
  -webkit-filter: blur(100px);
}
.webkit-blur{
  -webkit-filter: blur(100px);
}
.webkit-invert{
  -webkit-filter: invert(100%);
  filter: none;
}
.filter-url-dark{
  -webkit-filter: url(filter.svg#Invert);
  filter: url(filter.svg#Invert) invert(100%);
}
.filter-blur-url{
  filter: url(filter.svg#blur) url(filter.svg#brightness);
}
.filter{
  filter: invert(100%) brightness(100%);
  -webkit-filter: invert(100%) brightness(100%) blur(100px);
}
.filter svg{
  position: absolute;
}
.filter svg rect{
  filter: invert(100%);
  -webkit-filter: invert(100%);
}
.msfilter{
    /* IE 8 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  /* IE 5-7 */
  filter: alpha(opacity=0);
}
.opacity{

}
.black{
  background: black;
}
.gradient{
  width: 100px;
  background: -moz-linear-gradient( 45deg, #000, #000 );
  font-weight: bold;
}

filter.svg

    <!DOCTYPE html>
 <html>
  <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <link rel=stylesheet href=style.css>
  </head>
  <body>
    <div class=borderbox>
      <div class="inlineblock">
        &nbsp;IE6-2001
      </div>

      <div class="white">
        <div class="outofbox">
          <a href="#">IE8-2009</a>
        </div>
        <div class="inherit">
          <a href="#">IE7-2006</a>
        </div>
      </div>
    </div>
    <div class="white">
      <header class="filter-quirk filter-blur filter-blur-url">
        IE9
      </header>
    </div>
    <div class="flex white">
      Modern Browsers - 2017
    </div>
    <div class="webkit-flex">
      <div class="">
        Chrome 21-2012
      </div>
    </div>
    <div class="webkit-invert white flexdisable">
      <div class="">
        Chrome 18-2012
      </div>
    </div>

    <svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">

    </svg>

    <div class="filter">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g
           transform="scale(8)"
           aria-label="FF4"
           id="text8419">
           <rect
              style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.79374999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
              id="rect21965"
              width="17.005648"
              height="3.9855044"
              x="-0.16825682"
              y="-0.025296567" />
          <path
             d="m 1.0052634,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 H 0.69107072 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 0.1785938 V 0.72431329 h -0.1785938 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.1793519 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 1.0052634 V 1.4155373 H 1.4848207 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8421" />
          <path
             d="m 2.9883464,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 h -0.770599 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.8527475 V 0.72431329 H 2.6741537 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 4.1624349 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 2.9883464 V 1.4155373 H 3.4679037 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8423" />
          <path
             d="M 5.6692683,1.8917872 H 4.7729923 V 1.7363445 l 0.754062,-1.28322911 h 0.277813 V 1.7561883 h 0.112448 q 0.0893,0 0.0893,0.069453 0,0.066146 -0.0893,0.066146 h -0.112448 v 0.4233333 h 0.112448 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -0.499402 q -0.0893,0 -0.0893,-0.069453 0,-0.066146 0.0893,-0.066146 h 0.251355 z m 0,-0.1355989 V 0.58871439 h -0.07938 L 4.9019713,1.7561883 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8425" />
          <path
             d="M 8.2881171,1.6077068 H 6.9585859 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 1.3295312 q 0.089297,0 0.089297,0.066146 0,0.069453 -0.089297,0.069453 z"
             style="stroke-width:0.79374999"
             id="path8422" />
          <path
             d="m 8.9582054,0.90656104 q 0,-0.14882812 0.1785937,-0.31749999 0.1819011,-0.17197916 0.4365625,-0.17197916 0.2414323,0 0.4233333,0.17197916 0.1852081,0.17197916 0.1852081,0.39687498 0,0.14882817 -0.0893,0.28111977 Q 10.006617,1.3960402 9.7056533,1.67716 L 9.0210439,2.3154672 v 0.00992 H 10.059533 V 2.2063266 q 0,-0.089297 0.06945,-0.089297 0.06614,0 0.06614,0.089297 V 2.460988 H 8.8920596 V 2.2625506 L 9.6725804,1.5283318 q 0.2315104,-0.2282031 0.3009635,-0.3307291 0.07276,-0.102526 0.07276,-0.21497396 0,-0.17197916 -0.1422132,-0.30096353 -0.1422136,-0.12898437 -0.3307292,-0.12898437 -0.1686718,0 -0.3075781,0.0992188 -0.1355989,0.0992188 -0.1752864,0.24804686 -0.019844,0.0661458 -0.069453,0.0661458 -0.023151,0 -0.042995,-0.0165365 -0.019844,-0.0198437 -0.019844,-0.0429948 z"
             style="stroke-width:0.79374999"
             id="path8424" />
          <path
             d="m 12.207981,1.3001287 v 0.3307292 q 0,0.3902604 -0.171979,0.6349999 -0.171979,0.2447396 -0.446484,0.2447396 -0.274506,0 -0.446485,-0.2447396 Q 10.971054,2.0211183 10.971054,1.6308579 V 1.3001287 q 0,-0.39356766 0.171979,-0.63830724 0.171979,-0.24473957 0.446485,-0.24473957 0.274505,0 0.446484,0.24473957 0.171979,0.24473958 0.171979,0.63830724 z M 11.589518,0.55268084 q -0.224896,0 -0.353881,0.22820312 -0.128984,0.22489584 -0.128984,0.53578124 v 0.2943489 q 0,0.3241146 0.132292,0.5457031 0.135599,0.2182813 0.350573,0.2182813 0.224895,0 0.35388,-0.2248959 0.128984,-0.2282031 0.128984,-0.5390885 V 1.3166652 q 0,-0.32411458 -0.135599,-0.54239582 -0.132292,-0.22158854 -0.347265,-0.22158854 z"
             style="stroke-width:0.79374999"
             id="path8426" />
          <path
             d="M 13.642054,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436562,-0.43656248 z"
             style="stroke-width:0.79374999"
             id="path8428" />
          <path
             d="M 15.625137,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436563,-0.43656248 z"
             style="stroke-width:0.79374999"
               id="path8430" />
          </g>
      </svg>
    </div>
    <div class="white gradient msfilter" style=color:white>
      FF3.6-2010
    </div>
  </body>
 </html>

2
CSS에는 실제로 릴리스가 있습니다. 1.0, 2.0, 2.1, 3.0 및 4.0이 있습니다. 이 질문은 심지어 Wikipedia 또는 언어 사이트를 출시 날짜 증명으로 사용한다고 말 했으므로 확인해야합니다. 최초 릴리스 날짜 : 1996 년 12 월 17 일
mbomb007

이러한 수준의 구현이 없다는 의미는 아닙니다 (릴리즈라고도하지 않습니다. 게시되지 않은 링크이므로 확인해야합니다). CSS3 및 4는 즉시 작성되고 초안, 후보자 및 권장 사항 사이에서 앞뒤로 이동하기 때문에 릴리스 날짜조차 없습니다. 또한 특정 수준의 100 % 및 0 %의 다음 수준을 구현하는 브라우저는 없으므로 브라우저 출시 날짜가 가장 좋습니다.
qwazix

그런 다음 선택한 언어가이 과제에 필요한 사양을 충족하지 않습니다. 당신이하려는 방식이 아닙니다. 언어는 구현에 의해 정의되므로 다른 브라우저가 아닌 다른 브라우저 버전을 사용하여 브라우저를 선택하고 고수해야 합니다. 그래도 여전히 OP에 물어볼 것입니다.
mbomb007

영업 이익은 다른 버전과 같은 다른 언어를 계산 말하지 않았다, 그들은 단지 언어 버전의 출시 연도가 사용되는 아웃, 인쇄 말했다 다른 언어 . 그러나 절반의 대답은 다른 버전이 언어로 계산되기에 충분히 다르다는 가정에 근거한 것입니다. 파이썬 2.5.0과 2.5.1이 충분히 다른 것으로 간주되면 IE와 Chrome이 어떻게 다른지 이해할 수 없습니다.
qwazix

6

3 년, 89 바이트

Python 2, JavaScript (ES6) 및 Perl

eval((["1","print=_=>console.log(1995)"])[+(2/3>0)]);print(eval(("1991",1987)["$$">"0"]))

첫 번째 eval1Python 2 print=_=>console.log(1995)의 정수 나누기 기능을 사용하여 Python 2 및 JavaScript 및 Perl에서 실행 됩니다 . 이는 printJavaScript 에서 함수를 작성 하며 Perl은 구문 오류 만 자동으로 처리하고 관계없이 수행합니다.

두 번째 eval는 변수 $$(현재 PID)를 문자열에 보간하는 Perl에 의존 합니다. 이는 >연산자를 사용하여 비교할 때 적용됩니다 "0"(Python은 비교에서 문자열이 필요하지만 Perl은 암시 적으로 정수로 변환됩니다).

더 많은 언어로 구두를 ed 수 있었지만 의견을 남용하지 않고 '일반적인'언어로만 작동하는 솔루션을 원했습니다.

내가 사용 이 위키 백과 페이지를 사용하기 위해 년 검색 할 수 있습니다.


2

3 개 언어, 3 년

재미를위한 임시 답변.

2002!~+++++++[<+++++++>-]<[.++++++++..------.[-]] 2016 !.
  • 마우스-2002 : 모든 후~주석, 또한 기록 될 수있는 첫 번째 부분입니다C0U!!!, 인쇄2002.

  • 이 캘크의 사전 도전 커밋은 C11에서 프로그래밍 II를 위해 방금 디자인한 스택 기반 계산기 인터프리터입니다. 첫 번째 공간이되기 전에 프로그램의 일부인 오류 (챌린지 사양에서 허용됨)를2016 !.인쇄합니다2016.

  • Brainfuck : 다른 답변에서 볼 수 있듯이 1993을 인쇄합니다. 최종 외부 관계 .는에 의해 무시됩니다 beef.

현재 스택의 석회질의 표시합니다 < stack비어 있지 않은 모든 입력 라인 프롬프트의 일부 >, 아니 출력의 일부.


Mouse-2002에 대한 정보는 어디서 찾을 수 있습니까? github에는 어떤 종류의 사양이없는 것 같습니다.
밀 마법사

@WheatWizard 저장소의 README에는 Grogono 박사의 원래 MUSYSDavid Simpson의 2002 재부팅으로 연결되는 링크가 포함되어 있으며 OK 그림을 함께 그립니다.
고양이

2

Microsoft Excel / Google 스프레드 시트, 22 바이트

1987Microsoft Excel 및 2006Google 스프레드 시트 에서 입력 및 출력 을 받지 않는 익명 워크 시트 기능

=IfError(M(2006),1987)

0

Perl 5 및 Perl 6 (2 년)

my $a=2015;my @a=1994;print $a[0],"\n"

Perl 5의 첫 번째 릴리스는 1994 년 이었습니다.

Perl 6의 최초 공식 출시는 2015 년 이었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.