More comments

Tanton Gibbs thgibbs@hotmail.com
Mon, 23 Nov 1998 12:47:27 PST


>> JVM - I still really have problems with the idea of compiling to JVM.
>> First, we would be dealing with a dynamic language that is in its
>> infancy.  Secondly, we would be dealing with a VM that was designed 
for
>> a specific language, one that is not ours.  Finally, there are many
>> differnt implementations of the JVM that don't conform to any 
standard,
>> even though SUN has a standard.  The court case will hopefully 
straigten
>> out MS, but there are still other VM manufacturers.
>
>I would think the JVM would be backwards compatible, so I don't see it
>at a major problem.
>
>We might have problems in that the JVM doesn't allow certain things to
>be done, or makes it really hard to do.  We really need someone who's
>looked at it more.  The Java Native Interface might help here.
>
>I don't know that there is a problem with different VMs, as long as
>there is a JVM for each platform that supports us.  Of course, it would
>be better if it didn't have to be downloaded.
There was a recent article in IEEE software that describes the downfall 
of the JVM.  It proposes that the JVM is outdated and not nearly as 
beneficial as it appears to be.  He says that there are many new ideas 
that will replace the JVM in the near future( notice that we are talking 
about the JVM, not the Java langauge ).  I agree with what he is saying 
and will happily retype the article and send it to all parties 
interested.

>> Here is what I recommend.  My idea is to have a platform independent
>> binary object file that could be further compiled to any platform.  
Not
>> the idea of Just In Time compiling, and not the "C" object file idea,
>> but a fully linked "slim binary" that could be compiled further to 
any
>> platform by the compiler.  Therefore, the programmer could tell the
>> intelligent editor to compile to Pentium II architecture or SUN SPARC
>> arcitecture and it will be able to do both from the same binary 
object
>> file.
>
>How does this sound.  You start with source files, one for each module.
>Then you compile each, getting compiled module files.  Then you can 
link
>a set of compiled module files.  The output is an aggregated
>platform-independent file, with inter-module optimisation if you
>desire.  Then we can implement subcompilers and VMs.

This idea is a good one.  Basically, it allows people to compile the 
binary further into machine code if desired, or to a VM if wished.

>I think we should definitely keep our options open though, as someone
>might want to write direct back-ends.
>
>I think the "Just-In-Time" compiling is pretty much the same as slim
>binaries.
Not really in my understanding( which is probably wrong ), I thought 
slim binaries are never compiled, they are simply loaded onto a VM and 
executed, but the execution time is decreased because the file is so 
small it takes less time to load.

>Yes, there is a problem here.  Libraries aren't really as much of a
>problem though, because you'd have to give the full name unless you 
used
>an Ada like if.

Right, but what if the A you declared from library C( C::A ) is not the 
correct type as used in the programmer's current program.  We can't be 
sure that the library is available at the time of programming, it only 
has to be available for linking.  What if someone is waiting on the 
library from the vendor who has already sent a specs sheet and then the 
programmer misuses the library variable A.

>Say you reference an A.  The compiler looks for an A,
>sees it somewhere.  The reference is hooked onto that A.  Then you
>declare an A.  It's hooked onto the wrong variable.  There are several
>options I can think of:
>
>(a) Rehook onto the local variable.  I'm not convinced this is best.  
If
>had lower nested classes using the higher a their semantics would
>change.
>(b) Give warnings that there is a conflict and do some default
>behaviour, or ask what to do.
>(c) Don't allow the same name to be used in nested classes as is used
>higher up.  Some languages do this.

I'm more in favor of a combination of a and b.  Some people have reasons 
to redeclare a variable that is used in a higer up class.  They should 
definately be warned about it, but they should not be prevented from 
doing it.

Tanton

>-- 
>     Matthew Tuck - Software Developer & All-Round Nice Guy
>                              ***
>       Check out the Ultra programming language project!
>              http://www.box.net.au/~matty/ultra/


______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com