어떻게 내 이름? 언어의 이름을 간접적으로 생성


40

언어 자체의 기능 만 사용하여 프로그래밍 언어의 이름 만 생성하십시오. 언어의 이름은 간접적으로, 즉 비 사용자 정의 환경 변수, 내장 함수 또는 메소드 또는 언어의 인터프리터 / 컴파일러에서만 간접적으로 호출 할 수 있습니다. 출력은 언어의 이름이어야합니다.

한 가지 예는 다음과 같습니다.

$ awk --v | awk 'NR<2 { print $2}'  # GNU Awk 3.1.8
Awk

내가 선택한 답은 가장 많은 표를 얻은 답이 될 것입니다. 동점 인 경우, 가장 짧은 골프 버전 (별도의 답변 또는 정답)이 동점 차단기가됩니다.


1
Java 리플렉션 API를 사용하는 것이 좋지 않습니까?
Ming-Tang

나는 그것을 생각하지 않았지만 괜찮습니다.
Ty Auvil 2012

@ 조지 : 응? 이제 코드 골프입니까? 왜? 전에는 아니었다 ...
Joey

@Joey : 아니요, 예전은 아니지만 코드 골프 질문처럼 보였으므로 편집하고 누군가 편집을 승인했습니다.
Nathan Osman 2019

@Joey : Code Golf는 타이 브레이커입니다. 나는 그 태그를 처음에 넣지 않았지만 George는 그것을 제안했고 동의했다.
Ty Auvil

답변:


18

배쉬, 17 7

bash -c 'echo $0'

또는

echo ${0#-}

이미 bash를 실행했다면 : D

업데이트 : "echo $0"도착 $0그래서 첫 번째 확장 'echo $0'정답이다.


로그인 쉘인 경우에만 대시 접두사이고 프로그램을 실행하는 로그인 쉘인 경우 로그인 쉘이 아닙니다.
JB

@ JB : 지적 해 주셔서 감사합니다. 내가 사용하던 "내가 가지고해야하는 위치들 '
Eelvex

이것이 승자 인 것 같습니다. :)
Ty Auvil

echo $ {SHELL : 5}
생선 모니터

30

공백

|  	 	 			
	
    		 	   
	
    		 	  	
	
    			 	  
	
    		  	 	
	
    			  		
	
    			    
	
    		    	
	
    		   		
	
    		  	 	
	


|

실제 언어가 아니며 공백입니다.
Alexandru


아아 죄송합니다, SE는 지금 당신을 찬성하지 않습니다.
Alexandru

괜찮습니다. 나는 최근에이 언어에 대해 배웠다.
Anthony

1
제가 잘못 본게 아니라면, 당신의 프로그램이 두 가지 치명적인 오류가 있습니다 공간, 탭 나타내는 S, T, L셔서 (1), 줄 바꿈은 총 36 첫 번째 명령은 현재이다 SSTSTSTTTL, 그러나해야한다 SSSTSTSTTTL( 3 왼쪽에 S의) - 세 번째 S는 그 뒤에 오는 이진수의 양의 부호 (즉, 이진에서 'W'= 85 = 1010111의 ASCII 코드, 종료 L문자열 로 코딩 됨 TSTSTTTL) 등을 나타내는 데 필요하며, 다른 ASCII 코드의 경우도 마찬가지입니다. (2) prog의 final TLLL은 스택에서 최종 문자를 출력하고 프로그램의 끝을 표시 해야하는 TLSSLLL곳에 있어야합니다 . TLSSLLL
Res


23

파이썬 -23 22

print`credits`[97:103]

2
당신은 후에 공간을 떠나야합니다print
gnibbler

