A Wolfram nyelv történetéről

Facebook
Nyomtatás

Stephen Wolfram: An Elementary Introduction to the Wolfram Language

SWolfram

A Wolfram programozási nyelv rövid története

A Wolfram nyelv mindössze néhány éve kapott végleges nevet, noha fejlesztése még az elmúlt évezredben kezdődött el.

A felhasználók a nyelvvel először a Mathematica nevű programcsomagban találkozhattak [5]; ma úgy tekintünk e szoftverrendszerre, mint a Wolfram nyelv első fő implementációjára. E sorok írása előtt 28 évvel (és 2 nappal) jelent meg a Mathematica legelső változata, most hamarosan a 11-es változatnál járunk. A Mathematica felhasználói tábora jelenleg néhány milliósra tehető.

A Wolfram nyelv történetében a következő mérföldkövet a Wolfram|Alpha keresőszolgáltatás 2009-es beindítása jelentette [6]. A Wolfram|Alpha abban tér el a hagyományos internetes keresőktől, hogy folyamatosan karbantartott és frissített tudásbázisa segítségével olyan kérdések megválaszolására is képes, amelyhez általános értelemben vett számításokra van szükség (angolul ezt computational knowledge engine-nek, vagy answer engine-nek hívják). A Wolfram|Alpha áll például az Apple cég telefonjaiban megtalálható Siri beszédfelismerő szoftver mögött. A Wolfram|Alpha keresőmotorjának több tízmillió soros programkódja nagyrészt Wolfram nyelven íródott. 2009-ben ezt úgy fogalmaztuk meg, hogy a Wolfram|Alpha keresőmotorja a Mathematica rendszerre épül. Az elkövetkezendő hónapokban aztán fokozatosan lehetővé vált, hogy az internetkapcsolattal rendelkező felhasználó számítógépén futtatott Mathematica kód egyszerű kérdéseket intézhessen a Wolfram|Alpha tudásbázisához. Ma már e két óriási rendszer szimbiózisa elválaszthatatlan: a Wolfram|Alpha a keresésekhez a Mathematica számára kifejlesztett algoritmusokat (is) használja, míg a Mathematica működése közben szinte észrevétlenül merít a Wolfram|Alpha tudásanyagából. Ebből következik a Wolfram nyelv egyik kulcsfontosságú tulajdonsága: a Wolfram nyelv tudásalapú nyelv (knowledge-based language).

A nyelv elterjedését nagyban segíti a http://demonstrations.wolfram.com/ [7] weboldalon programkóddal együtt szabadon elérhető mintegy tízezer, Wolfram nyelven megírt példaprogram és interaktív alkalmazás, amelyek valamely tudományterületről (beleértve a művészeteket is) mutatnak be egy-egy érdekes modellt. Pozitív elbírálás esetén a weboldalon mi magunk is közzétehetjük igényesen megírt kódunkat.

A Wolfram nyelvvel a felhőben [8] is találkozhatunk. A 2016 januárja óta működő Wolfram Programming Lab oldalon [4] például ki-ki maga is megkezdheti a nyelvvel való ismerkedést: a böngészőnkből közvetlenül (és előfizetés nélkül) futtathatunk Wolfram nyelvű kódokat.

Ami a hardvert illeti, a Raspberry Pi − pár tízezer forintért kapható − miniszámítógépen alapértelmezésben elérhető a Wolfram nyelv. A Wolfram nyelvet egyébként folyamatosan készítik fel a Dolgok Internetével (Internet of Things, IoT) való „találkozásra”: a [9] adatbázisban gyűjtik össze azokat a készülékeket és eszközöket, amelyek az internetre kapcsolódva valamilyen adatot továbbítanak a felhőbe, és ezeket az adatokat a Wolfram nyelvvel feldolgozhatjuk. A Wolfram nyelv tehát a Dolgok Internetének egyik általános leíró nyelve lehet.

A Wolfram nyelv az elmúlt csaknem három évtizedben stabilnak és időtállónak bizonyult. A Mathematica korábbi változataiban íródott programok (az esetek legnagyobb részében) gond nélkül lefutnak az újabb Mathematica-változatok alatt is. Az idők során ugyanakkor a Wolfram nyelv képességei rohamosan bővültek. A nyelv jelenleg mintegy 5000 parancsot tartalmaz. Stephen Wolfram szerint saját maga is sokszor meglepődik a nyelv kifejezőerején: korábban elérhetetlennek tűnő dolgokat tudnak most sikerrel megvalósítani (gondoljunk például a Wolfram|Alpha-hoz kifejlesztett természetes nyelvi feldolgozás roppant bonyolult kérdéskörére).

