Articulo de referencia

Lenguaje Wolfram

{{cite web |url=https://writings.stephenwolfram.com/2026/06/launching-version-15-of-wolfram-language-mathematica-built-in-useful-ai-lots-of-new-core-functionality/|title=Launchi...

El lenguaje Wolfram ( / ˈ w ʊ l f r əm / WUUL -frəm ) es un lenguaje de programación multiparadigma de alto nivel , propietario [ 7 ] [ 8 ] desarrollado por Wolfram Research . Enfatiza la computación simbólica , la programación funcional y la programación basada en reglas [ 9 ] y puede emplear estructuras y datos arbitrarios. [ 9 ] Es el lenguaje de programación del programa de computación simbólica matemática Mathematica . [ 10 ]

Historia

El lenguaje Wolfram formó parte de la versión inicial de Mathematica en 1988. [ 11 ]

Los aspectos simbólicos del motor lo convierten en un sistema de álgebra computacional . El lenguaje puede realizar integración, diferenciación, manipulación de matrices y resolver ecuaciones diferenciales mediante un conjunto de reglas. Además, la versión inicial introdujo el modelo de cuaderno y la capacidad de incrustar sonido e imágenes, según la patente de Theodore Gray . [ 12 ]

Wolfram también añadió funciones para tareas más complejas, como el modelado 3D. [ 13 ]

Finalmente se adoptó un nombre para el lenguaje en 2013, cuando Wolfram Research decidió ofrecer una versión gratuita del motor de lenguaje para los usuarios de Raspberry Pi , y necesitaban encontrar un nombre para él. [ 14 ] 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 . [ 15 ] Se anunciaron planes para portar el lenguaje Wolfram a Intel Edison después de la presentación de la placa en CES 2014 , pero nunca se publicaron. [ 16 ] En 2019, se agregó un enlace para hacer que las bibliotecas de Wolfram fueran compatibles con el motor de juegos Unity , lo que dio a los desarrolladores de juegos acceso a las funciones de alto nivel del lenguaje. [ 17 ] [ 18 ]

Sintaxis

La sintaxis del lenguaje Wolfram 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 mediante "notación de función".

Lo esencial

Hola Mundo

Para imprimir "Hello, World!" en Wolfram Language se procede de la siguiente manera:

Imprimir [ "¡Hola, mundo!" ]

Aritmética

El lenguaje Wolfram escribe expresiones aritméticas básicas utilizando operadores infijos .

(* Esto es un comentario. *)4 + 3 (* = 7 *)1 + 2 * ( 3 + 4 ) (* = 15 *) (* Tenga en cuenta que la multiplicación se puede omitir: 1 + 2 (3 + 4) *)(* Las divisiones dan como resultado números racionales: *) 6 / 4 (* = 3/2 *)

Las llamadas a funciones se indican con corchetes:

Sen [ Pi ] (* = 0 *)(* Esta es la función para convertir números racionales a números de coma flotante: *) N [ 3 / 2 ] (* = 1.5 *)

Las listas se encierran entre llaves:

Lista impar = { 1 , 3 , 5 } (* = {1,3,5} *)

azúcar sintáctico

El lenguaje puede desviarse del paradigma de la expresión M cuando existe una forma alternativa y más amigable para el ser humano de mostrar una expresión:

  • En este lenguaje se utilizan varias reglas de formato, incluidas TeXFormlas relativas a las expresiones tipográficas y InputForma la entrada de texto.
  • Las funciones también se pueden aplicar utilizando la expresión prefija @y la expresión postfija //.
  • Los derivados se pueden denotar con el apóstrofo '.
  • Los operadores infijos en sí mismos se consideran " azúcar " para el sistema de notación de funciones .

Un FullFormformateador desdulza la entrada: [ 19 ]

FullForm [ 1 + 2 ] (* = Plus[1, 2] *)

Programación funcional

Se admite el curry .

Coincidencia de patrones

En el lenguaje Wolfram, las funciones son, en esencia, un caso de patrones simples para reemplazo:

F [ x_ ] := x ^ 0

El :=es un "operador SetDelayed", de modo que la x no se busca inmediatamente. x_es azúcar sintáctico para Pattern[x, Blank[]], es decir, un "espacio en blanco" para cualquier valor que reemplace a x en el resto de la evaluación.

Una iteración del algoritmo de ordenación de burbuja 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", de modo que la regla solo se aplica cuando y>z. Los tres guiones bajos son una sintaxis para una BlankNullSequence[], para una secuencia que puede ser nula.

//.Se puede utilizar un operador ReplaceRepeated para aplicar esta regla repetidamente, hasta que no se produzcan 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 Rubi: [ 20 ]

(* Regla recíproca *) Int [ 1 / x_ , x_Symbol ] := Log [ x ]; (* Regla de potencia *) Int [ x_ ^ m_ . , x_Symbol ] := x ^ ( m + 1 ) / ( m + 1 ) /; FreeQ [ m , x ] && NeQ [ m , -1 ]

Implementaciones

La implementación oficial y de referencia del lenguaje Wolfram se encuentra en Mathematica y los servicios en línea asociados. Estos son de código cerrado. [ 21 ] Sin embargo, Wolfram Research ha publicado un analizador sintáctico del lenguaje bajo la licencia MIT de código abierto . [ 22 ] El analizador sintáctico se desarrolló originalmente en C++ , pero se reescribió en Rust en 2023. El libro de referencia es de acceso abierto . [ 23 ]

En los más de treinta años de existencia del lenguaje Wolfram, también se han desarrollado varias implementaciones de código abierto por terceros. MockMMA, de Richard Fateman, de 1991, es históricamente relevante, tanto por ser la primera reimplementación como por haber recibido una orden de cese y desistimiento de Wolfram. Las implementaciones modernas aún se mantienen a fecha de abril de 2020. incluyen Symja en Java , expreduce en Golang y Mathics basado en SymPy . [ 24 ] Estas implementaciones se centran 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, [ 25 ] Wolfram Research lanzó el software gratuito Wolfram Engine, para ser utilizado como biblioteca de programación en software no comercial. Este motor, exclusivo para desarrolladores, proporciona una consola de línea de comandos del evaluador de Mathematica (con un número limitado de kernels) y requiere registro y activación de licencia a través de la web. El proyecto Jupyter Notebook/Lab, disponible gratuitamente, proporciona un protocolo (ZMQ) para conectar sus notebooks a varios lenguajes; esto está disponible como alternativa a la interfaz CLI de solo texto a través del Wolfram Kernel para Jupyter . [ 26 ]

Nomenclatura

El lenguaje fue nombrado oficialmente en junio de 2013 y se ha utilizado como base de Mathematica y otras tecnologías de Wolfram durante más de 30 años. [ 27 ] [ 28 ]

Véase también

Referencias

  1. "Lanzamiento de la versión 15 de Wolfram Language y Mathematica: IA integrada (útil) y muchas nuevas funcionalidades principales" . Escritos de Stephen Wolfram . 16 de junio de 2026. Consultado el 16 de junio de 2026 .
  2. Wolfram, Stephen. "Tini Veltman (1931–2021): Del lenguaje ensamblador al Premio Nobel: Escritos de Stephen Wolfram" . stephenwolfram.comwritings . Consultado el 22 de enero de 2021 .
  3. Maeder, Roman E. (1994). The Mathematica® Programmer . Academic Press, Inc. pág. 6. ISBN  978-1-48321-415-3.
  4. "Preguntas y respuestas sobre el lenguaje Wolfram" . Wolfram Research . Consultado el 5 de diciembre de 2016 .
  5. Somers, James. "El artículo científico está obsoleto" . The Atlantic . Consultado el 10 de abril de 2018 .
  6. Hickey, Rich. "Clojure Bookshelf" . Amazon.com . Archivado del original el 3 de octubre de 2017. Consultado el 6 de mayo de 2020 .
  7. "Wolfram Código abierto, fuente abierta, datos abiertos, recursos abiertos" . www.wolfram.com . Consultado el 3 de febrero de 2023 .
  8. "Notas para expertos en lenguajes de programación sobre Wolfram Language" . Wolfram.com . Consultado el 5 de noviembre de 2015 .
  9. 1 2 "¿Cómo deberíamos llamar al lenguaje de Mathematica?—Blog de Stephen Wolfram" . Blog.stephenwolfram.com. 12 de febrero de 2013. Consultado el 5 de noviembre de 2015 .
  10. "Celebrando el primer cuarto de siglo de Mathematica: Blog de Wolfram" . Blog.wolfram.com. 23 de junio de 2013. Consultado el 5 de noviembre de 2015 .
  11. Wolfram (1988). Mathematica, un sistema para hacer matemáticas por computadora.
  12. Hayes, Brian (1990-01-01). "Reflexiones sobre Mathematica" (PDF) . Pixel . Archivado del original (PDF) el 15-07-2014 . Consultado el 14-04-2020 .
  13. "Centro de documentación del lenguaje y del sistema Wolfram" . Reference.wolfram.com . Consultado el 5 de noviembre de 2015 .
  14. "Instalando el lenguaje Wolfram (y Mathematica) en todas las Raspberry Pi: Blog de Wolfram" . Blog.wolfram.com. 21 de noviembre de 2013. Consultado el 5 de noviembre de 2015 .
  15. Sherr, Ian (22 de noviembre de 2013). "Software premium de Mathematica gratis en Raspberry Pi de bajo costo - CNET" . News.cnet.com . Recuperado el 5 de noviembre de 2015 .
  16. Daniel AJ Sokolov (22 de noviembre de 2014). "Intels Edison: sistema Pentium en formato de tarjeta SD | aquí en línea" . Heise.de . Consultado el 5 de noviembre de 2015 .
  17. "El lenguaje Wolfram pronto se integrará en Unity" . Gamasutra. 10 de marzo de 2014. Consultado el 5 de noviembre de 2015 .
  18. "¿Hay alguna forma de usar Wolfram Language en Unity3D?" . Wolfram. 2017. Archivado del original el 19 de julio de 2017. Consultado el 11 de abril de 2017 .
  19. "Forma completa" . Documentación del lenguaje Wolfram .
  20. "Bienvenido a Rubi, el integrador basado en reglas" . Integración basada en reglas .
  21. McLoone, J (2 de abril de 2019). "Por qué Wolfram Tech no es de código abierto: una docena de razones: Blog de Wolfram" .
  22. "codeparser: Analiza el código fuente del lenguaje Wolfram como árboles de sintaxis abstracta (AST) o árboles de sintaxis concreta (CST)" . GitHub . Wolfram Research, Inc.
  23. " Materiales abiertos de Wolfram: código abierto, código fuente abierto, datos abiertos, recursos abiertos" . www.wolfram.com
  24. Simon. "¿Existe una implementación de código abierto del lenguaje Mathematica?" . Mathematica Stack Exchange .
  25. Wolfram, Steven (21 de mayo de 2019). "Lanzamiento hoy: Wolfram Engine gratuito para desarrolladores: escritos de Stephen Wolfram" .
  26. "Wolfram Engine gratuito para desarrolladores" . www.wolfram.com . Consultado el 19 de enero de 2021 .
  27. Kastrenakes, Jacob (14 de noviembre de 2013). "Wolfram anuncia su proyecto 'más importante': un lenguaje de programación que modela el mundo" . The Verge . Consultado el 21 de septiembre de 2023 .
  28. "Se avecina algo muy grande: nuestro proyecto tecnológico más importante hasta la fecha — Escritos de Stephen Wolfram" . writings.stephenwolfram.com . 13 de noviembre de 2013. Consultado el 21 de septiembre de 2023 .
  • Sitio web oficialEdita esto en Wikidata
  • Documentación para el lenguaje Wolfram
  • Introducción elemental al lenguaje Wolfram
Obtenido de " https://en.wikipedia.org/w/index.php?title=Wolfram_Language&oldid=1359708239 "