문제

나는 이제 Perl을 배우고 있습니다. 해석 된 언어의 장단점은 무엇입니까?

도움이 되었습니까?

해결책

Wikipedia의 뻔뻔스러운 사본 그래서 나는이 커뮤니티 위키를 만들 것이다.

해석 된 언어의 장점

해석 된 언어는 프로그램에 컴파일 된 언어보다 특정 유연성을 제공합니다. 컴파일러보다 통역사에서 구현하기 쉬운 기능은 다음을 포함하지만 다음과 같습니다.

  • 플랫폼 독립성 (예 : Java의 바이트 코드)
  • 평가자의 반사 및 반사 사용 (예 : 1 차 평가 기능)
  • 동적 타이핑
  • 디버깅의 용이성 (해석 된 언어로 소스 코드 정보를 얻는 것이 더 쉽습니다)
  • 작은 프로그램 크기 (해석 된 언어는 명령 코드를 선택할 수있는 유연성이 있기 때문에)
  • 역동적 인 범위
  • 자동 메모리 관리

해석 된 언어의 단점

통역사에 의한 실행은 일반적으로 일반 프로그램 실행보다 훨씬 덜 효율적입니다. 모든 명령어가 런타임 또는 최신 구현에서와 같이 해석을 통과해야하므로 모든 실행 전에 코드를 중간 표현으로 컴파일해야하기 때문입니다. 가상 머신은 정의 된 중간 언어가 기계 언어에 훨씬 가깝기 때문에 런타임에 번역하기가 더 쉽기 때문에 성능 문제에 대한 부분 솔루션입니다. 또 다른 단점은 로컬 컴퓨터의 통역사가 실행을 가능하게하기 위해 필요하다는 것입니다.

다른 팁

장점 :

  • 빠른 프로토 타이핑 (쓰기, 컴파일, 실행 사이클)
  • 크로스 플랫폼 (각 플랫폼마다 통역사가 있다고 가정)

단점 :

  • 성능 (컴파일 된 언어만큼 빠르지 않음)

가장 큰 단점? 대부분은 실행 속도를 말하지만 항상 사실은 아닙니다. 요즘 대부분의 현대 해석 언어는 파일을 빌드시 중간 상태로 해석하도록 변환합니다. 요즘 이러한 언어 VM 내에서 영리한 캐싱이 대부분 널리 퍼져 있기 때문에 너무 많은 문제가되지 않아야합니다. 이것은 성능이 해석 된 언어에서 문제가 아니라고 말하는 것이 아니라, 대부분의 언어가 제안한 것만 큼 나쁘지 않다고 말하는 것은 아닙니다.

그러나 성능 문제가 있더라도 작고 효율적인 코드로 컴파일 된 언어와 동일한 작업을 수행하는 것이 종종 종종 컴파일 중에 성능 손실이 프로그램 실행 시간 동안 무시할 수 있음을 명심하십시오.

개인적으로 저에게 가장 큰 단점은 실행이 발생하기 전에 항상 통역사가 존재해야한다는 것입니다. 이것은 종종 해석 된 언어가 항상 교차 플랫폼이 아니기 때문에 휴대 성을 줄입니다.

범죄자:

  • 가장 큰 단점은 아마도 실행 속도 일 것입니다

찬성:

  • 가장 큰 상승은 아마도 턴-어라운드 시간, 즉 코드 테스트 반복 루프 일 것입니다.

명백하고 광범위한 지점을 제시하기 위해 컴파일 된 언어는 해석 된 언어보다 성능이 높은 경향이 있습니다. 컴파일링은 런타임 통역사의 필요성을 배제하기 때문입니다.

소스 코드가 함께 배송되지 않기 때문에 컴파일 된 언어는 상용 데스크톱 소프트웨어에 더 적합합니다.

해석 된 언어는 컴파일러를 기다리지 않고 신속하게 편집/반복 할 수있는 한 학습하기가 조금 더 빠릅니다. 내 경험상 그들은 또한 더 높은 수준 인 경향이 있으므로 더 쉽게 만듭니다.

위키 백과 장점과 단점에 대한 페이지가 있습니다. 상당히 발전된 해석 된 언어는 실제 바이너리로 실제로 편집 될 수 있으므로 해석 된 언어의 프로와 단점 사이의 선을 흐리게합니다.

Perl은 라인을 흐리게하는 언어 중 하나입니다. 강력한 스크립팅 언어로 유명하지만, 당신은 그것을 기본으로 컴파일 할 수 있습니다.

Perl과 같은 동적 언어의 "속도"는 더 이상 문제가되지 않을 수 있습니다. 동적 언어 영역의 최신 트렌드에 대한 훌륭한 프레젠테이션은 다음과 같습니다.

http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html

Java는 언어로 해석됩니다

장점 :

  • 호환성 : Java Virtual Machine 은이 개념을 승인합니다.
  • 보안 : JVM에서 실행되는 프로그램이므로 실패가 발생하면 운영 체제 파일에 영향을 미치지 않습니다.
  • 메모리 관리.

단점 :

  • Java Virtual Machine에는 많은 구현이 있습니다. 예를 들어 Java 8 기능을 사용하는 프로그램을 작성할 때이 프로그램은 8 버전으로 JVM에서 실행해야합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top