origins of XC
-
- Active Member
- Posts: 60
- Joined: Tue Feb 16, 2010 8:21 am
- Location: Sweden
origins of XC
Just had a quick look at XC and I wondered, was it created by people working with hardware design? Just think it reminds me alot of VHDL :)
-
- Member++
- Posts: 31
- Joined: Thu Dec 10, 2009 10:11 pm
The concurrent programming features of XC are closely aligned with occam, which is in turn related to CSP. occam is the language I designed in the early 1980s to program the Inmos transputer processors - I was the architect of the transputer. There are wiki pages - and lots of other information - about transputers and occam on the Web.
I have been a programming language designer, computer architect, hardware designer and programmer - especially compiler writing. I am very interested in languages that can be used for both hardware design and software design. In fact, many years ago I wrote a paper - 'compiling occam into silicon' - http://www.transputer.net/tn/23/tn23.pdf - exploring a method of translating the occam concurrent programming language into chip designs. occam was also used as the basis of several of the design languages used for asynchronous hardware.
Once you have sequence, parallel, select and channel communications, the language is powerful enough to use either as a programming language or as a hardware design language! This is a really useful idea as it means that designs can be moved easily between hardware and software.
I have been a programming language designer, computer architect, hardware designer and programmer - especially compiler writing. I am very interested in languages that can be used for both hardware design and software design. In fact, many years ago I wrote a paper - 'compiling occam into silicon' - http://www.transputer.net/tn/23/tn23.pdf - exploring a method of translating the occam concurrent programming language into chip designs. occam was also used as the basis of several of the design languages used for asynchronous hardware.
Once you have sequence, parallel, select and channel communications, the language is powerful enough to use either as a programming language or as a hardware design language! This is a really useful idea as it means that designs can be moved easily between hardware and software.
-
- Active Member
- Posts: 60
- Joined: Tue Feb 16, 2010 8:21 am
- Location: Sweden
Aight, I'll look into it when I get a chance. Thanks for the answer!
-
- Respected Member
- Posts: 377
- Joined: Thu Dec 10, 2009 6:07 pm
Hmm... so when's the "Compiling XC into Silicon" paper coming out?dave wrote:In fact, many years ago I wrote a paper - 'compiling occam into silicon' - http://www.transputer.net/tn/23/tn23.pdf - exploring a method of translating the occam concurrent programming language into chip designs.
;-)
-
- XCore Expert
- Posts: 546
- Joined: Thu Dec 10, 2009 10:41 pm
- Location: St. Leonards-on-Sea, E. Sussex, UK.
Dave:
Weren't some parts of the transputer designed with occam? I vaguely remember it being mentioned at the time. I think there was a working compiler before there was any hardware.
Weren't some parts of the transputer designed with occam? I vaguely remember it being mentioned at the time. I think there was a working compiler before there was any hardware.
-
- Member++
- Posts: 31
- Joined: Thu Dec 10, 2009 10:11 pm
We used occam for high-level modelling and simulation during the transputer design(s). That way we could model the concurrency without needing to model the timing.
We also used occam to develop and verify microcode for the T800 floating point unit - using correctness-preserving transformations to prove equivalence of the microcode representation and a verified high level program.
We also used occam to develop and verify microcode for the T800 floating point unit - using correctness-preserving transformations to prove equivalence of the microcode representation and a verified high level program.
-
- XCore Expert
- Posts: 546
- Joined: Thu Dec 10, 2009 10:41 pm
- Location: St. Leonards-on-Sea, E. Sussex, UK.
I paid a few hundred pounds for a couple of T800 samples! That was a lot of money then. The occam User Group conferences were a lot of fun.
-
- XCore Addict
- Posts: 238
- Joined: Thu Dec 17, 2009 5:15 am
So Xmos or some of Xmos is a proof of Occam, that's very interesting.dave wrote:We used occam for high-level modelling and simulation during the transputer design(s). That way we could model the concurrency without needing to model the timing.
Occam in EDA has so much potential I would imagine. I am going to be
examining the differences and similarity of Occam and XC. Perhaps some
day we will develope with XC and Occam in the same enviorment, maybe
that enviorment shall be an Xmos platform. :roll:
-
- Experienced Member
- Posts: 96
- Joined: Mon Mar 22, 2010 8:55 pm
Might we ever see counted-array channel communication introduced to XC? In other words, something:
chan <: count::array
Where both count and array may be of arbitrary types. This cleaned up a lot of my code, when it was added to occam.
chan <: count::array
Where both count and array may be of arbitrary types. This cleaned up a lot of my code, when it was added to occam.