Wolfram Language - Wolfram Language
Paradigma | Multi-paradigma : reescritura de términos , funcional , procedimental , matriz |
---|---|
Diseñada por | Stephen Wolfram |
Desarrollador | Investigación Wolfram |
Apareció por primera vez | 1988 |
Lanzamiento estable | 12.2 / 16 de diciembre de 2020
|
Disciplina de mecanografía | Dinámico , fuerte |
SO | Multiplataforma |
Licencia | Propiedad |
Extensiones de nombre de archivo | .nb, .m, .wl |
Sitio web | www |
Implementaciones importantes | |
Mathematica , Wolfram | One , Matemáticas , Expreduce , MockMMA , WolframAlpha | |
Influenciado por | |
Influenciado | |
El lenguaje Wolfram ( / w ʊ l f r əm / Wuul -frəm ) es un general lenguaje de programación multi-paradigma desarrollado por Wolfram Research . Enfatiza el cálculo simbólico , la programación funcional y la programación basada en reglas y puede emplear estructuras y datos arbitrarios . Es el lenguaje de programación del programa de cálculo simbólico matemático Mathematica .
Historia
Wolfram Language fue parte de la versión inicial de Mathematica en 1988.
Los aspectos simbólicos del motor lo convierten en un sistema de álgebra informática. El lenguaje puede realizar integración, diferenciación, manipulaciones de matrices y resolver ecuaciones diferenciales usando un conjunto de reglas. También en 1988 fue el modelo de portátil y la capacidad de incrustar sonido e imágenes, según la patente de Theodore Gray .
En 2009 se lanzó una interfaz en línea para el idioma, WolframAlpha . Wolfram implementó este sitio web traduciendo declaraciones en lenguaje natural en consultas en lenguaje Wolfram que se vinculan a su base de datos. El trabajo que condujo a Wolfram Alpha también significa que la implementación de Wolfram del lenguaje ahora tiene acceso integrado a una base de conocimientos, así como a funciones de procesamiento de lenguaje natural.
Wolfram también agregó funciones para tareas más complejas, como el modelado 3D.
Finalmente se adoptó un nombre para el lenguaje en 2013, cuando Wolfram Research decidió hacer una versión del motor de lenguaje gratuita para los usuarios de Raspberry Pi , y necesitaban encontrar un nombre para él. Se incluyó en el paquete de software recomendado que la Fundación Raspberry Pi proporciona para principiantes, lo que causó cierta controversia debido a la naturaleza propietaria del lenguaje Wolfram . Los planes para trasladar el lenguaje Wolfram a Intel Edison se anunciaron después de la presentación de la placa en CES 2014, pero nunca se lanzaron. En 2019, se agregó un enlace para hacer que las bibliotecas de Wolfram sean compatibles con el motor de juego de Unity , lo que brinda a los desarrolladores de juegos acceso a las funciones de alto nivel del lenguaje.
Sintaxis
La sintaxis de Wolfram Language es en general similar a la expresión M del LISP de la década de 1960 , con soporte para operadores infijos y llamadas a funciones de "notación de función".
Lo esencial
El lenguaje Wolfram escribe expresiones aritméticas básicas usando operadores infijos .
(* 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 *)
Las llamadas a funciones se indican con corchetes:
Sin[Pi]
(* = 0 *)
(* This is the function to convert rationals to floating point: *)
N[3 / 2]
(* = 1.5 *)
Las listas se incluyen entre corchetes:
Oddlist={1,3,5}
(* = {1,3,5} *)
Azúcar de sintaxis
El lenguaje puede desviarse del paradigma de la expresión M cuando se dispone de una forma alternativa y más amigable para los humanos de mostrar una expresión:
- En este lenguaje se utilizan varias reglas de formato, incluidas las
TeXForm
expresiones tipográficas y laInputForm
entrada de lenguaje. - Las funciones también se pueden aplicar usando la expresión de prefijo
@
y la expresión de sufijo//
. - Las derivadas se pueden denotar con un apóstrofe
'
. - Los propios operadores infijos se consideran "azúcar" para el sistema de notación de funciones .
Un FullForm
formateador desazúcar la entrada:
FullForm[1+2]
(* = Plus[1, 2] *)
Programación funcional
Se admite el curry .
La coincidencia de patrones
Las funciones en Wolfram Language son básicamente un caso de patrones simples para reemplazo:
F[x_] := x ^ 0
El :=
es un "operador SetDelayed", por lo que la x no se busca inmediatamente. x_
es azúcar de sintaxis para Pattern[x, Blank[]]
, es decir, un "espacio en blanco" para cualquier valor para reemplazar x en el resto de la evaluación.
Una iteración de clasificación de burbujas se expresa como:
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]] *)
El /;
operador es "condición", por lo que la regla solo se aplica cuando y>z
. Los tres guiones bajos son una sintaxis para a BlankNullSequence[]
, para una secuencia que puede ser nula.
Se //.
puede usar un operador ReplaceRepeated para aplicar esta regla repetidamente, hasta que no ocurran más cambios:
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *)
(* = {1, 2, 3, 4, 5, 9} *)
El sistema de coincidencia de patrones también da lugar fácilmente a la integración y derivación basadas en reglas. Los siguientes son extractos del paquete de reglas de Rubi:
(* 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]
Implementaciones
La implementación oficial y de referencia de Wolfram Language se encuentra en Mathematica y los servicios en línea asociados. Estos son de código cerrado. Wolfram Research, sin embargo, ha lanzado un analizador sintáctico C ++ del lenguaje bajo la licencia MIT de código abierto . El libro de referencia es de acceso abierto .
En la existencia de más de tres décadas del lenguaje Wolfram, también se han desarrollado varias implementaciones de terceros de código abierto . MockMMA de Richard Fateman de 1991 es de una nota histórica, tanto por ser la reimplementación más temprana como por haber recibido un cese y desistimiento de Wolfram. Los modernos que aún se mantienen a partir de abril de 2020 incluyen Symja en Java , expreduce en Golang y Mathics basados en SymPy . Estas implementaciones se enfocan en el lenguaje central y el sistema de álgebra computacional que implica, no en las características de la "base de conocimiento" en línea de Wolfram.
En 2019, Wolfram Research lanzó un software gratuito Wolfram Engine, que se utilizará como biblioteca de programación en software no comercial.
Nombrar
El lenguaje fue nombrado oficialmente en junio de 2013 aunque, como backend del sistema informático Mathematica , ha estado en uso en varias formas durante más de 30 años desde el lanzamiento inicial de Mathematica.
Ver también
Referencias
enlaces externos
- Documentación para Wolfram Language
- Una introducción elemental a Wolfram Language
- La nube de programación Wolfram
- WolframLanguage.org : una guía de recursos comunitarios sobre Wolfram Language
- Escaparate del "lenguaje Mathematica" , Code Golf StackExchange Community Wiki
- Matemáticas, física y química con Wolfram Language (World Scientific, 2022)