Did Erlang borrow from Ada?
Joe Armstrong
joe@REDACTED
Thu Jun 24 16:59:07 CEST 2004
On Thu, 24 Jun 2004, Eric Newhuis wrote:
> Did Erlang borrow from Ada?
Not knowingly :-)
The main influences were
Prolog, Eri-pascal, PLEX and chill and SDL.
Erlang was developed at the Ericsson Computer Science Lab.
Our job was to "find better ways of programming telephony".
Ericsson has previous made in-house languages (PLEX and erl-pascal)
for telephony programming.
The "PLEX tradition" was for languages with massive concurrency,
lightweight processes fast context switching fast message passing etc.
PLEX program were specified in SDL and in the mid 80's executable
specification language were trendy - Erlang's receive semantics (wait
for what you want and queue everything else) came from an attempt to
simplify the transformation of SDL specifications into code.
Things like "changing code on the fly" came from the requirements
for telecoms systems (which are supposed to be non-stop).
Erlang started life as a Prolog meta-interpretor. Erlang one was
just a Prolog meta-interpretor which emulated parallel processes and
message passing.
The error recovery semantics was added later.
As time passed the Prology features (search, backtracking, passing
unbound variables) faded away - to be replaced with more functional
things Higher order functions, list comprehensions.
As time passed a lot of pragmatic things got added, the Bit syntax
... etc.
Cheers
/Joe
>
> Hm. I am not sure. I've CC'd this question to the Erlang mailing
> lists to see if Joe Armstrong might comment. Unencumbered by facts,
> however, I will offer the following opinion.
>
> I don't see anything in Erlang that resembles Ada programming
> constructs. But the concurrency is there.
>
> I think no especially if you are comparing the grammars. Erlang
> derived from Prolog and then got rid of most of what Prolog does at
> runtime. So the code tends to look like Prolog but has a completely
> different meaning. But because of this there is a lot of Erlang code
> that looks declarative--just long lists of "facts" and "rules" instead
> of algorithms. However there are plenty of algorithms expressed in
> Erlang. (Whereas in Prolog there is only one algorithm and it is built
> in to the Prolog runtime engine. Prolog is a giant search engine and
> your program is the database. You run the program by asking Prolog a
> question about its facts. Erlang is nothing like that at all. Not
> even close. But the grammar looks the same.)
>
> -Eric
>
More information about the erlang-questions
mailing list