TOASC! draak.sf.net
download
status
news
QnA
SF

atrodo.org
dwin
draak
atrodo
E-mail

Welcome
To the newest full addition to the TOASC family. Here you will find the Multilanguage Macro Compiler Draak. Draak is a single binary that is able to compile any context free language (like C, Pascal, Java) for any platform. Adding languages or platforms is as simple as adding a single file. Updating a language can be achived with a normal text editor, no recompiling required. Language development is in leap and bounds, and optimizations (unless you take it to the extreme) are simple to use.

Features:
  • Single binary: Multiple Langages: Multiple Platforms
  • Cross compiling is simple. The same file for compiling on one platform is used for cross compiling from another platform.
  • Real compiler. It contains a generalized parser that will parse any Context Free Language.
  • Macros take common compiler actions and uses them with a flexable code generation stage.
  • It is surprisingly fast.
  • Published in 2003 International Multiconference in Computer Science & Engineering
  • Free and Open source.

    So...
    If you are a developer, interested in compilers, or just wondering what this is all about then go ahead and download the latest version and try it out.
    (07.22.2005) - Draak
    Congradulations to the one submitter! I got one submission for the LinuxOnPower contest to port Draak to PowerPC Linux, and to my great surprise, they had successfully done it. Draak now has a (partial) PowerPC core. This now means a few things. First, I need to get my act together. Second, I'd really like to stay in contact with this submitter, because there is a complete grammer rewrite in progress for the i386 core. There is actually quite a bit of a cleaning I've been doing on what I'd hope to be a cross-arch. setup core. I, unfortonatly, don't know assmebly on anything but i386. Having someone else that knows a RISC core (and i guess knowing gas since my understanding is that AT&T syntax is more prevalent) would really help in this endevor. I'll be working to integrate his changes to the pascal code here soon. I will also have to devise a way to allow multiple cores to exist and be selectable. The nifty thing about draak was that my i386 linux, Windows and thier PPC linux versions of draak all produced the same assembly file. Again, congradulations to the submitter, and I hope to come in contact with you.
    (06.23.2005) - Draak
    Oppps, I know this is a problem for you if you've tried to compile Draak since the last update. I never included Macro.pas, at least two people have emailed me about it. The second is sitting in my inbox and my email program is kinda busted. Okay, not so much busted as not set up yet. Anyways, here's Macro.pas, it's actually a dummy unit, but is rather important.
    (10.14.2004) - Draak
    Well, it appears Draak has been chosen to participate in the "Linux on POWER" contest. Basic premise is to port applications to the POWER architecture. More info can be found here. As it turns out, I am now the judge for contestants aiming at my project. All I have to say to those: Go for it! Porting Draak probably is not going to be the easiest task on the list, but that's not to say it's impossible. Draak currently only compiles in Delphi, which is the biggest challenge. Freepascal is an option, but Draak uses things that FreePascal doesn't support (until recently, the big one was dynamic arrays). The ultimate goal is for Draak to be self compiling, and right now it's anywhere from a third to halfway there. Although it will parse and recognize (I believe) all of it's units, it can only compile parts of it. I got objects to compile, but most of the functionality still isn't there. The other big thing is the system unit and supporting units. For me to give someone a successful attempt, Draak itself would have to be running on a POWER machine and produce binary that runs as well. If FreePascal is used, the component system must be intact (sans treedraak). If it's self-compiling, it may be reduced to a series of units (no components or dynamicly loaded preprocess required). The later is by far what I would prefer, and depending on how hard the FreePascal route really is, might be the only path I take. As for the newest code, I've just uploaded my latest version (Build #84, v0.82.2), and you can pick it up here. The program is stable on windows, should compile on Kylix with a little effort, and it should be generating good assembly for a i386 DOS (16-bit) binary. If you have questions about anything, feel free to email me at "atrodo at atrodo.org", and I'll be happy to answer. Good luck to anyone that takes on this challenge.
    (03.04.04) - Draak
    Ah haha! Draak v0.82.0 (Build 82) is released. This is a major upgraded version. Pascal is more like 65% done now, including enumerations, records, integer types, subranges, arrays and even objects. Procedures and functions work, and they have a full complement of var, const and out types, along with default values. Overall, a great deal of stuff has been put into this version, a full ObjectPascal compiler is nearby. After that, all it needs is a library. I'm very excited about this, and please try it out at SourceForge. I am also looking for people to help in producing new language/platform cores. C and Java are high on my list of next in line languages, a Linux or Windows version of my current 386 bound 16-Bit DOS Pascal are also high on my list. Even down porting my Pascal core to pure 8086 would be great. If someone happens to have enough time to do PPC, Sparc, JVM or CLR, those platforms would be wonderful to add. Let me know if you're interested.
    (12.24.03) - Draak
    Happy Christmas eve! The semester is over, and that means I am offically a graduate of AU. This means I have the painstaking duty of finding a job. While I've been doing that, I've been working on Draak quite a bit. In fact, Pascal is coming along nicely. Pascal now has Enumerations, and records are in the works, which means objects are only a hop, skip and a jump away. Then it's minor details, which I hope won't take log because of a good base that I've (hopefully) built. C now has an almost working grammar, with just a few hiccups (Say, for instance '{' is only being recognized as a meta-symbol in the grammar files). Other then that, Draak is getting a lot of attention this Christmas system.




  • Defy! 
     





    3439