[Haskell-cafe] A Procedural-Functional Language (WIP)

Richard A. O'Keefe ok at cs.otago.ac.nz
Wed Oct 26 23:05:45 UTC 2016

I'd like to point out that "procedural-functional" is not novel.
The programming language Euclid, an "industrial strength Pascal",
was sufficiently nailed down that a blue-and-white report from
Xerox PARC showed that it could be viewed as a pure functional
language.  And I don't know if anyone ever pointed it out, but
the language used in Dijkstra's "A Discipline of Programming",
and in a number of papers subsequently, was constrained in the
same way, to the point where that language can be seen as a
sheep in wolf's clothing too.

I'd like to point out something else.  We are looking at the
end of Moore's Law.  If that end hasn't already overtaken us,
it's visible in the rear view mirror and coming up fast.  HP,
for example, are revisiting the idea of having *LOTS* of CPUs
mixed in with the memory because conventional multicore has
its own problems.  And the Square Kilometre Array telescope's
computers are definitely going to be chock full of FPGAs as
well as more conventional things like PGPUs.

This means that in the foreseeable future we are going to need
to learn a new style of programming because the antique style,
as exemplified by say Java, just isn't going to scale.

APL was once described as "the language of the future for the
problems of the past".  I suspect that WIP may be headed in
the same direction.

Disciple http://trac.ouroborus.net/ddc/ may be of interest.
Quoting that page,
"DDC is a research compiler used to investigate program transformation 
in the presence of computational effects. It compiles a family of strict 
functional core languages and supports region and effect. This extra 
information provides a handle on the operational behaviour of code that 
isn't available in other languages. Programs can be written in either a 
pure/functional or effectful/imperative style, and one of our goals is 
to provide both styles coherently in the same language."

More information about the Haskell-Cafe mailing list