25

루비의 위키 피 디아 페이지에서이 언어가 인터 프리트 언어로 정의되어있는 것으로 나타났습니다.
아마 내 배경에 뭔가 빠져 있다는 것을 알았습니다.
필자는 컴파일러가 필요없는 해석 된 언어와 컴파일 된 언어 (프로그램을 실행하기 전에 컴파일해야하는) 간의 차이점을 항상 알고 있었지만 스크립팅 언어의 특징은 무엇입니까?
Ruby를 스크립팅 언어로 정의 할 수 있습니까?

당신을 감사Ruby는 스크립팅 언어 또는 통역 언어입니까?

+0

가능한 복제본 [모든 구현이 바이트 코드로 컴파일되면 Ruby는 실제로 해석 언어입니까?] (http://stackoverflow.com/questions/717490/is-ruby-really-an-interpreted-language-if) -all-of-its-implementations-are-compile) – nawfal

답변

37

물건은 흑백이 아닙니다. 최소한 크고 작고 크고 조용한 파랑, 오렌지, 회색과 회색, 길고 짧은 것, 옳고 그른 것 등이 있습니다.

해석 된/컴파일 된 것은 언어를 분류하는 한 가지 방법 일뿐입니다. 동일한 언어를 "스크립팅 언어"라고 부르는지 여부와 관계없이 (수많은 다른 것들 중에서) 완전히 독립적입니다. 그것을 위로하기 위해, 또한 깨진 분류의 : 컴파일 된 해석

  • 것은/통역 모두와 컴파일러에 대한 꽤 많은 언어가 실제로있다, 이것은 단지 이론되지 않습니다 (안 언어, 언어 구현에 따라 달라집니다 존재 함)
  • 컴파일러이지만 (단지 대부분의 Ruby 구현을 포함하여 많은 언어 구현이 있지만) 바이트 코드를 컴파일하고 해당 바이트 코드를 해석하는 "경우에만"컴파일됩니다.
  • 네이티브 코드 (JIT 컴파일러) 로의 해석과 컴파일 사이를 전환하는 구현도 있습니다.

현실은 복잡한 짐승입니다.) 위에서 언급했듯이 Ruby는 자주 컴파일됩니다. 그 컴파일 결과는 최소한 해석되는데, JIT 컴파일 (Rubinius 및 IIRC JRuby가 잠시 후에 Java 바이트 코드로 컴파일 함) 구현도 있습니다. 참조 구현은 오랫동안 컴파일러였으며 IIRC는 여전히 그렇습니다. 그래서 Ruby가 해석되거나 컴파일 되었습니까?) 당신이 정의하지 않는 한 어느 용어도 의미가 없습니다;)

"스크립팅 언어"는 언어의 속성도 아니며 언어가 사용되는 방식, 즉 언어 사용 여부에 달려 있습니다. 스크립팅 작업. 정의를 찾으려면 위키 피 디아 페이지 "Scripting language"이 도움이 될 수 있습니다. 스크립트가 일반적으로 해석되는 것과 같은 구현 세부 정보의 참고 사항과 혼동하지 않도록하십시오. 실제로 Ruby를 스크립팅 작업에 사용하는 프로그램이 몇 가지 있으며 의심 할 여지없이 스크립트 (웹 스크래핑, 시스템 관리 등)로 분류 될 수있는 여러 가지 무료 루비 프로그램이 있습니다.

그래서 , 나는 Ruby를 스크립팅 언어라고 부를 수 있다고 생각합니다. 물론 레일즈 웹 애플리케이션의 루비가 스크립트 일 뿐이라는 것은 아닙니다.

+0

Java는 어떻습니까? 내가 스크립팅 언어를 정의 할 수 없다고 생각하는 것이 사실입니까? 왜 ? 감사합니다. –

+1

@Guiseppe : 스크립팅을 위해 자바를 사용하는 사람은 거의 없으므로 일반적으로 스크립팅 언어라고하지는 않습니다. 물론, 일부 응용 프로그램이 스크립팅을 위해 Java를 사용하는 경우 Java는 실제로 해당 상황에서 스크립팅 언어로 적합 할 수 있습니다. – delnan

+2

이제 SE에서 본 것 중 가장 자상 한 대답이었습니다. 그는 당신에게 그에게 인생을 가르치기를 원하지 않았고, 루비에 대해서 질문을했습니다 ... – user832146

3

용어 '스크립트 언어가'매우 광범위 밖으로 검은 나를 용서하고는 모두 해석 및 컴파일 된 언어를 포함 할 수 있습니다. 특히 Ruby는 우리가 사용하는 특정 구현에 따라 컴파일되거나 해석 될 수 있습니다. 예를 들어 JRuby는 바이트 코드로 컴파일되고 CRuby (Ruby의 참조 구현)는

4

예와 같이 해석됩니다.

자세한 응답 :

스크립트 언어는 일반적으로 자주 언어로 작성되지 않은 응용 프로그램을 제어하는 ​​데 사용됩니다. 예를 들어 쉘 스크립트 등은 임의의 콘솔 응용 프로그램을 호출 할 수 있습니다.

루비는 스크립팅에 자주 사용되는 범용 동적 언어입니다.

아래의 백틱 표기법을 사용하여 임의의 시스템 호출을 할 수 있습니다. 웹 및 기본 GUI를 자동화하는 등 WatirRAutomation 많은 우수한 루비 보석도

`<system command>` 

있습니다.

스크립팅 언어의 정의는 here을 참조하십시오.