Author Topic: ConEuc? Concurrent Euclid (programming language)  (Read 4109 times)

0 Members and 1 Guest are viewing this topic.

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
ConEuc? Concurrent Euclid (programming language)
« on: October 07, 2015, 08:12:24 pm »
Concurrent Euclid (also known as ConEuc) is a concurrent descendant of the Euclid programming language designed by James Cordy and Ric Holt, then at the University of Toronto, in 1980.

ConEuc was designed for
  • concurrent
  • high performance
  • highly reliable
system software.

The TUNIS operating system is a Unix variant, and it was implemented entirely in Concurrent Euclid, this because ConEuc extends a core subset of Euclid with processes and monitors as well as language constructs needed for systems programming including separate compilation, variables at absolute addresses, type converters, long integers and other features.

Good theory, good book (see the Amazon link, the book/second hand is available for a few bucks), about practice … well, it "seems" ConEuc was implemented by a small (~k bytes?), fast, portable compiler that was self-compiling and had replaceable code generators, but I haven't seen sources around  :-//

someone with a better experience here ?
I have bought that book and I appreciate it
 

Offline richardman

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #1 on: October 07, 2015, 09:02:40 pm »
I have the book, from the 80s! :-)

Good theoretical concepts. Holt is a brilliant mathematician. However, good languages based on good languages do not necessarily mean good general purpose programming language.

I think for concurrency, the "Future" construct may be the future, but jury is still out.

There is no shortage of coroutine and light weight threads, something is still missing though, mainly they require a DIFFERENT language, and if COBOL is still being used, when it should have been dead 30 years ago, this means something...
// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #2 on: October 08, 2015, 08:20:03 pm »
I am reading this paper
it claims "Threads Cannot be Implemented as a Library": interesting  :o
 

Offline richardman

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #3 on: October 08, 2015, 08:47:36 pm »
I am reading this paper
it claims "Threads Cannot be Implemented as a Library": interesting  :o

A bit of hyperbole. The problem is the concurrency model of shared (e.g. global) variable access. Not all concurrent programming make use of shared variables the way they imply - may be some, certainly, not all.

A better model for concurrency is probably using channels, which are encouraged by most languages which support concurrency anyway, and not shared memory. However, it's also true that possibly channels cannot be support as library code either.

My own interest in this is back to those "thousands" of IoT sensors and devices communicating. They ought to use a higher level abstraction that poking at the TCP/IP level.
// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #4 on: October 08, 2015, 08:57:35 pm »
yes, it's good when the model it's shared memory oriented
I agree with you.
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #5 on: October 09, 2015, 12:21:21 am »

It makes me thinking about Ada Protected Object  :popcorn:

an other example: Mutex Object, used by Modula-3
 

Offline helius

  • Super Contributor
  • ***
  • Posts: 3642
  • Country: us
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #6 on: October 09, 2015, 01:01:58 am »
Why better models of concurrency are needed:
http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #7 on: October 09, 2015, 01:38:11 am »
Erlang is a proven concurrent programming language.

Not hard to get your head around it if you can program FPGAs, also you can only use a variable once, but the message passing is 2nd to none.
 

Offline codeboy2k

  • Super Contributor
  • ***
  • Posts: 1836
  • Country: ca
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #8 on: October 09, 2015, 05:47:29 am »
Holt was my Professor back in my University of Toronto days... We did ConEuc programming on a 6809 trainer board in our 4th year EE labs.  We built an OS with it during the course.  It was pretty nice to work with, and very cool for the time.  I too still have the original book from the 80's.

By this time, new students were starting to use The Turing Language for general programming, and Turing Plus for systems programming.  Both of these borrowed heavily from ConEuc.  I still like the cleanliness of Turing, although some people look at it like it was some kind of modern day cobol.   I just liked that everything had to be explicitly imported and declared upfront before you used it, and I still like this. I have a love/hate relationship with dynamic programming languages like python, php, lua, etc.

I've never tried Erlang, but it's on my list :)
« Last Edit: October 09, 2015, 05:52:22 am by codeboy2k »
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: ConEuc? Concurrent Euclid (programming language)
« Reply #9 on: November 21, 2015, 01:14:45 pm »
what about the RUST language ?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf