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.



> 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