PDA

View Full Version : Catalina - a C compiler for the Propeller



RossH
03-30-2009, 10:08 AM
All,

Just in case none of your many heads ever reads the other propeller forums, I've released a beta version of my C compiler developed on the Hydra. In keeping with the Hydra spirit, it even includes a demo game - a version of Othello written in C.

Se the main Catalina thread at http://forums.parallax.com/showthread.php?p=795326

Ross.

Post Edited (RossH) : 5/18/2009 6:55:23 AM GMT

JT Cook
04-01-2009, 10:25 PM
Since I started doing programming on another micro (for a different project I am working on) I didn't notice how much easier it is to develop for. It is also nice prototyping something on the PC, set a few #ifdef's to have it work on different platforms. When I get some time I will have to check it out.

RossH
05-18-2009, 01:52 PM
All,

I've released a new beta of the Catalina C compiler, developed on the Hydra - see http://forums.parallax.com/showthread.php?p=795326.

For those of you with the Hydra Xtreme 512K card, the latest release now supports C programs larger than 32K.

Ross.

Humanoido
05-18-2009, 03:47 PM
Congratulations Ross! I look forward to implementing this and integrating it into a new Hydra based project, which is based on running as many different languages as possible. It will be interesting to program in C language again and the provided demo programs will be helpful in getting up to speed. It was a good idea to post a reference your Hydra C project Propeller thread in the Hydra Forum. :)

humanoido

Post Edited (humanoido) : 5/18/2009 8:59:43 AM GMT

RossH
05-20-2009, 07:34 AM
@Humanoido

Okay, I'm intrigued - why do you want to run as many different languages as possible?

And do you mean you want to run them all at once (perhaps each using a separate cog?) do you just want a system capable of running them all?

Ross.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina (http://forums.parallax.com/showthread.php?p=795326)

Humanoido
05-20-2009, 08:45 PM
Ross - it's all about the learning experience. In the past, I wrote
some programs that used 3 languages to run some very large
pneumatic robots almost the size of a house.

Three languages added together gave capabilities of each and
the final program was amazing, at least in my mind. Prior to that,
I wrote AI programs that used multiple languages for adding
thinking functions to Japanese CNC machines. It was successful
and I've kept the method ever since.

Now I starting thinking about the challenge of putting as many
languages as possible into the Hydra. I already started the
language collection and have two successfully running. But
your idea is better, to put a language in each cog. But I don't
know how to do that. Do you? If you can open the door for me,
I'm willing to step through.

humanoido

RossH
05-21-2009, 10:21 AM
Hi humanoido

It will take me some time yet, but I'm working on adding true cog-based parallel processing (not simple mutithreading) to Catalina. This would means that each cog could either execute a completely independent Catalina program - or they could all co-operate. Also, I've started looking at adding other languages to Catalina. I can already do BASIC, since there are quite a few simple BASIC interpreters written in C. I may release one shortly as a demo.

Now that Catalina programs are no longer restricted to the Propeller's 32K RAM limit, lots of things have suddenly become possible.

So just wait a while, and check in on the progress of Catalina from time to time!

Ross.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina (http://forums.parallax.com/showthread.php?p=795326)

Humanoido
05-22-2009, 08:17 AM
I look forward to seeing languages being run under the C implementation
with BASIC language as the first version. Running multiple programs and
languages in cogs will be very useful. But do all these cogs share the same
memory? How will that be handled?

humanoido

RossH
05-22-2009, 09:35 AM
Hi humanoido,

The programs will not share memory except when two programs agree to synchronize. At the time of synchronization the programs agree on a set of variables that will be visible to both for the duration of synchronization. This is a model adopted in some multitasking languages (e.g. in Ada it is called a 'rendezvous'). It is a very neat solution that I hope will map efficiently to the Propeller architecture. But it is not built yet :)

Ross.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina (http://forums.parallax.com/showthread.php?p=795326)