A Wolfram nyelv legfontosabb tulajdonságainak összefoglalásaként elmondható, hogy a nyelv

  • kis számú, jól megválasztott és egyszerű alapelvre épül;
  • sokféle programozási stílust ötvöz (pl. procedurális, funkcionális, objektumorientált, szabályalapú);
  • tudásalapú: (i) a nyelvben közvetlenül használható a Mathematica és a Wolfram|Alpha számára három évtized során kifejlesztett algoritmusok óriási gyűjteménye, valamint (ii) a nyelvben közvetlenül elérhető rengeteg, a valós világra vonatkozó aktuális információ (pl. fizikai-, kémiai-, földrajzi-, csillagászati- vagy tőzsdei adatbázisok);
  • mindent szimbolikus kifejezésként reprezentál. A szimbolikus jelleg folytán egy f[x_]:= kezdetű függ­vény­de­fi­ní­ci­ó­ban az x szimbólum jelenthet például egy lebegőpontos számot, egy komplex számot, egy integrált, egy gráfot, egy dokumentumot, egy internetről letöltött ábrát, egy programot, vagy akármit.

A Wolfram nyelv teljes dokumentációja [10] jelenleg nagyságrendileg 50 000 nyomtatott oldalon férne el (és akkor még nem is említettük a Mathematica szoftver alkalmazásairól szóló sok tucat komoly könyvet). A Wolfram nyelv meg­al­ko­tó­ja ezért szükségét látta annak, hogy egy rövid, bevezető jellegű könyvet adjon a nyelv iránt érdeklődők kezébe.

A könyv felépítése

home

Stephen Wolfram: An Elementary Introduction to the Wolfram Language c. könyve 2015. december 8-án jelent meg. E recenzió megírásához a 324 oldalas papíralapú könyv interneten szabadon elérhető angol nyelvű változatát vettük alapul [1].

  • A mű 47 rövid, egymásra épülő fejezetből áll. Minden fejezet egy-egy új foga­lom­kör­be vezeti be az olvasót. Egy fejezet nem más, mint 10-20 egyszerű, az adott témakörbe illeszkedő példa felsorolása. Minden példa egy 1-2 soros angol nyelvű leírással kezdődik, amely után egy Wolfram nyelven megfogalmazott − egysorosnál ritkán hosszabb − lehetséges megoldás található. Az adott példát az inputhoz tartozó output megjelenítése zárja. A kidolgozott példák után minden fejezetben egy-két tucat feladat szerepel. Általában minden feladatra számos, egyenértékű megoldás adható Wolfram nyelven. Az illető fejezet végén néhány kitekintő megjegyzés, valamint a részletesebb dokumentációra való hivatkozás áll.

A könyv legvégén az előző 47 fejezetben felsorolt összes feladat megoldása megtalálható – a közölt megoldások döntő többségükben egysorosak, ezzel is kidomborítva a Wolfram nyelv kifejezőképességét.

Minden fejezet egy kattintással letölthető Mathematica-jegyzetfüzet formájában is − a példákat saját gépünkön interaktívan módosítva, illetve az inputokkal kedvünk szerint kísérletezve a nyelvtanulás hatékonyságát sokszorosára növelhetjük.

Kedvcsinálóul álljon itt a könyvben érintett témakörök felsorolása (zárójelben néha egy-egy önkényesen kiragadott példával).

  • Elemi aritmetika (pl. mi történik nullával osztás után).
  • Kifejezések és függvények (pl. véletlenszámok generálása).
  • Listák és megjelenítésük (pl. grafikonok, oszlop- és tortadiagramok).
  • Listaműveletek és listák létrehozása (pl. összesen hány nulla található egy szám 10-es számrendszerbeli alak­já­ban).
  • Színek és szövegstílusok (pl. egy száztagú, véletlen színekből álló lista létrehozása).
  • Alapvető grafikai elemek (pl. egy sárgára festett gömb megjelenítése).
  • Dolgok interaktív manipulálása (pl. csúszkák segítségével változtatható színű és oldalszámú sokszögek ki­raj­zo­lá­sa).
  • Képek és elemi képszerkesztési eljárások (pl. éldetektálás).
  • Karakterek és sztringek (pl. egy mondat szavai hosszának oszlopdiagramos ábrázolása).
  • Zenei hangok és akkordok.
  • Tömbök és mátrixok (pl. mátrixműveletek karakterek pixeles képével).
  • Síkbeli és térbeli koordináták (pl. egymást metsző testek kirajzolása).
  • Kapcsolat a Wolfram|Alpha-val (pl. a koffeinmolekula térbeli és forgatható szerkezetének megjelenítése).
  • Mértékegységek és átváltások (ízelítő a nyelv által kezelt mintegy 10 ezer mértékegységből).
  • Földrajzi, illetve a szomszédos égitestekre vonatkozó koordináták és térképek (pl. a Rómához 25 legközelebbi vulkán megjelenítése).
  • Mennyiségek térben és időben (pl. a Los Angelesben és New Yorkban jelenleg mérhető hőmérséklet kü­lönb­sé­gé­nek kiszámolása).
  • Gráfok és hálózatok (pl. a Facebook-on található ismerőseink hálózatának megjelenítése).
  • Gépi tanulás (szöveg- vagy képfelismerés).

