[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Occam-Tau - the natural successor to Occam-Pi - or is there one already?

Hi David

I think the most important thing you said (slide 33) was that kids "should learn about Sequence, Concurrency and Event-handling (interaction) at the same time". This means getting in early, before the rot sets in.  Once anyone has mastered all the nonsense and accepted it, and allowed their ego to profit from penetrating the obscure notation, you've had it.  They never go back.

The recent arrival of a far better GCSE Computing (OCR), where programming is at last included, and without reliance on any single PL, is an opportunity.  There is instead a reliance on pseudocode.  Simon Peyton Jones appears to have influenced things.  Perhaps a nudge here might see the pseudocode extended to include a parallel and ALT construction, along with communication primitives.

That leaves prioritisation, which IMHO is as important, and I've never felt happy with PRI PAR and PRI ALT, particularly with the combination.  Badly missing prioritised vectored interrupts, which I grew up on, I proposed a 'when' construct for Honeysuckle, affording pre-emption.  The trouble with that is that its component processes are more sequential than parallel, and must communicate somehow.  All I could come up with was shared variables, with a little protection back from restricting assignment to one process each.  There is some basis for this in Tony Hoare's original book, in his 'alternation' operator, but nowhere near enough.  I'd really like to see a debate resume on what sort of prioritisation construct we need, and how to manage pre-emption.  Theory is lacking, but I don't think we can wait for more.

I completely agree we are facing an exponentially worse situation wrt software development given the exponential rise in core count.  We must begin with the youngest, I think.


On 30 Sep 2012, at 11:42, David May wrote:

Dear all, 

I've just noticed this email trail. It reminded me to post a keynote presentation 
I gave recently - it's here:

It was given at a "Multicore Challenge" conference in Bristol last Monday. 

Unfortunately they lost the recording so you have to guess what I said!

The main thing I've realised over the last year or two is that if you want to
write efficient programs for huge numbers of cores, you have to think about
the pattern(s) of communication. And of course, the language(s) have to be
able to express them clearly; the compilers have to be able to analyse
and optimise them; the architectures have to be designed to support them. 


Ian East
Open Channel Publishing Ltd.
(Reg. in England, Company Number 6818450)