Wolfram Dili - Wolfram Language
paradigma | Çoklu paradigma : terim yeniden yazma , işlevsel , prosedürel , dizi |
---|---|
Tarafından tasarlandı | Stephen Wolfram |
geliştirici | Wolfram Araştırması |
İlk ortaya çıktı | 1988 |
kararlı sürüm | 12.2 / 16 Aralık 2020
|
Yazma disiplini | Dinamik , güçlü |
işletim sistemi | Çapraz platform |
Lisans | tescilli |
Dosya adı uzantıları | .nb, .m, .wl |
İnternet sitesi | www |
Başlıca uygulamalar | |
Mathematica , Wolfram|One , Mathics , Expreduce , MockMMA , WolframAlpha | |
Tarafından etkilenmiş | |
Etkilenen | |
Wolfram Dili ( / w ʊ l f r əm / wuul -frəm ) bir general çok paradigma programlama dili tarafından geliştirilen Wolfram Research . Sembolik hesaplamayı , fonksiyonel programlamayı ve kural tabanlı programlamayı vurgular ve keyfi yapılar ve veriler kullanabilir. Matematiksel sembolik hesaplama programı Mathematica'nın programlama dilidir .
Tarih
Wolfram Dili, 1988'de Mathematica'nın ilk sürümünün bir parçasıydı.
Motorun sembolik yönleri onu bir bilgisayar cebir sistemi yapar. Dil, bir dizi kural kullanarak entegrasyon, türev alma, matris manipülasyonları yapabilir ve diferansiyel denklemleri çözebilir . Ayrıca 1988'de notebook modeli ve Theodore Gray'in patentine göre ses ve görüntü gömme yeteneği vardı .
Dil için çevrimiçi bir kullanıcı arabirimi olan WolframAlpha , 2009'da yayınlandı. Wolfram, bu web sitesini, doğal dil ifadelerini kendi veritabanına bağlanan Wolfram dilindeki sorgulara çevirerek hayata geçirdi . Wolfram Alpha'ya yol açan çalışma aynı zamanda Wolfram'ın dil uygulamasının artık bir bilgi tabanına ve doğal dil işleme işlevlerine yerleşik erişime sahip olduğu anlamına gelir.
Wolfram ayrıca 3D modelleme gibi daha karmaşık görevler için özellikler ekledi.
Wolfram Research, Raspberry Pi kullanıcıları için dil motorunun bir versiyonunu ücretsiz yapmaya karar verdiğinden ve bunun için bir isim bulmaları gerektiğinden , nihayet 2013'te dil için bir isim kabul edildi . Raspberry Pi Foundation'ın yeni başlayanlar için sağladığı önerilen yazılım paketine dahil edildi ve bu da Wolfram dilinin özel doğası nedeniyle bazı tartışmalara neden oldu . Wolfram dilini Intel Edison'a taşıma planları , yönetim kurulunun CES 2014'teki tanıtımından sonra açıklandı, ancak hiçbir zaman yayınlanmadı. 2019'da Wolfram kitaplıklarını Unity oyun motoruyla uyumlu hale getirmek için bir bağlantı eklendi ve oyun geliştiricilerin dilin üst düzey işlevlerine erişmesini sağladı.
Sözdizimi
Wolfram Dili sözdizimi, genel olarak 1960'ların LISP'sinin M-ifadesine benzer , infix operatörleri ve "işlev gösterimi" işlev çağrıları için destek sağlar.
Temel bilgiler
Wolfram dili, infix operatörlerini kullanarak temel aritmetik ifadeleri yazar .
(* This is a comment. *)
4 + 3
(* = 7 *)
1 + 2 * (3 + 4)
(* = 15 *)
(* Note that Multiplication can be omitted: 1 + 2 (3 + 4) *)
(* Divisions return rational numbers: *)
3 / 2
(* = 3/2 *)
İşlev çağrıları köşeli parantezlerle gösterilir:
Sin[Pi]
(* = 0 *)
(* This is the function to convert rationals to floating point: *)
N[3 / 2]
(* = 1.5 *)
Listeler küme parantezleri içine alınmıştır:
Oddlist={1,3,5}
(* = {1,3,5} *)
sözdizimi şeker
Bir ifadeyi göstermenin alternatif, daha insan dostu bir yolu mevcut olduğunda, dil M-ifade paradigmasından sapabilir:
- Bu dilde,
TeXForm
dizgi ifadeleri veInputForm
dil girişi de dahil olmak üzere bir dizi biçimlendirme kuralı kullanılır . - İşlevler, önek ifadesi
@
ve sonek ifadesi kullanılarak da uygulanabilir//
. - Türevler bir kesme işareti ile gösterilebilir
'
. - İnfix operatörlerinin kendileri, fonksiyon notasyon sistemi için "şeker" olarak kabul edilir .
Bir FullForm
biçimlendirici girdinin şekerini azaltır:
FullForm[1+2]
(* = Plus[1, 2] *)
Fonksiyonel programlama
Körleme desteklenir.
desen eşleştirme
Wolfram Dilindeki işlevler, temel olarak değiştirilecek basit kalıpların bir durumudur:
F[x_] := x ^ 0
Bu :=
bir "SetDelayed operatörüdür", böylece x hemen aranmaz. x_
sözdizimi şekeridir Pattern[x, Blank[]]
, yani değerlendirmenin geri kalanında x'in yerini alacak herhangi bir değer için "boş"tur.
Kabarcık sıralama yinelemesi şu şekilde ifade edilir:
sortRule := {x___,y_,z_,k___} /; y>z -> {x,z,y,k}
(* Rule[Condition[List[PatternSequence[x, BlankNullSequence[]], Pattern[y, Blank[]], Pattern[z, Blank[]], PatternSequence[k, BlankNullSequence[]]], Greater[y, z]], List[x, z, y, k]] *)
/;
Operatör kuralın geçerlidir böylece, "koşul" olduğunu y>z
. Üç alt çizgi, BlankNullSequence[]
null olabilen bir dizi için bir sözdizimidir .
Bir ReplaceRepeated //.
işleci, bu kuralı tekrar tekrar uygulamak için, başka bir değişiklik olmayana kadar kullanılabilir:
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *)
(* = {1, 2, 3, 4, 5, 9} *)
Desen eşleştirme sistemi de kolayca kural tabanlı entegrasyon ve derivasyon yükselecek verir. Aşağıdakiler Rubi kurallar paketinden alıntılardır:
(* Reciprocal rule *)
Int[1/x_,x_Symbol] :=
Log[x];
(* Power rule *)
Int[x_^m_.,x_Symbol] :=
x^(m+1)/(m+1) /;
FreeQ[m,x] && NeQ[m,-1]
Uygulamalar
Wolfram Dilinin resmi ve referans uygulaması Mathematica'da ve ilgili çevrimiçi hizmetlerde yatmaktadır. Bunlar kapalı kaynak. Ancak Wolfram Research, açık kaynak MIT Lisansı altında dilin bir C++ ayrıştırıcısını yayınladı . Referans kitabı açık erişimdir .
Wolfram dilinin otuz yılı aşkın bir süredir varlığında, bir dizi açık kaynaklı üçüncü taraf uygulaması da geliştirilmiştir. Richard Fateman'ın 1991 tarihli MockMMA'sı, hem en eski yeniden uygulama olması hem de Wolfram'dan bir durdurma ve vazgeçme alması nedeniyle tarihi bir nottur. Nisan 2020'den itibaren halen korunmakta olan modernler arasında Java'da Symja, Golang'da expreduce ve SymPy tabanlı Mathics bulunmaktadır . Bu uygulamalar , Wolfram'ın çevrimiçi "bilgi tabanı" özelliklerine değil , çekirdek dile ve bunun ima ettiği bilgisayar cebir sistemine odaklanır .
2019'da Wolfram Research , ticari olmayan yazılımlarda bir programlama kitaplığı olarak kullanılmak üzere ücretsiz bir Wolfram Engine yayınladı .
adlandırma
Dil resmi olarak Haziran 2013'te adlandırıldı, ancak bilgisayar sistemi Mathematica'nın arka ucu olarak, Mathematica'nın ilk sürümünden bu yana 30 yılı aşkın bir süredir çeşitli biçimlerde kullanılıyor.
Ayrıca bakınız
Referanslar
Dış bağlantılar
- Wolfram Dili için Belgeler
- Wolfram Diline Temel Bir Giriş
- Wolfram Programlama Bulutu
- WolframLanguage.org : Wolfram Dili hakkında topluluk kaynakları için bir rehber
- "Mathematica dili"nin vitrini , Code Golf StackExchange Community Wiki
- Wolfram Dili ile Matematik, Fizik ve Kimya (World Scientific, 2022)