Tetszőleges pontosságú aritmetika. Különféle függvénymegadási módok. Tiszta függvények. Rekurziók és iterációk. Feltételes utasítások. Mintaillesztés. Kifejezések szimbolikus reprezentációja a nyelvben. Asszociációk. Természetes nyelvi feldolgozás. Saját kód elhelyezése a felhőben, majd a futtatása a böngészőnkben. Globális és lokális változók. Azonnali és késleltetett értékadások. Különféle függvénydefiníciók. A mintaillesztésről bővebben. Mintaillesztés sztringekkel. Adatok be- és kivitele. Kapcsolat különféle adatbázisokkal. Kódunk hatékonyságának növelése, hibakeresés a kódban, illetve hogyan tegyük “szebbé” a kódot.

A Wolfram nyelvről korábban már megjelent egy csupán 30 oldalas bevezető [3], azonban az az írás olyanoknak szól, akik már járatosak valamely más programozási nyelvben. Wolfram mostani könyve nem épít előzetes programozási ismeretekre. A tárgyalás a matematikai alapműveletektől indul, ám a könyv olvasása során meglehetősen komoly fogalmakig is eljutunk. Wolfram a könyvét, illetve a nyelvet egyaránt ajánlja felnőtteknek és 12 éves kortól gyerekeknek [2], kifejezetten akár első programozási nyelvként. Wolfram könyvének magyar fordítását tehát a hazai közönség is haszonnal forgathatná – legyen szó tapasztalt programozókról vagy a programozás alapjaival most ismerkedőkről.

Lóczi Lajos

Hivatkozások

[1] https://www.wolfram.com/language/elementary-introduction/

[2] http://blog.stephenwolfram.com/2015/12/i-wrote-a-book-to-teach-the-wolfram-language/

[3] https://www.wolfram.com/language/fast-introduction-for-programmers/

[4] https://www.wolfram.com/programming-lab/

[5] https://www.wolfram.com/mathematica/

[6] http://www.wolframalpha.com/

[7] http://demonstrations.wolfram.com/

[8] https://www.wolframcloud.com/

[9] http://devices.wolfram.com/

[10] http://reference.wolfram.com/language/

A rovat ajánlott cikkei
Talán még nem hallottak arról, hogyan tette Hilbert valóban axiomatikussá az euklideszi geometriát, és hogyan akarta logikailag megalapozni az egész matematikát. És arról, hogy az általános relativitáselmélettől kezdve a kvantummechanika születéséig szinte mindenütt ott volt, – beleértve a számítástudományt is – ahol a jövő született.
A jövővel kapcsolatos lehetőségek elképzelése és a valószínűségük megbecslése kulcsfontosságú mindennapi életünk megszervezéséhez, illetve hosszabb távú céljaink eléréséhez. Keszthelyi Gabriella idén megjelent könyve azt mutatja be, milyen gondolkodási lépéseket végzünk ilyenkor, hogy mindennek mi a matematikai és tudománytörténeti háttere, illetve mik azok az esetek, amikor az intuíciónk nem vezet helyes eredményre. A könyvet egyaránt ajánljuk középiskolás diákoknak, tanároknak, illetve egyetemi hallgatóknak a témában való elmélyüléshez.
Vegyészekhez beépített kiküldött tu­dó­sí­tónk (korábbi, az ajánlott irodalomban feltüntetett írásai nyomdokain) újfent kincset talált, amit szeretne megosztani olvasóinkkal. A jó szívvel ajánlott könyvecske tulajdonképpen egy mese – gyermekeknek, vagy inkább felnőtt, jelenlegi, jövendő és volt kutatóknak a tudományról.
Nemrég jelent meg A rövidítés tudománya – Hatékony gondolkodás a mate­ma­ti­ká­ban és a mindennapi életünkben című könyv. Alapgondolata, hogy a jól megválasztott rövidítés; jelölés, diagram, eljárás vagy definíció egyszerre gyorsítja fel a gondolkodást és teszi lehetővé az összetett problémák átlátható kezelését. A szerző, Marcus du Sautoy neve Magyar­or­szá­gon is ismert: a Park Kiadónál korábban megjelent tőle A prímszámok zenéje (2014) és A kreativitás kódja (2022) – mindkettő közérthető, tudo­mány­nép­sze­rű­sí­tő stílusban.
Fényes Imre (1917–1977) a magyar fizika egyik legendás alakja, ma is hatással van tanítványaira. Ropolyi László és Szegedi Péter most megjelent válogatása bemutatja 50 évvel ezelőtti termo­di­na­mi­kai és kvantummechanikai eredményeit, köztük kapcsolatát Heisenberg vagy éppen Neumann gondolataival.
Hírlevél feliratkozás