Talk:Occam (programming language)
Does anyone know which versions of occam were implemented by the various revisions of the D700 TDS? I assume that the D705 and D7205 Toolsets implemented occam 2 (more or less) - Letdorf 12:00, 18 December 2005 (UTC)
Occam 2.5 was also the internal name for Occam 2.5 (see Conor O'Neill, occam-2.5 definition, SW-0429-8, INMOS Ltd). This confused me for quite a long time :-( Should it be added to the description of Occam 2.1??? --80.185.144.0 09:25, 17 January 2006 (UTC)
- As far as I recall the document referenced here was a rogue - it should be ignored. --Steven Zenith 23:48, 11 March 2006 (UTC)
Query Date of Occam 2.1 and some background recollections
I really do not remember these changes to Occam 2 appearing in 1988 - can anyone refresh my memory and support the claim? As I recall someone from Oxford University did the 2.1 revision (name escapes me) but I seem to recall that was completed in 1990 - essentially, after I left INMOS.
I wrote the Occam 2 Reference Manual BTW (David Shepherd contributed the Floating Point Appendix) - at the time INMOS had a policy of not allowing engineers to have their name associated with documents. They were afraid we would be poached by competitors :-) (I even had to give three months notice before I could leave - they kept me around too!).
David May wrote the first specs for Occam - essentially based on Tony Haore's earliest (and very sparse) drafts of his book on CSP. I was asked to write the manual because David's spec was too terse - but personally I admired David's early specs. Today I would describe them as semeiotically special in that they evoked very subtle meanings in very few marks.
I once asked David why Occam was so important - he pointed out that Occam has a mathematical foundation. At first this confused me because you can argue that all programming languages have a mathematical foundation (see Tarski's work in logic for example). What he meant, of course, was that Occam was founded on Tony Hoare's elemental mathematics of computation, concurrency and communication. We were not simply making it up as we went along and Tony's work really is foundational, bridging the gap between logic and machine in formal ways that were new (as far as I am aware).
I had the Algol 60 report on my desk the entire time I wrote both drafts of Occam 2. The first draft was a mess and abandoned because I was hacking together a bunch of stuff written by other people - so many people wanted to leave their mark on Occam. Everyone threw their hands up in the air and said : "no! no! no!" - I agreed. Roger Shepherd (who also worked for David) was really mad, and scared the bejeezus out of me :-) - In fact he got my head straight about what I should do. "There's no story, Steven." he said "Even a programming language manual needs a storyline". He was right. I got Peter Cavill (who led the engineering of the transputer and Occam) to give me permission to rewrite and within three weeks I had rewritten the entire thing anew in my own words and everyone was happy.
In an interesting but irrelevant side note, I also arranged for Prentice Hall to publish the Occam 2 book, I negotiated and got the deal signed to print the first 10,000 copies of the book. I did all the style and layout work in TeX and then also reprogrammed the new PostScript RIP that the printers they use had just acquired to accept the files TeX produced. The book I wrote, the Occam 2 Reference Manual, is the only book formally published as far as I am aware.
--Steven Zenith 22:46, 11 March 2006 (UTC)
Poor examples
I'm not sure I want to get too involved with this entry but I would like to point out that the examples here are poor. Especially the example for PAR - a good optimizer would turn this into a SEQ on most machines ... but that opens a whole bag of worms about when to use PAR and when not to use PAR and now to map Occam programs onto machines.
PAR is great for describing functional composition - which does not necessarily require an understanding of the underlying machine architecture. I made a minor adjustment to fix the obvious granularity problem.
--Steven Zenith 23:19, 11 March 2006 (UTC)
A book to indicate : "programming in occam2" by Alan Burns, 1988, Addison Wesley, 189 p.
References
occam 2.1 Reference Manual
authorlink=INMOS| url=http://www.wotug.org/occam/documentation/oc21refman.pdf%7C title=Occam 2.1 Reference Manual| publisher=SGS-THOMSON Microelectronics Ltd.|date=1995-05-12
It is the MAIN reference to this article, and THE OFICIAL reference of the language. Use, alternative, if have problems on download (tested Nov 2006):
PS: there are also lib codes.
Transputer/Occam Japan 4: Proceedings of the 4rd Transputer Occam International Conference
By S. Noguchi, H. Umeo
Published 1992
IOS Press
278 pages
ISBN 9051990936
Comprises discussions presented by leading international experts on the application of transputers. Coverage includes formalism, specifications and design, concurrent systems development, parallel algorithms, real time systems and applications.
Transputer and Occam Research: New Directions
By Jhon Kerridge
Published 1993
IOS Press
253 pages
ISBN 9051991215
The papers included in this book provide a wide coverage of current thinking and the new concepts which are being developed resulting from the introduction of the T9000. The role and use of the newly developed transputer and associated routeing component, the C104, is discussed.
Occam Programming Manual. Printice-Hall International 1984.
The Laws of Occam Programming. A W Roscoe and C A R Hoare, Programming Research Group, Oxford University, 1986.
Revertion
I reverted to my last edit because the changes look like self-promotion to me. Who cares if Occam was supposed to be lowercase or not (only someone that was closely involved)? It looks wrong anyway.
Other "versions" are just not worth noting. They were never implemented or available. No-one cares. --Gwizard 21:44, 4 September 2007 (UTC)
- You might not care; others do. Letdorf 22:49, 4 September 2007 (UTC).
- All official INMOS documentation, to my knowledge, used the lower-case "occam" form (which was also used consistently in this article before your edit). Just because it "looks wrong" does not change this fact. Also, programming languages can exist regardless of whether they are implemented as compilers/interpreters or not. For instance, Plankalkül existed for 57 years before it was implemented! I see no point in denying the existence of the occam91/occam 3 specification, which influenced the design of occam 2.1 (a dialect of occam I presume you do consider worth noting). Letdorf 10:02, 10 September 2007 (UTC).
- The problem is that you are the person that did the work. Your self-interest and career building is obvious. Get someone independently to recognize it. Right now it looks to me like self-promotion. And the branding of the language is irrelevant, your obsession with it is what gives you away old man. --Gwizard 20:41, 1 October 2007 (UTC)
- I can see that you do all your edit work from an ST Microelectronics IP address. You need to declare your interest. --Gwizard 20:52, 1 October 2007 (UTC)
- I have absolutely no idea what you are talking about. I am not Geoff Barrett, and I have never worked for either INMOS or ST. I'd love to know how you've found out the IP address I use! I admit to being a pedant, hence my insistence on the offical casing of the name "occam". I also happen to be of the opinion that the occam91/occam 3 spec was significant and influential enough to warrant a mention in this article. I hate to get personal about these things, but I'm afraid I can only conclude that you are either a wind-up merchant or deranged. Letdorf 10:58, 2 October 2007 (UTC).
- I may be wrong. I did not think you were Geoff Barrett. I've see his name on the Oxford University web. Someone from ST Microelectronics is trolling the related pages at the same time as you. You are "emotionally attached". --Gwizard 23:43, 2 October 2007 (UTC)
- Funny you should say that because I just now came to this article specifically looking for info on occam 3 and was surprised that it wasn't listed. Also, the language is specified as being "occam" instead of "Occam" in the reference material. - DNewhall 14:17, 2 October 2007 (UTC)
- That seems a little convenient, but I'll roll with it. Let's discuss before we let it on the main page. What is significant about 3 that is not in 2.1 and how is the history relevant? Geoff Barrett deserves a mention, I was already thinking about that. Is he still alive? The history is hard to get at. I would like a source. I still think the case issue is not important and that readability is. --Gwizard 23:43, 2 October 2007 (UTC)
- You know, I suppose we could ask Steven Zenith. --Gwizard 00:16, 3 October 2007 (UTC)
- I was interested in occam 3 because I have to do a senior project for my major and I just finished reading "Programming in occam 2" by Jones and Goldsmith and I thought it would be interesting to write a compiler for occam, specifically occam 3 since it was never fully implemented in a compiler. occam 3 is of interest in computer science because it tried a few unique approaches in some areas that while syntactically clear are not easy to implement. For this reason occam 3 is, and has been, used to describe distributed algorithms and due to this I think it should be discussed. I think the argument that it should not be discussed because it was never implemented is flawed because it was still used regardless as well as the precedent shown by having an article on Plankalkül, also an "unimplemented" language. Plus, there are probably more lines of occam 3 code out there than, say, Plankalkül, Dataparallel-C, Cecil, Cesil, Arbol, or any number of other lesser-known programming languages out there and we're discussing having a paragraph discuss a major dialect of a well-known programming language. - DNewhall 06:52, 3 October 2007 (UTC)
occam 3
Template:RFCsci Should the occam 3 variant of the occam programming language be mentioned in the occam (programming language) article?
- As I stated before, I see no point in denying the existence of the occam91/occam 3 specification, which influenced the design of occam 2.1, and has found use in describing parallel algorithms. Letdorf 12:13, 3 October 2007 (UTC).
Yes.I will defer to SEZ. Wizzy…☎ 06:52, 4 October 2007 (UTC)
- I've been asked to look in here. Can someone please tell me what Occam 3 is? I have no idea since I was not involved in anyway. Exactly what features did Occam 3 add? Was this something that Geoff Barrett did? What algorithms specifically use the features of Occam 3 and what are those features? If the language was used in a journal published paper to describe an algorithm then I have no doubt it should be included here. But I do not know that this is the case. I assume that such references would be included in anything added. The only significant revision of which I am aware is Occam Pi and Peter Welch at Kent University is the authority on that. He will know about Occam 3 too, I have no doubt. So he's the man to ask. I really do not feel qualified to answer this question. Geoff Barret BTW is alive and well, I heard recently, and working at Broadcom in the UK. Ask him.
- For the record, the Occam language was always developed within the group of people that worked for David May, the INMOS Architecture Group. This includes people like myself and Geoff Barret (though Geoff joined INMOS/STMicroelectronics full-time after I left). A number of people in the INMOS Software Group (Conor O'Neil among them) "leaked" unsanctioned documents that were not approved by David. David is the ultimate authority on all things Occam. David is accessible, write to him at Bristol University: dave@compsci.bristol.ac.uk.
- BTW, I do agree that the case of the name "Occam" is unimportant at this point. If you are going to put any energy into this article then do something useful, don't argue about now irrelevant trademarking.
- For those unfamiliar with occam 3, a draft Reference Manual can be found here (this was cited in the occam 3 section of this article). Letdorf 10:09, 4 October 2007 (UTC).