10個超棒的用於數學的編程語言。

總結的10個超棒的用於數學的編程語言。

總結的目標在於多樣化,爲大家提供廣泛的編程和問題建模方法。

編程語言描述摘自它們各自的網站或維基百科頁面,但裏面也加進去了我的一些看法。

1. WOLFRAM語言

Wolfram語言是Mathematica和Wolfram編程雲的編程語言。

它是由Wolfram Research開發的一種通用的多範式編程語言。它被設計得儘可能通用,並且強調符號計算,函數式編程和基於規則的編程。

語言非常大,涉及衆多領域,通常較爲專業化。

我的看法

這是一種相當好的函數式的基於規則的編程語言,可以非常好地處理符號計算。也就是說,就編程語言而言,我並不覺得它特別優雅。

它的真正價值在於其龐大的多領域標準庫,尤其是對於數學應用程序,幾乎領先於世界上任何其他編程語言。點擊查看演示,很大可能會給你留下深刻印象。

2. MATLAB / GNU OCTAVE

MATLAB(matrix laboratory 矩陣實驗室)是一個多範型數值計算環境和第四代編程語言。

這是由MathWorks開發的一種專有編程語言,MATLAB支持矩陣操作,函數和數據繪圖,算法的實現,用戶界面的創建以及用其他語言(包括C,C++,Java,Fortran和Python)編寫的程序接口。

我的看法

很難勝任數值計算。對此不妨考慮開源替代實現/克隆GNU Octave。

3. R語言

R是由R Foundation for Statistical Computing支持的用於統計計算和圖形的編程語言和軟件環境。

R語言被統計學家和數據挖掘者廣泛用於開發統計軟件和數據分析。

民意調查,數據挖掘者調查和學術文獻數據庫研究表明,近年來R的受歡迎程度大幅增加。

4. COQ / GALLINA

Coq是一個交互式的定理證明工具。它允許表達數學斷言,機械地檢查這些斷言的證明,幫助找到形式化的證明,並從其正式規範的建設性證明中提取認證程序。

Coq工作在歸納結構微積分理論的基礎上,歸納結構微積分是結構微積分的一個衍生物。

作爲編程語言,Coq實現了一種依賴類型的函數式編程語言,作爲邏輯系統,Coq實現了一個更高階的類型理論。

Coq提供了一種名爲Gallina的規範語言。用Gallina編寫的程序具有弱化的標準化屬性 ——它們總是終止。

5. PROLOG

Prolog是與人工智能和計算語言學相關的通用邏輯編程語言。

Prolog的根源是一階邏輯——一種形式邏輯,且與許多其他編程語言不同的是,Prolog是聲明式的。

程序邏輯用關係來表達,用事實和規則來表現。通過對這些關係運行查詢來啓動計算。

6.Haskell

Haskell是一個標準化的,通用的純函數式編程語言,具有非嚴格的語義和強大的靜態類型。Haskell具有類型推斷和惰性計算的類型系統。

我的看法

作爲非函數程序員最難掌握的語言之一,其學習曲線走得非常艱難。由於沒有副作用及其純粹的功能性使它非常適合建模數學問題。那些從事類別理論和編程語言研究的人會對Haskell特別感興趣。

7. IDRIS

Idris是一種具有相關類型的通用純函數編程語言。類型系統類似於Agda使用的類型系統。

語言支持可與Coq媲美的交互式定理證明,包括策略,即使在定理證明之前,重點仍然放在通用編程上。

Idris的其他目標是“充足”性能,易於管理的副作用和支持實施嵌入式領域特定語言。

我的看法

研究型語言。它結合了Haskell和Coq的元素。很有意思。

8. JULIA

Julia是用於技術計算的高級和高性能的動態編程語言,具有用戶熟悉的其他技術計算環境的語法。

它提供了一個複雜的編譯器,分佈式並行執行,數值準確性和廣泛的數學函數庫。 Julia的基本庫,主要是用Julia編寫的,它還集成了用於線性代數,隨機數生成,信號處理和字符串處理的成熟和最佳的開源C和Fortran庫。

我的看法

用於科學計算和數據科學非常有前途的編程語言。由於Jupyter項目,Julia也可以用作可執行的筆記本電腦。

9. PYTHON

Python是一種廣泛使用的高級通用解釋型動態編程語言。

其設計理念強調代碼可讀性,其語法允許程序員用比C ++或Java等語言更少的代碼行來表達概念。

該語言提供了旨在實現小規模和大規模清晰程序的構造。

Python支持多種編程範例,包括面向對象,命令式和函數式編程或過程式樣式。它具有動態類型系統和自動內存管理,並有一個大而全面的標準庫。

我的看法

從數學和科學的觀點來看,Python有趣的地方在於有大量可用的相關庫可用於這種流行的編程語言(例如,numpy,scipy,scikit-learn,Sage等)。

得益於此豐富的生態系統,你可以輕鬆學習,這對於科學計算來說真的非常棒。而且,由於它很受歡迎,因此示例(和Jupyter notebooks)可以廣泛使用。

10. J

J是一種非常簡潔的數組編程語言,尤其適用於數學和統計編程,特別是在矩陣上執行操作的時候。它也被用於極限編程和網絡性能分析。

與原來的FP / FL語言一樣,J通過它的隱性編程功能支持函數級編程(與函數式編程不同)。

我的看法

J,和APL和K一樣,是一種離奇古怪令人費解的語言。起初簡潔難以閱讀,但非常強大。如果你對處理數據操作和分析的新方法感興趣,那麼值得嘗試一下。

下面是一個quicksort的實現——只是爲了讓你知道我們在這裏處理什麼。

quicksort = : ((:@(<#[),(=#[),:@(>#[))({〜?@#))^:(1 <#)

寫得比較豪放。

好了,到這裏就結束了。當然,還有其他有價值的選擇,歡迎在評論中告訴我們。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章