WELCOME TO YOUR BLOG...!!!.YOU ARE N°

Talking to Computers

Talking to Computers
Adapted from an article by
physicist and programmer Stephen Wolfram 
published in Eureka, 2013

Do we really need computer languages
to tell computers what to do?

Why can't we just use 
natural human languages,
like English or Spanish, instead?

If one would have asked this question
a few years ago, most of the experts
would have said it was hopeless.

That perhaps one could make toy examples,
but that ultimately natural language
just wouldn't be up to the task
of creating useful programs.

But then came along programs 
like Wolfram | Alpha in which
they have been able to make
free-form linguistics work, vastly better, 
than one ever thought possible.

But still, the input is essentially
just set up to request knowledge
- and responds 
by computing and presenting
whatever knowledge is requested.

But programming is different.

It is not about 
generating static knowledge,
but about generating programs
that can take a range of inputs,
and dynamically perform operations.

The first question is:
how might we represent these programs?

In principle one 
could use pretty much
any programming language.

But to make things practical,
particularly at the beginning,
we need a programming language
with a couple of characteristics.

The most important is that programs
a user might specify with short pieces
of natural language must typically 
be short - and readable - 
in the computer language.

Because otherwise the user
won't be able to tell
- at least not easily -
whether the program
that's been produced
actually does what they want.

A second, 
somewhat related criterion
is that it must be possible 
for arbitrary program fragments
to stand alone - so that
large programs can realistically 
be built up incrementally,
much like a description 
in natural language
is built up incrementally
with sentences and the like.

To get the first of these characteristics
requires a very high-level language,
in which there are already many constructs
already built in to the language -
and well enough designed
that they all fit together
without messy "glue" code.

And to get the second characteristic
essentially requires a symbolic language,
in which any piece of any program
is always a meaningful symbolic expression.

Conveniently enough, 
there is at least one language
that satisfies rather well 
both these requirements: Mathematica.

The linguistic capabilities of Wolfram | Alpha 
gives one the idea that one might be able to understand
free-form natural language specifications of programs.

Mathematica, for instance, 
is what gives one the idea 
that there might be a reasonable target
for programs generated automatically 
from natural language.

Stephen Wolfram express that for him,
there was also a third motivating idea
- that came from his work displayed
in his book A New Kind of Science.

One might have thought, he says,
that to perform any kind of complex task
would always require a complex program.

But what he learned there
is that simple programs 
can often do highly complex things.

And the result of this
is that is often possible
to find useful programs
just by searching for them
in the computational universe
of possible programs -a technique 
that he says he use with increasing frequency
in the actual development of both
Wolfram | Alpha and Mathematica.

__________
I transcribed Stephen Wolfram's short article
because, although his work is meritorious
he invest too much time in selling himself
and his products, every time he has the opportunity.

Probably this is the part of the way to stay alive after
thirty years in the business. It seems not enough to
work on the frontier, you have to invest continually
time, words and effort, to present
your contributions, as the last word of everything.
It seems this work for the market
but it can be a little bit tedious
when one expect ideas instead 
of the speech of a salesman.

No hay comentarios:

Publicar un comentario

COMENTE SIN RESTRICCIONES PERO ATÉNGASE A SUS CONSECUENCIAS