Hi Y'all!

new topic     » topic index » view thread      » older message » newer message

Hi there people!

My name is John Cage.
I'm a computer scientist at the University Of Leuven,
in Belgium.
My name is pronounced Jon Sage in Dutch.
But my friends call me Dr. Cage.
And so can you.

I'm a good friend and relative of Mike Smith,
the person you know as Mike The Spike.
He's a good kid, but is known for his extravagantly
gross use of language.
This reminds me, I'm sorry for my bad English,
I'm a Belgian, you know.

Some might remember me from some of Mike's songs?
I was mentioned in Real Mike The Spike and My Home Is
Where I Leave My Shades.
My home is where I leave my shades:
"And Dr. Cage said:
Mike The Spike you code in Basic..
-uh ah!
Why is that light red?
Man you wasted it!"

Real Mike The Spike:
"And Dr. Cage said:
Nothing you idiots! Dr. Cage's dead, he's locked in my
basement. haha!"

Note that this is not my voice used in these songs,
yet Mike's voice talents at work!

Let's get down to the reason for my presence here.
Mike had being working on a programming language
called 'U4IA++' which was to be published by L&H as a
Natural Language, which is rather innacurate given the
language's syntax.
But as he worked in the Speech, Artificial Inteligence
& Language, S.AI.L, department, he could market
anything g related to language he wanted.
However, he quit his job and along with it all
contacts with L&H.
So, he kept an unfinished software product on his
machine with a destiny to rot.
However.
I recently bought the code base to U4IA++ and am
developing it further, to be sold to Sun Microsytems
once finished.
I contacted Sun along with a dozen of other companies
with the proposition of selling a programming language
implementation which is safer and less complex than
JAVA, yet almost twice as fast as C in some areas.
U4IA++, I have discovered, uses a JIT compiler
internally. This might be the reason for Sun being
interested.
U4IA++ can translate programs to ANSI C which can be
compiled with 73 different compilers and compiler
versions, for dozens of operating systems and hardware
platforms.
This is a strong feature considering the portability
of other RAD programming languages.

In any case,
I'd like to release the U4IA++ code base as
OpenSource.
My goal is to replace delicate parts of the
Interpreter and Translator, such as the 'sequence'
system, with better code.
Currently, U4IA++ implements 'sequences' using the
following code (taken from U4IA.C);
/* Global Defines */
#define ATOM     1
#define INTEGER  2
#define STRING   3
#define SEQUENCE 4

#define FLOAT_4   1
#define FLOAT_8   2
#define INTEGER_4 3
#define INTEGER_8 4

/* Types */
typedef struct
{
    void *data;
    char type;
} object;

typedef struct
{
    void value;
    char size;
} atom;

typedef struct
{
    object *data;
    long length;
} sequence;

As you see, this is a well thought-out approach.
Sequences are arrays of object structures, which
contain
a 'data' member of type 'void*'.
This means 'data' can be set to a variable of any type
and size.
However, to do this memory must be allocated for the
member, and this, in my opinion, is too slow.
It does provide the benefit of dynamically allocating
space for each and every member of a sequence, so that
these members can be freed when no longer used.

I'd like to see an approach using Linked Lists.
This provides faster appending and prepending speeds
than the above shown approach.

Since U4IA++ is a superset of Euphoria, Euphoria
programmers can write programs for U4IA++ without
having to learn anything new.
And since this is the place Mike pointed out to me
that has the only collection of Euphoria programmers,
I'd like to release the U4IA++ source to you.

However, I would need to have confirmation that
someone that also knows C, will actually join me in
rewriting the code.


Mr. Craig,
I read somewhere that Euphoria was based on a thesis
of yours at the University of Toronto.
I based the thesis for my Ph.D. at the University of
Leuven on Interpreted programming languages.
"Computer Languages: Theory And Implementation" is the
title of my thesis. It compares compilers and
interpreters, and aims to describe a computer language
which has the simplest functional syntax conceivable,
has the advantage of being interpreted, yet runs at
speeds comparable to the ones of compiled languages.
I discussed an execution model which does not make use
of an run-time evaluations on a code part of the
program in order to execute it.
My solution was what is now known as JIT compiling.
ie. translating a program into machine code and
jumping to the starting address of the process.
I was surprised to see that Mike's U4IA++ code does
the same.
Yet Mike has an extra step added to the execution
process.
For portability, he developed a Machine Code-like
language called NightShade (c) (Native Interpreter
with Garbage-collected Hierarchical Trees
for Software Handled Application Direct Execution).
This is how it works.

You have a U4IA++ program.
This program is translated to NightShade.
And NightShade is translated to Machine Code.

This way, all that needs to be rewritten to support
other processors is the NightShade to Machine Code
translator.

Maybe Mr. Craig can implement something similar?
Since my belief is that Euphoria uses recursive
labeled opcodes which are weaved into a chain of
subsequent jumps as a means to execute interpreted
code.
This has being used in many Forth systems.
If so, a tip might be GCC's addressable labels. This
way an opcode which might have being written as:
__asm add dest,source;
__asm jmp next;

can be rewritten as:
add:
dest+=source;
goto **codes++;

which is more portable, considering the amount of GCC
ports.


I'll leave you with this, then.
Greetings, people!


Dr. Cage

__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices.
http://auctions.yahoo.com/

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu