Mathematica: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: rimozione del template {{TOClimit|2}} e modifiche minori
Riga 22:
}}
'''Mathematica''' è un ambiente di calcolo simbolico e numerico multipiattaforma, ideato da [[Stephen Wolfram]] e successivamente sviluppato da un team di matematici e programmatori. Mathematica usa un potente [[linguaggio di programmazione]] interpretato, chiamato [[linguaggio Wolfram]].
{{TOClimit|2}}
 
== Introduzione ==
Line 89 ⟶ 88:
== Il paradigma unico di Mathematica ==
=== Rappresentazione interna delle espressioni ===
La struttura dati fondamentale di Mathematica è l'''espressione''. Ogni singolo elemento del linguaggio, dai tipi di dato alla struttura stessa dei ''notebook'', è un'espressione costituita da un'intestazione (''Head'') e da una sequenza di argomenti racchiusi tra parentesi quadre e separati da virgole. Ad esempio, la scrittura 1+1 viene vista dal kernel come l'espressione
 
Plus[1,1]
Line 193 ⟶ 192:
(x+1)(x+1) == (x+1)<sup>2</sup>
 
che non vengono automaticamente elaborate da Mathematica in assenza di comandi specifici. Un ipotetico codice utente deputato a estrarre informazioni dal polinomio (come il coefficiente di x) deve occuparsi di ridurre le diverse rappresentazioni alla medesima forma normale, ad esempio forzandone l'espansione ed eventualmente semplificando ulteriormente il risultato. Una volta raggiunta la forma normale sarà possibile applicare le regole per l'estrazione delle informazioni ed ottenere risultati consistenti indipendentemente dalla sintassi usata per passare l'input.
 
==== Meccanismi di controllo della valutazione ====
Mathematica offre diversi meccanismi che permettono al programmatore di condizionare il modo in cui un'espressione viene valutata. I principali sono gli attributi associati alle funzioni e i costrutti del tipo '''Hold''' ed '''Evaluate'''.
 
=== Manipolazione delle espressioni ===
Line 282 ⟶ 281:
 
== Interfacciamento con altre applicazioni ==
La comunicazione con altre applicazioni avviene attraverso il protocollo ''MathLink''. Esso permette non solo la comunicazione tra il kernel ed i front-end, ma fornisce anche un'interfaccia generale tra il kernel ed una applicazione arbitraria. Wolfram Research distribuisce gratuitamente un kit di sviluppo per collegare applicazioni scritte in C al kernel di Mathematica attraverso ''MathLink''. Altri due componenti di Mathematica, attraverso ''MathLink'', permettono agli sviluppatori di collegare il kernel ad un programma in [[Java (linguaggio di programmazione)|Java]] o un programma .NET: ''J/Link'' e ''.NET/Link''.
 
''J/Link'' permette di interfacciare codice Java e programmi in linguaggio Mathematica. Da un lato i programmi Java di utilizzare i comandi di Mathematica per eseguire calcoli; dall'altro viene concesso a Mathematica di caricare [[Classe (informatica)|classi]] Java, manipolare oggetti Java ed eseguire chiamate a metodi rendendo possibile, ad esempio, la costruzione di un'[[interfaccia grafica]] per un'esecuzione interattiva del codice Mathematica.
Line 328 ⟶ 327:
Sulla [http://oeis.org/ Online Encyclopedia of Integer Sequences], Mathematica e Maple sono i due Computer Algebra System più usati per i quali sono forniti comandi per calcolare sequenze.
 
[http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/ LiveGraphics3D] è un'applet scritta in Java 1.1 che permette di inserire grafici interattivi all'interno di una pagina Web. I grafici, rappresentati con la sintassi di Mathematica, sono interpretati dall'applet Java e visualizzati in una finestra interattiva sulla pagina Web. L'utente può così ruotare a piacere le figure nello spazio 3D, attivare o fermare animazioni, e addirittura modificare determinati parametri della rappresentazione, spostando elementi predefiniti. L'applet non richiede la presenza di Mathematica sul sistema che produce o legge le pagine e può essere utilizzata gratuitamente per scopi personali (l'uso commerciale richiede invece una licenza da parte di Wolfram Research Inc.).
 
== Versioni ==