Hi -t,

why not write a C or Java source code generator in REBOL? 

You'll have to learn what a Java or C source file looks like. Let's take C.

Normally a C file is either a source code file, or a header file. A code
file (typically filename.c) will begin by including some header files such as:

stdio.h
stdlib.h

If you're programming is going to interact with sockets under Windows,
it'll probably have to include winsock.h.

Depending on what you are doing you may also include some other header
files, like header files for database libraries, or, if you're programming
under windows, you used to have to inlucde

windows.h

So, the begining of your source code file may look like this:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <winsock.h>

Then you may define some constants, for instance

#define MY_LOGIN_NAME "icimjs"
#define MY_PASSWORD   "********"
#define TRIES         10
#define FTP_OPORT     21
#define FTP_IPORT     22

and typedefs, such as

#typedef char * NODE

or something like that. Next you may declare variables and functions that
will be globally accessable, or you may declare them static to ensure that
they remain limited to the source file.

To find out the details, grab a good book on C programming. I still think
Kernighan/Ritchie's book on C Programming is the best introcutory around.

Then you can build yourself REBOL objects that will generate the code and
the different files you need for you.

The point is that as you read through the book and try out the examples,
you summarize in your mind the repeating patterns of header files and
function declarations and so on, and you use that information to implement
REBOL objects and functions that will take some arguments or set some
words, which will the be used to generate file which contains the proper C
code.

While you think about how to structure your REBOL program you will be
intesively dealing with the structure of C programs that is the data you
are trying generate using REBOL. By the time you've got your REBOL C case
tool completed, I bet you'll be quite some C expert and at the same time
your efforts will pay you back by providing you with a tool that guarantees
that a good portion of your code will be syntactically correct.

Basically, REBOL becomes a tool, that use in order to think about C
programs and with which test your own theories about how C programs,
functions, constants, structures, and variables are declared and defined.

You would be creating a REBOL dialect that allows to discuss C programs
with REBOL and - if its well done - will allow you use REBOL as your
assistant in creating C programs. Kind of a C programming metalanguage, or
a compiler for your own language, whose target language is C.

You can then look at specific programming tasks. What do linked lists look
like in C. How can you create a REBOL function that generates C code that
will declare and define the necessary data structures and supporting
structures for generic linked list structure?

Whenever you investigate a language for the purpose of creating a tool to
support the language, you become for more intimate with the language your
investigating, then when you're just trying to keep up with the curriculum. 

Elan


At 03:03 AM 12/28/99 +0200, you wrote:
>Hi guys,
>
>I've followd the "thanks" thread with intrest, because I'm in a similiar
>boat to Petra's.  Probably next semester I'll start with C or Java or
>somthing.
>
>So Rebol won't ruin me for other languages, but instead help me
>understand them?  I'm already loyal to REBOL (its got a very high "cool"
>rating).  But I think I have to really dive in to it to learn it.  I've
>written two funcional scripts, but I'm out of stuff to do.
>
>any ideas about how I can creep up the learning curve?
>-- 
>
>
>-t
>
>
>

Reply via email to