2009-10-22 156 views
2

我現在在學習Perl,但是解釋型語言的優點和缺點是什麼?因爲我開始學習Perl是因爲我的朋友開始了,那麼它只是我的經驗中的一種語言。謝謝。優點和缺點解釋語言

回答

11

Blatant copy from wikipedia所以我會製作這個社區wiki。解釋型語言的

優勢

解釋語言給程序在編譯語言的某些額外的靈活性。特點是比編譯器更容易實現在解釋包括(但不限於):

  • 平臺獨立性(Java的字節碼,例如)
  • 反射和反射使用的評估(如第一階eval函數)
  • 動態類型
  • 便於調試(這是比較容易得到的源代碼信息,解釋型語言)
  • 小程序的大小(因爲解釋語言都可以靈活地選擇指令代碼)
  • 動態作用域
  • 自動存儲器管理的

缺點解釋語言

由解釋器執行的通常效率低得多然後定期執行程序。發生這種情況的原因是每條指令都應該在運行時通過解釋或者在更新的實現中通過解釋,代碼必須在每次執行之前編譯爲中間表示。虛擬機是性能問題的部分解決方案,因爲定義的中間語言更接近機器語言,因此在運行時更易於翻譯。另一個缺點是需要本地機器上的解釋器來使執行成爲可能。

1

缺點:

  • 最大的缺點是可能執行速度

臨:

  • 最大的好處是可能的週轉時間,即代碼的測試迭代循環
5

優點:

  • 快速原型(不寫,編譯,執行週期)
  • 跨平臺(假設每個平臺有口譯)

缺點:

  • 性能(不與編譯語言一樣快)
+2

C/C++可以說是跨平臺的;-) – jldupont 2009-10-22 23:19:29

+3

我用C++開發,它是非常多的跨平臺。 – 2009-10-22 23:20:53

+1

我不是說非解釋性語言不是跨平臺的,我只是說這是一個解釋性語言常見的正面屬性:) – 2009-10-22 23:30:02

1

爲了提出明顯和寬泛的點,co因爲編譯不需要運行時解釋器,所以mpiled語言往往比解釋語言具有更高的性能。

編譯語言更適用於商業桌面軟件,因爲源代碼不隨附於其中。

解釋型語言通常會更快學習,因爲它們允許您在不等待編譯器的情況下快速編輯/運行/重複。根據我的經驗,他們也傾向於更高級別,這也使他們更容易。

2

最大的缺點是?大多數人會說執行速度,但並非總是如此。現代的大多數現代解釋語言都是在構建時將文件轉換爲中間狀態,並在執行時像其他語言一樣轉換爲機器碼。現在,聰明的緩存在這些語言虛擬機中大部分是普遍存在的,所以它不應該成爲太多問題。這當然不是說性能不是解釋性語言的問題,只是它通常不像大多數人所暗示的那樣糟糕。請記住,即使存在性能問題,通過更少和更高效的代碼實現與編譯語言相同的任務通常也更容易,從而使編譯期間的性能損失在程序的執行時間內可以忽略不計。

對我個人來說,最大的缺點是需要解釋器在執行之前總是存在。這通常會降低可移植性,特別是因爲解釋型語言並不總是跨平臺的。

+0

「當執行時像其他語言一樣變成字節碼」 本地編譯和執行的代碼(典型的像C和C++(非.NET)的語言)不涉及字節碼。 – Pulseczar 2016-06-07 16:12:35

+0

@Pulseczar對不起,你說得很對,那是我編輯過的一個錯誤 - 我的意思是「機器碼」。我提到的「中間狀態」通常是字節碼。 – 2016-06-08 11:25:18

0

Wikipedia有優點和缺點的網頁。任何顯着高級的解釋型語言都可以實際編譯成本地二進制文件,從而模糊瞭解釋型語言的專業人員和負責人之間的界限。

PERL是模糊線條的語言之一。雖然它以一種強大的腳本語言而聞名,但您可以將它編譯爲本地語言。

0

由於Java是解釋型語言

優點:

  • 兼容性:Java虛擬機覈准這一概念「寫一次,到處跑」。
  • 安全性:JVM中運行的程序,所以如果發生任何故障,這不會影響操作系統文件。
  • 內存管理。

缺點:編寫使用Java 8個特性此程序必須使用8版本不低於JVM上運行程序時

  • Java虛擬機有許多實現,例如。