뭐라고합니까 ` 합니까? 나는 그것을 본 적이 없다.
Kazark

4
백틱은 repr ()에서 더 이상 사용되지 않는 별칭입니다. 백틱은 Python 3.x에서 사라졌습니다.
0xKirill

2
@ 0xKir 그래서? 그들이 사라질 때까지 코드 골프에서 그들을 사용하십시오.
Riking

23

J, 4

u:74

짧은 언어 이름이 있으면 도움이됩니다.


도 짧아 질 수있다 :u:74
jpjacobs

19

파이썬 (win32)-임의 모듈의 남용

이것이 실제로 작동 하는지 확실하지 않습니다 . 구현에 따라 다릅니다.

print ''.join([(random.seed(835)==None)and'']+[chr(random.randint(64,90)) for x in range(3)]+[(random.seed(53281)==None)and'']+[chr(random.randint(64,90)) for x in range(3)])

어떻게 찾았 어? 또한 Linux의 Python 2.6.6에서도 작동합니다.
기계식 달팽이

5
잘 들었습니다! 나는 임의의 모듈을 시드하여 특정 시퀀스를 얻는 방법을 결정하는 작은 무차별 도구를 작성했습니다. 세 문자 시퀀스를 사용하면 시간이 오래 걸리지 않습니다.이 스크립트는 "PYTHON"을 얻기 위해 두 개의 세 문자 시퀀스를 결합합니다. :)
zhazam

나머지는 목록 이해와 다른 더러운 트릭을 사용하여 한 줄에 맞도록합니다. 여기서 bruteforcing 도구를 찾을 수 있습니다 :)
zhazam

그리고 그것은 파이썬 3.1.2에서 작동합니다 ( print물론 뒤에 괄호를 추가하십시오 ).
기계 달팽이

1
거의 있습니다 : generateSentence(50613, 73)[66:]제공합니다 'PYTHOCN'.
기계 달팽이

17

BrainFuck

재미를 위해 (이것이 작업의 목적과 관련이 없다는 것을 알고 있습니다.), 나는이 코드를 썼습니다 ...

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

그리고 교체 할 때 <, >, [, ], .공간 ...

+++++   -+-+-     ++    +++++  +     +
+    +  +    +   -  +     +    ++    -   
+    +  +    -  +    +    +    - -   - 
+++++   +++++   ------    +    -  +  - 
+    +  +    +  +    -    -    -   + -  
+    +  +    -  -    -    -    -    -+ 
++---   +    +  +    -  +++++  +     - 

+++  + +  +++  + + 
-    + +  +    ++ 
+++  + +  +    + 
+    + -  +    ++
+    ++-  -+-  + +


---  
---
---
---

 - 
---
 - 


12

파이썬

import sys;print sys.copyright[24:30]

이것은 또한 나를 위해 작동합니다 (sys. executable은 '/ usr / bin / python'입니다)

import sys;print sys.executable[9:]

1
여기 내가 내가 이것들로부터 얻는 것입니다 : Active그리고 25\Lib\site-packages\pythonwin\Pythonwin.exe... 그래서 좋지 않습니다
Nas Banov

import sys;print sys.subversion[0][1:]그래도 작동
Nas Banov

6
그것은 부정 행위입니다 ...하지만 난 더 나은 속임수 :eval.__doc__[144:150]
JBernardo

11

brainfuck 101

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

아마 약간 더 골프를 칠 수 있지만, 오전 6시이며 잠을 자야합니다 ...


11

C에서 Anon의 대답의 정신으로 (C 파일을 고려하면 항상 확장자는 .c입니다). 나는 제안 할 것이다 :

#include <stdio.h>
void main(){puts(__FILE__+sizeof(__FILE__)-2);}

5
main(){puts(__FILE__+2);}filename이 단일 문자라고 가정하면 훨씬 짧은 25 자 (한 줄) 입니다. a.c
Hasturkun

7

자바

public class Name {
    public static void main(String[] args) {
        String s = "";
        s = s.getClass().getName();
        s = s.substring(0, 1).toUpperCase() + s.substring(1, 4);
        System.out.println(s);
    }
}

anon : 다른 답변을 제출하십시오. 이것은 골프가 아니므로 짧게 할 필요가 없습니다.
Joey

6

DevStudio 2005를 사용하여 빌드

#include <stdio.h>
void main ()
{
  int i,j,i2;
  for (i=j=0,i2=200;i2<=200;i2-=19,j==putchar(32|(i2<'Q'&&i2>'+'&&(j<20||i<12||i>28))*3)+8?j=0,i2+=i,i+=putchar('\n')-8:(i2+=j,j+=2));
}

약간 더 짧은 버전 (컴파일러 경고 포함)

int i,j,k;
for (i=j=k=0;k<=0;k-=19,j==putchar(32|(k<-119&&k>-157&&j<20|i<12|i>28)*3)+8?j=0,k+=i,i+=putchar('\n')-8:(k+=j,j+=2));

첫 번째는 intgcc를 사용하여 기본 유형이 아니라는 경고를 생성 합니다.
oenone

1
문자 'c'는 사용할 수 없습니다.
kinokijuf

6

루비-27

puts RUBY_DESCRIPTION[0..3]

Chris Jester-Young의 의견에서 업데이트 :

루비-24

puts RUBY_COPYRIGHT[0,4]

Hauleth에서 업데이트 :

루비-15

p`ruby -v`[0,4]

1. RUBY_COPYRIGHT보다 짧습니다 RUBY_DESCRIPTION. 2. [0,4]보다 짧습니다 [0..3].
Chris Jester-Young

더 짧은```ruby -v` [0,4]``
Hauleth

5

고양이 3

다음과 같은 내용의 파일을 만듭니다 (소스 코드)

cat

다음과 같이 실행하십시오 (파일을 실행하십시오).

$ cat filename

7
간접적이거나 언어가 아닌가?
eternalmatt

4
고양이는 튜링이 완전하지 않기 때문에 실제 언어가 아닙니다.
kinokijuf

3
@kinokijuf Turing-complete가 아닌 유용한 언어가 많이 있습니다. 부분 목록 은 stackoverflow.com/q/8412741/20713 을 참조하십시오 .
ephemient

5
@ephemient : 고양이는 튜링을 완료 할뿐만 아니라 언어도 아닙니다. 구문, 문법, 키워드가 없습니다. 나는 비트 마스크가 어디에서 그의 정의를 얻었는지 모른다. 나는 그것을 따르지 않는다.
사용자가 알 수 없음

6
@userunknown cat언어라는 것은 상상하기 어렵고 그 외에 질문의 정신을 침해합니다 (언어 이름을 직접 사용함). 내 의견은 "고양이는 튜링이 완전하지 않기 때문에 실제 언어가 아니다"라는 생각을 반박하는 것이었다. 다른 이유로 언어가 아니지만 Turing-completeness는 좋은 결정 요소가 아닙니다.
ephemient



5

루비

짧지는 않지만 매우 간접적입니다.

4.times{|x|print((82+11.24*x+8.231*Math.tan(111.2*x)).floor.chr)}


5

배쉬 / Brainfuck / C

//bin/bash -c 'echo ${0##*/}'
#define p putchar
#define exit main(){p(p+67);p(10);}
exit
//++++++++[->++++++++++++>+>>++>+++<<<<<]>[->+>+>+>+<<<<]
//>+>++.>++.<-.<.>>----.<<---.>>>---.<<++.>---.

와! 폴리 글롯! 다음 단계 : 공백을 추가하십시오.
tbodt

4

Brainfuck

>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++++++++++++++++++++++++++.
-----------------.
++++++++.
+++++.
--------.
+++++++++++++++.
------------------.
++++++++.

Br ** n! (가야 할 5 개 이상)
Dr. belisarius

@ 벨리 사리우스 : 흠?
Joey

Br ** n
Mateen Ulhaq

1
당신은 [...]로 더 작게 만들 수 있습니다 : ++++++++++ [> ++++++> ++++++++++> +++++++++ ++> ++++ <<<<-]> ++++++. >> ++++. <---. ++++++++. +++++ .-- ------. >> ++. * << ---. ++++++++.
JBernardo

12
일반적인 Git 출력 처럼 보입니다 .
Joey Adams

4

$^X=~/([a-z]+)[^\/]+$/;print$1,$/

나는 per출력으로 만 얻는다 (마지막 l을 놓치다).
BioGeek

1
@ BioGeek : Perl바이너리가 호출 per됩니까?
ninjalj

2
나는 또한 얻는다 per. (내 $^X/usr/bin/perl. [^\/]+제비는 제비 l.)
일 마리 카로 넨

고정 : $^X=~/([^\/]+)$/;print$1, -l커맨드 라인 스위치로 실행
ardnew

4

스칼라 — 42

print(((1,1).getClass+"").substring(6,11))

업데이트 — 39 자

print(('a.getClass+"").substring(6,11))

좋은! 동일한 크기의 변형 : print (( ""+ 'a.getClass) .split ( "\\ b") (3))
PhiLho

나는 대문자를 선호하지만 물론 골프는 아닙니다. 따라서 변형을 만드는 즐거움을 위해 print (classOf [App] .toString.split ( "\\ W"). map (_. capitalize) .apply (1))
PhiLho

23
자의

그리고 16 : ( ""+ Map)
.take

또는 13 :""+Map take 5
Régis Jean-Gilles

4

C-34

나는 이것을 이전 C 항목에 대한 주석으로 추가 할만 큼 평판이 좋지 않습니다. 위와 같은 생각이지만 파일 이름은 무엇이든 될 수 있습니다 .c

main(){puts(index(__FILE__,0)-1);}

2
Gah, 그러나 이제 파일 이름을 "& raquo; \ 0 <3ASCII.c"로 지정할 수 없습니다
walpen


3

Visual Basic (버전 6.0)

MsgBox Right(Error(458), 12)

VBScript

On Error Resume Next
Err.Raise 458
MsgBox Right(Err.Description, 8)

VB6 및 VBScript 모두

On Error Resume Next
Err.Raise 458
D = Err.Description
MsgBox Mid(D, InStr(2, D, "V"))

VBScript는 "Bscript"를 생성합니다. 내 컴퓨터에.
kinokijuf

당신은 나쁜 사람입니다.
Riking

3

Q 베이직 (37)

QBasic 인터프리터 버전 1.1을 사용하고 있습니다.

FOR x=0TO 5:?CHR$(PEEK(2588+x));:NEXT

3

루아 25 문자

print(arg[-1]:match"%w+")

또는 JB의 J 솔루션 17 문자 와 유사합니다 .

print"\76\117\97"

1
_VERSION:sub(1,3)
mniip

3

골프 스크립트 (13)

"#{$0[0..9]}"

+1 영리 ... 매우 영리합니다. 물론 인터프리터의 이름을 바꾸거나 다른 디렉토리에서 인터프리터를 실행하는 경우에는 작동하지 않습니다.
Ilmari Karonen

추신. "#{$0}"10<세 문자가 짧습니다. :)
Ilmari Karonen

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