Date post: | 02-Jun-2018 |
Category: |
Documents |
Upload: | kshitij-gupta |
View: | 227 times |
Download: | 0 times |
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 1/17
1
1. INTRODUCTION
Designed for the new generation of programmers, the Wolfram Language has a vast depth of built-in algorithms and knowledge, all automatically accessible through its elegant unified
symbolic language. Scalable for programs from tiny to huge, with immediate deployment
locally and in the cloud, the Wolfram Language builds on clear principles — and 25+ years of
development — to create what promises to be the world's most productive programming
language.
From its earliest stages, the Wolfram Language was conceived as a general language for
computation — based on foundational ideas about symbolic systems. The concepts of the
Wolfram Language were first applied to the highly demanding area of mathematical
computation in Mathematica — with outstanding success over the course of more than 25
years. In its precursors in Mathematica, the Wolfram Language has had millions of users for
25+ years — including many of the world's top researchers, and countless students and others.
Wolfram|Alpha made vast real-world knowledge computable — so it could be integrated into
the Wolfram Language to make the language talk not just about formal constructs, but also
about the real world. The Wolfram Language is clean enough to have been able to maintain
compatibility all the way back to its earliest origins in Mathematica 1.0 from 1988.
From its earliest origins, the Wolfram Language was built to follow principles, without
compromising for the hardware limitations of the day (everything symbolic, infinite precision, etc.). Data structures, code fragments, graphics, documents, interfaces... Over the
25 years it was being incubated, the Wolfram Language discovered more and more ways to
apply symbolic programming. Billions of lines of what's now Wolfram Language code are
inside software systems around the world — with tens of millions inside Wolfram|Alpha and
the Wolfram Language itself.
The Wolfram Language has originated many new programming ideas — some of which have
influenced languages developed over the past 25 years, but many of which remain only in the
Wolfram Language.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 2/17
2
2. MOTIVATION
Computational knowledge. Symbolic programming. Algorithm automation. Dynamic
interactivity. Natural language. Computable documents. The cloud. Connected devices. Symbolic
ontology. Algorithm discovery. These are all things people have been energetically working on
separately, nobody figured out how to take all these threads, and all the technology we’ve built, to
create something at a whole different level.
With the aim creating a vast unified web of technology that builds on what we‘ve created
over the past quarter century, an intellectual structure that actualizes a new computationalview of the world the Wolfram Language was born. At some level it‘s a practical system and
framework that‘s going to be a fount of incredibly useful new services and products.
We call it the Wolfram Language because it is a language. But it‘s a new and different kindof language. It‘s a general-purpose knowledge-based language. That covers all forms ofcomputing, in a new way.
There are plenty of existing general-purpose computer languages. But their vision is verydifferent — and in a sense much more modest — than the Wolfram Language. They concentrateon managing the structure of programs, keeping the language itself small in scope, andrelying on a web of external libraries for additional functionality. In the Wolfram Languagemy concept from the very beginning has been to create a single tightly integrated system inwhich as much as possible is included right in the language itself.
And so in the Wolfram Language, built right into the language, are capabilities for laying outgraphs or doing image processing or creating user interfaces or whatever. Inside there‘s a
giant web of algorithms — by far the largest ever assembled, and many invented by us. Andthere are then thousands of carefully designed functions set up to use these algorithms to
perform operations as automatically as possible.
Also integrated right into the language all the knowledge and data and algorithms that are built into Wolfram|Alpha. So in a sense inside the Wolfram Language we have a wholecomputable model of the world. And it becomes trivial to write a program that makes use ofthe latest stock price, computes the next high tide, generates a street map, shows an image of
a type of airplane, or a zillion other things.
We also get the free-form natural language of Wolfram|Alpha. So when we want to specify adate, or a place, or a song, we can do it just using natural language. And we can even start to
build up programs with nothing more than natural language.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 3/17
3
3. BACKGROUND WORKS
In a first approximation, the Wolfram Language = Mathematica + Wolfram|Alpha + Cloud +more
3.1. Mathematica :
Features of Mathematica include:
Automatic translation of English sentences into Mathematica code
Elementary mathematical function library
Special mathematical function library
Matrix and data manipulation tools including support for sparse arrays
Support for complex number, arbitrary precision, interval arithmetic and symbolic
computation
2D and 3D data and function visualization and animation tools
Numeric and symbolic tools for discrete and continuous calculus
Multivariate statistics libraries including fitting, hypothesis testing, and probability and
expectation calculations on over 140 distributions.
Support for censored data temporal data and unit based data
Calculations and simulations on random processes and queues
Constrained and unconstrained local and global optimization
Programming language supporting procedural, functional and object oriented constructs
Toolkit for adding user interfaces to calculations and applications
Tools for 2D and 3D image processing and morphological image
processing including image recognition
Tools for visualizing and analysing graphs
Tools for combinatoric problems
Tools for text mining including regular expressions and semantic analysis
Data mining tools such as cluster analysis, sequence alignment and pattern matching
Number theory function library
Tools for financial calculations including bonds, annuities, derivatives, options etc.
Group theory and symbolic tensor functions
Libraries for signal processing including wavelet analysis on sounds, images and data
Control systems libraries
Continuous and discrete integral transforms
Import and export filters for data, images, video, sound, CAD, GIS, document and
biomedical formats
Database collection for mathematical, scientific, and socio-economic information andaccess to Wolfram|Alpha data and computations.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 4/17
4
3.2. Wolfram|Alpha
Wolfram Alpha (also styled WolframAlpha and Wolfram|Alpha) is a computational
knowledge engine[4] or answer engine developed by Wolfram Research. It is an online service
that answers factual queries directly by computing the answer from externally sourced
"curated data", rather than providing a list of documents or web pages that might contain the
answer as a search engine might.
Users submit queries and computation requests via a text field. Wolfram Alpha then
computes answers and relevant visualizations from a knowledge base of curated, structured
data that come from other sites. The curated data makes Alpha different from semantic
search engines, which index a large number of answers and then try to match the question to
one.
Using the Mathematica toolkit, Wolfram Alpha can respond to natural language
questions and generate a human-readable answer. Founder Stephen Wolfram has said of the
engine:
"All one needs to be able to do is to take questions people ask in natural language, and
represent them in a precise form that fits into the computations one can do,"[9]
Wolfram Alpha can only provide robust query results based on computational facts, not
queries on the social sciences, cultural studies or even many questions about history where
responses require more subtlety and complexity. It is able to respond to particularly-phrased
natural-language fact-based questions such as "Where was Mary Robinson born?" or more
complex questions such as "How old was Queen Elizabeth II in 1974?" It displays its "Inputinterpretation" of such a question, using standardized phrases such as "age | of Queen
Elizabeth II (royalty) | in 1974", the answer of which is "Age at start of 1974: 47 years", and
a biography link. Wolfram Alpha does not answer queries which require a narrative response
such as "What is the difference between the Julian and the Gregorian calendars?" but will
answer factual or computational questions such as "June 1 in Julian calendar".
Mathematical symbolism can be parsed by the engine, which typically responds with more
than the numerical results. For example, "lim(x->0) (sin x)/x" yields the correct limiting
value of 1, as well as a plot, up to 235 terms (as of 2013) of the Taylor series, and (for
registered users) a possible derivation using L'Hôpital's rule. It is also able to perform
calculations on data using more than one source. For example, "What is the fifty-second
smallest country by GDP per capita?" yields Nicaragua, $1160 per year.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 5/17
5
Fig. 1 Processing of a Natural Language Query by Wolfram|Alpha
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 6/17
6
4. PRINCIPLES AND CONCEPTS
1. Knowledge Based Programming
Unlike other languages, the philosophy of the wolfram language is to build as much
knowledge — about algorithms and about the world — into the language as possible.
2. Meta Algorithms and SuperfunctionsThe philosophy is to automate as much as possible, so programmers can concentrate
on defining what they want to do, and the language will automatically figure out how.
3. Maximise the Coherence of DesignThrough strong focus on core design principles across a vast span of functionality,
maintain a unified and elegant structure where everything fits together.
4. Represent everything in Symbolic LanguageIt represents everything — data, formulas, code, graphics, interfaces, etc. — as
symbolic expressions, allowing a new level of programming flexibility and power.
5. Have a broad built-in model of the worldThrough its Wolfram|Alpha lineage, it knows how to do not just computations about
abstract data structures, but also ones that directly reference things in the real world.
6.
Deploy the language everywhere: Desktop, Cloud, MobileBuilding on 25+ years of software engineering, any program can immediately be
deployed across the full spectrum of modern production environments.
7. Make computable documents part of the languageBuilt into the Wolfram Language are "notebook" documents that mix executable code
with text, graphics, interfaces, and more.
8.
Conveniently connect to everythingThe Wolfram Language has built-in connectivity to a broad spectrum of languages,
services, programs, formats and devices.
9. Make writing and running programs integratedThe native environment for the Wolfram Language is completely interactive and lets
you instantly run any piece of code.
10. Make programs of any size convenient
The Wolfram Language scales from one-line programs to multi-million-line programs, and from single users to large-scale public deployments.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 7/17
7
5. Internal Design
5.1. Basic Internal Architecture
numbers sequences of binary digits
strings sequences of character code bytes or byte pairs
symbols pointers to the central table of symbols
general expressions sequences of pointers to the head and elements
When you type input into the Wolfram Language, a data structure is created in thememory of your computer to represent the expression you have entered.
In general, different pieces of your expression will be stored at different places in
memory. Thus, for example, for a list such as the "backbone" of the list will bestored at one place, while each of the actual elements will be stored at a different place.The backbone of the list then consists just of three "pointers" that specify the addresses incomputer memory at which the actual expressions that form the elements of the list are to
be found. These expressions then in turn contain pointers to their sub expressions. Thechain of pointers ends when one reaches an object, such as a number or a string, which isstored directly as a pattern of bits in computer memory.
Crucial to the operation of the Wolfram Language is the notion of symbols such as .
Whenever appears in an expression, the Wolfram Language represents it by a pointer.
But the pointer is always to the same place in computer memory — an entry in a centraltable of all symbols defined in your Wolfram Language session.
This table is a repository of all information about each symbol. It contains a pointer to astring giving the symbol's name, as well as pointers to expressions that give rules forevaluating the symbol.
• Recycle memory as soon as the data in it is no longer referenced.
5.1.1. The basic principle of Wolfram System memory management
Every piece of memory used by the Wolfram System maintains a count of how many pointers currently point to it. When this count drops to zero, the Wolfram System knowsthat the piece of memory is no longer being referenced, and immediately makes the pieceof memory available for something new.
This strategy essentially ensures that no memory is ever wasted, and that any piece ofmemory that the Wolfram System uses is actually storing data that you need to access inyour Wolfram System session.
• Create an expression corresponding to the input you have given.
• Process the expression using all rules known for the objects in it. • Generate output corresponding to the resulting expression.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 8/17
8
5.1.2. The basic actions of the Wolfram Language
At the heart of the Wolfram Language is a conceptually simple procedure known asthe evaluator, which takes every function that appears in an expression and evaluates thatfunction.
When the function is one of the thousand or so that are built into the Wolfram Language,what the evaluator does is to execute directly internal code in the Wolfram Language.This code is set up to perform the operations corresponding to the function, and then to
build a new expression representing the result.
5.2. Algorithms of the Wolfram Language
The built-in functions of the Wolfram Language implement a very large number of
algorithms from computer science and mathematics. Some of these algorithms are fairlyold, but the vast majority had to be created or at least modified specifically for theWolfram Language. Most of the more mathematical algorithms in the Wolfram Languageultimately carry out operations which at least at some time in the past were performed byhand. In almost all cases, however, the algorithms use methods very different from thosecommon in hand calculation.
Symbolic integration provides an example. In hand calculation, symbolic integration istypically done by a large number of tricks involving changes of variables and the like.But in the Wolfram Language symbolic integration is performed by a fairly small numberof very systematic procedures. For indefinite integration, the idea of these procedures is
to find the most general form of the integral, then to differentiate this and try to match upundetermined coefficients.
Often this procedure produces at an intermediate stage immensely complicated algebraicexpressions, and sometimes very sophisticated kinds of mathematical functions. But thegreat advantage of the procedure is that it is completely systematic, and its operationrequires no special cleverness of the kind that only a human could be expected to provide.In having the Wolfram Language do integrals, therefore, one can be confident that it willsystematically get results, but one cannot expect that the way these results are derivedwill have much at all to do with the way they would be derived by hand.
The same is true with most of the mathematical algorithms in the Wolfram Language.One striking feature is that even for operations that are simple to describe, the systematicalgorithms to perform these operations in the Wolfram Language involve fairly advancedmathematical or computational ideas.
Thus, for example, factoring a polynomial in is first done modulo a prime such as 17 byfinding the null space of a matrix obtained by reducing high powers of modulo the
prime and the original polynomial. Then factorization over the integers is achieved by"lifting" modulo successive powers of the prime using a collection of intricate theoremsin algebra and analysis.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 9/17
9
The use of powerful systematic algorithms is important in making the built-in functionsin the Wolfram Language able to handle difficult and general cases. But for easy casesthat may be fairly common in practice it is often possible to use simpler and moreefficient algorithms.
As a result, built-in functions in the Wolfram Language often have large numbers of extra pieces that handle various kinds of special cases. These extra pieces can contributegreatly to the complexity of the internal code, often taking what would otherwise be afive-page algorithm and making it hundreds of pages long.
Most of the algorithms in the Wolfram Language, including all their special cases, wereexplicitly constructed by hand. But some algorithms were instead effectively createdautomatically by computer.
Many of the algorithms used for machine-precision numerical evaluation of mathematicalfunctions are examples. The main parts of such algorithms are formulas which are as
short as possible but which yield the best numerical approximations.
Most such formulas used in the Wolfram Language were actually derived by the WolframLanguage itself. Often many months of computation were required, but the result was ashort formula that can be used to evaluate functions in an optimal way.
5.3. Symbolic Programming and Computation
Symbolic programming is based on the concept of recasting core features of human languageinto a computationally active form.
Our cognitive model of computation is typically a three-stage process:1) describing the computation, 2) executing that description, and 3) outputting the results.
The ―language‖ part of most programming languages begins and ends with stage one.
Linguistic structures are erected to describe the program. But the execution of the program istypically oriented around an entirely different system of types and objects; and likewise, the
program‘s output structure tends to resemble nothing particularly language-like.
Symbolic programming uses linguistic structures as the foundation of all aspects of
computation. From a computation‘s description, to how the computation executes, to howhumans interface with the results, the exact same basic tree structure is used throughout.
This is a powerful unification, making possible many useful computations that in othersystems range from cumbersome to practically impossible. We‘ll see examples along the
way, but let me first describe what these linguistic structures actually are.
5.3.1. Symbols
Symbols are the basic atoms of language and also of symbolic programming. The point of
symbols is to have distinct pieces of notation – be they words or mathematical functions ormusical notes – which are then assigned an interpretation within the overall system.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 10/17
10
In programming, the defining feature of symbols is that they can stand for themselves. This isin contrast to variables, which must stand for some other value or be considered an error. Forinstance, JavaScript cannot perform the operation x + x unless x has a value:
while Wolfram Language has no trouble:
By existing simply as distinct entities, symbols serve as lightweight carriers of meaning.They are inert, but can acquire meaning through combination with other symbols.
Because Wolfram Language manipulates things abstractly, it is able to do more-precisecomputation than some other systems. As the above example makes clear, symbols are onlythe building blocks: the real action is with the arrangements of symbols.
5.3.2. Symbolic Expressions
An English phrase is built of subphrases. A mathematical formula is built of subformulas. A
musical score is built of bars, which contain notes. A web page layout is built fromsublayouts. When humans want to communicate nontrivial structures, they use hierarchicalnesting.
Across different languages and domains, these structures, or trees, take many syntactic forms.However, they can always be reduced to very simple data structures known as symbolicexpressions. Symbolic expressions simply capture the concept of arranging symbols intotrees. Here are a few trees built from the symbol ―e‖:
Like the symbols themselves, trees of symbols may simply exist, without a need tocorrespond to something else:
Symbolic expressions are the fabric from which we construct meaning. Different treestructures correspond to different meanings.
A tree with symbols like Plus and Power may represent an arithmetic expression, while thesymbol SetterBar can be combined with a subtree indicating the current selection and a list of
possible alternatives:
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 11/17
11
Everything in Wolfram Language is ultimately represented using this uniform simplestructure. At the formal level, it ensures a degree of structural compatibility across all parts ofthe far-flung system. It also provides a system for introducing your own lightweight yetsophisticated structures.
Pure functions, for example, in Wolfram Language, can be represented with Function:
MyPureFunction[var_, expr_][arg_] := expr /. var -> arg
Let‘s describe a function that adds 1 to its argument, and attach it to the symbol f. Notice thestructure stays inert, and therefore can be passed around as data:
When brought into contact with an argument, the definition fires.
In symbolic programming, it is commonplace for a programmer to create abstractions that inanother language would have required a modification of the core specification. This is the
beauty of language: that creating new concepts does not require inventing new atomic―types‖ of things– only new arrangements of structure.
5.3.3. Symbolic Computation
The most important and unique aspect of symbolic programming is that these tree structurescan be made computationally active. They don‘t just describe things– they actually execute.
The basic idea is that because meaning is encoded by structure, computation – thetransformation of one meaning into another – corresponds to the transformation of onestructure into another.
For instance, position 1 in the SetterBar expression represents the current selection. Bymodifying the tree at that position, we modify the meaning of the expression as a whole:
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 12/17
12
A computation begins and ends with unique, domain-specific structures. The process ofcomputation, however, is executed using extremely general methods that are exactly the sameacross domains:
So, computation proceeds by very generic tree transformations. Rather conveniently, trees arealso how we specify the computations themselves.
This reduces the process of computation into a linguistic puzzle: using trees to describe howother trees should transform and intersect. Not only does this allow computational primitivesto have an immediate and clear meaning, it also allows the process of language design to
proceed organically as regularities in these tree structures are discovered and abstracted.
5.3.4. Representing and Interacting with Symbols
Symbolic programming‘s comprehensive emphasis on meaning allows a unique perspective
on input, output, and the whole interaction cycle between human and machine computation.
The basic idea is that symbolic expressions are the canonical, abstract containers of meaning.Given a symbolic expression, its meaning can then be embodied in a number of useful ways.
For example, the expression Plus[2,2] is rendered as 2+2. And Graphics[Rectangle[]] rendersas:
And it works similarly for all sorts of domain-specific mathematics notation, documents, andeven sound and music primitives.
On their own, these are useful representations. But the fact that they are still really the sameunderlying expression leads to a powerful consequence: human computation and
programmatic computation become structurally equivalent.
If I interactively create a Disk using a drawing palette:
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 13/17
13
its underlying data structure is the same as it would be if I had typed in the code, or if it had been generated by a program:
Graphics[Disk[{0.49, 0.49}, {0.35, 0.35}],ImageSize -> {36.335, Automatic},PlotRange -> {{0, 1}, {0, 1}}]
Completely different representations – in this case text and graphics – are immediately and
transparently compatible, because in the end they are all just expressions. Here we have some―zero-overhead‖ code to color just the Disks of a graphic:
The equivalence between these representations, and between human and programmaticallygenerated structures, opens the door to exceptionally powerful ways of interacting withcomputation. It is the basis of Wolfram Language‗s dynamic interactivity framework.
The implications, however, go much further than that. Symbolic programming is the firstabstraction that can uniformly span all three stages of computation, from specification toexecution to output, and as a result it can leverage each aspect against the others.
Programs can be created by traditional programming, by the programs themselves, or byinteraction with what is considered output. The process of computation can be equivalently
executed by the user or by the machine. Output is simply exposing a window into a piece of a(possibly running) program.
5.4. Software Engineering of the Wolfram System
The Wolfram System is one of the more complex software systems ever constructed. It is built from several million lines of source code, written in C/C++, Java, and the WolframLanguage.
The C code in the Wolfram System is actually written in a custom extension of C which
supports certain memory management and object-oriented features. The WolframLanguage code is optimized using Share and Dump Save.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 14/17
14
In the Wolfram Language kernel the breakdown of different parts of the code is roughlyas follows: language and system: 30%; numerical computation: 20%; algebraiccomputation: 20%; graphics and kernel output: 30%.
Most of this code is fairly dense and algorithmic: those parts that are in effect simple
procedures or tables use minimal code since they tend to be written at a higher level — often directly in the Wolfram System.
The source code for the kernel, save a fraction of a percent, is identical for all computersystems on which the Wolfram System runs.
For the front end, however, a significant amount of specialized code is needed to supporteach different type of user interface environment. The front end contains about 700,000lines of system-independent C++ source code, of which roughly 200,000 lines areconcerned with expression formatting. Then there are between 50,000 and 100,000 linesof specific code customized for each user interface environment.
The Wolfram System uses a client-server model of computing. The front end and kernelare connected via the Wolfram Symbolic Transfer Protocol (WSTP) — the same system asis used to communicate with other programs. WSTP supports multiple transport layers,including one based upon TCP/IP and one using shared memory.
The front end and kernel are connected via three independent WSTP connections. One isused for user-initiated evaluations. A second is used by the front end to resolve the valuesof Dynamic expressions. The third is used by the kernel to notify the front endof Dynamic objects which should be invalidated.
Within the C code portion of the Wolfram Language kernel, modularity and consistencyare achieved by having different parts communicate primarily by exchanging completeWolfram System expressions.
But it should be noted that even though different parts of the system are quiteindependent at the level of source code, they have many algorithmic interdependencies.Thus, for example, it is common for numerical functions to make extensive use ofalgebraic algorithms, or for graphics code to use fairly advanced mathematical algorithmsembodied in quite different Wolfram System functions.
Since the beginning of its development in 1986, the effort spent directly on creating thesource code for the Wolfram System is about a thousand developer-years. In addition, acomparable or somewhat larger effort has been spent on testing and verification.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 15/17
15
6. WHERE TO USE WOLFRAM LANGUAGE ?
1. Maximum productivity programming
A key idea of the Wolfram Language is to maximize programmer productivity by automatingas much as possible and by building as much as possible directly into the language.
2. Algorithmically Oriented programming
If you're doing algorithmically oriented programming, it simply doesn't make sense to useanything other than the Wolfram Language.
3. Computing with real world data
The Wolfram Language is unique in its integration of real-world constructs and entitiesdirectly into the language. Compute directly with units, geography, dates, images, andthousands of other domains.
4.
Ultra-High-Level Scripting LanguageThe symbolic character of the Wolfram Language makes it ideal for ultra-high-level scriptingof external systems and languages — routinely vastly improving on existing native interfaces.
5. High level Mata ProgrammingThe symbolic character of the Wolfram Language — and its integration of computabledocuments — makes it an ideal choice for metaprogramming and symbolic code manipulation.
6. Self-Documenting Large Scale Development
The Wolfram Language supports multi-million-line software development by large teams,with uniquely modular symbolic interfaces and integrated rich documentation capabilities.
7. Rapid Content Deployment
Through the Wolfram Universal Deployment System, the Wolfram Language provides anunprecedentedly direct path to production-scale deployment on desktop, cloud, mobile andembedded systems.
8. Analytics/Visualization ProgrammingThe Wolfram Language sets the gold standard for analytics and visualization, with anunprecedented level of power and ease of use on the desktop and in the cloud.
9. Programming the Internet Things
With its device framework, ability to handle real-world data, built-in distributed computing,and both cloud and embedded implementations, the Wolfram Language is in a unique positionto support the Internet of Things.
10. Programming Education
The modern knowledge-based character of the Wolfram Language makes it uniquely suitableas a programming language, in which small amounts of code can produce remarkable results.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 16/17
16
7. CONCLUSION
With newest innovation on Symbolic Languages and development of 25+ years, Wolfram
Language stands out by being still compatible with software used in the first release ofMathematica. This certainly states that the ideas behind the language have grown over time
but the foundations was laid on solid grounds which till now are completely valid. The ability
to allow developers to design code with something basic as natural language and yet allow
them access to the vast resource of data and algorithms put together piece-by-piece makes for
a very easy access to computing. This is exemplified by the fact that the Wolfram Language
is being provided free of cost with the RaspberryPi and Intel Edison for educational purposes.
Besides, the low access barrier the vast set of algorithms allow for quick prototyping of
products which means one can approximate the working idea in minutes and then tweak the
parameters to the specific challenges. Thus speeding up development in the early iterations
allows for faster product development cycles. Supplemented by access to in-built APIs for
popular platforms and data means data analysis becomes a breeze, much like it had been with
Mathematica with the additional feature of being more programmable.
Thus, Wolfram Language with it Knowledge-based capabilities makes for an interesting
work. The language is easily built for the cloud age, where all devices are connected and data
need not be stored locally. The language is vastly capable and only after it has been released
formally will be able see the glimpses of what all creative minds can do with its power.
However, the proprietary nature of Wolfram language will be an issue with most users.
8/10/2019 Wolfram Report
http://slidepdf.com/reader/full/wolfram-report 17/17
17
8. REFERENCES
1. Cohen, Joel S. (2003). Computer Algebra and Symbolic Computation: Mathematical Methods.
AK Peters, Ltd. p. 14. ISBN 978-1-56881-159-8.
2.
Making Computer Algebra More Symbolic (Invited), Stephen M. Watt, pp. 43-49, Proc.
Transgressive Computing 2006: A conference in honor or Jean Della Dora, (TC 2006), April
24 – 26, 2006, Granada Spain.
3. Ma, Kin-Keng; Khoo Yit Phang, Jeffrey S. Foster, Michael Hicks (2011). "Directed Symbolic
Execution". Proceedings of the 18th International Conference on Statis Analysis: 95 – 111.
Retrieved 03/04/2013.
4. Robert S. Boyer and Bernard Elspas and Karl N. Levitt SELECT--a formal system for testing
and debugging programs by symbolic execution, Proceedings of the International Conference
on Reliable Software, 1975,page 234--245, Los Angeles, California.
5. William E. Howden, Experiments with a symbolic evaluation system, Proceedings, National
Computer Conference, 1976.
6. Wolfram, Stephen, A New Kind of Science. Wolfram Media, Inc., May 14, 2002. ISBN 1-
57955-008-8.
7. Chua, Leon O, A Nonlinear Dynamics Perspective of Wolfram's New Kind of Science
(Volume V). World Scientific Publishing, March, 2012. ISBN 978-981-4390-51-4.
8. The Evolutionary Design of Collective Computation in Cellular Automata, James P.
Crutchfeld, Melanie Mitchell, Rajarshi Das (In J. P. Crutch¯eld and P. K. Schuster (editors),Evolutionary Dynamics|Exploring the Interplay of Selection, Neutrality, Accident, and
Function. New York: Oxford University Press, 2002.)
9. http://reference.wolfram.com/language/
10. http://reference.wolfram.com/mathematica/
11. http://www.wolframalpha.com/