comp.lang.ada
 help / color / mirror / Atom feed
From: "chris.danx" <chris.danx@ntlworld.com>
Subject: Re: Thoughts and Opinions or something like that
Date: Wed, 25 Apr 2001 00:27:47 +0100
Date: 2001-04-25T00:27:47+01:00	[thread overview]
Message-ID: <qZnF6.6960$Tv2.1033002@news6-win.server.ntlworld.com> (raw)
In-Reply-To: BkmF6.3976$QV4.336887@www.newsranger.com

Hi Ted,

> says...
> >will complete this soon, but i've been thinking my approach is flawed.  Not
to
> >say RISC is bad, but maybe it's too simplistic or lacks specific support for
> >features that'd make it A:more efficient and B:easier to program.
>
> My memory from my architecture courses in college (maybe I'm no expert, but I
> took that damn course 3 times...) on RISC is:
>
> o  RISC is not *supposed* to be easy to program. Its supposed to give compiler
> writers the minimal tools they will need. Programmers are supposed to use the
> compilers, not RISC. If you are writing assembly language RISC code, you are
> either writing a compiler, or you are fighting the system.
>
> o  What is efficient depends on the rest of the architecture; particularly on
> where the bottlenecks are. In this day and age, the bottleneck is in accessing
> memory. Thus you want a lot of register-to-register instructions, and memory
> accesses should be the last resort. Also, efficency requres that you
"pipeline"
> instructions, like on an assembly-line. Doing that, using hardware, without
> having one in-progress instruction screw up another, is very complicated. To
> make it achievable, you don't want to have lots of instructions, and you don't
> want the ones you have to do very much.
>
> Now the question you should be asking is, "Do these design goal make sense for
> my virtual machine?" Unless you have an eye on making it an acutal machine, or
> performing one-to-one transformations into the target platform's RISC code,
I'd
> guess the answer would be "no".
>

The reason i started with a RISC Architecture was that i originally planned to
have kind of generic assembly language that could be translated to native
hardware easily.  A smart conversion program would be able to figure out
improvements in CISC machines -- e.g. instead of loading from memory and adding,
fold them into one.  I don't really know if this smart optimisation would be
benefitial.  For RISC machines the translation would be fairly straight forward
i think.

Then i realised that one of the goals i wanted was interactive program
development.  This means i can supply sample arguments and watch what the
program does with it in a _virtual environment_ -- VE is primarily for safety
reasons (i'm not as competent at assembly as i'd like to be).  This is for later
but it occured to me that the VM approach would work for me on this.  If i could
avoid VMs i would, i planned way way back to not use them for portability, and
use a kind of hybrid description-assembly language, that could be optimised for
native platforms.


I'd looked at the JVM, but it's not a model i like.  It has too much dependance
on the stack, which is good for VM but not good for optimisations and other
things.  The crued method support also annoyed me.  I was planning to port Ada
to JVM before JGNAT became available.


*For simulation the VM seems to win.  For portability RISC seems to win.*


Then i thought about doing more an Architecture specific to the concepts i
wanted in the language.  When i read the post somewhere i thought since i have
little experience(just a CS Student who programs for uni and as a hobby) in
comparison to all the veterans out there, it seemed like a good idea to ask all
the folk out there.  Chicken and egg...


My plan for the language goes along a similar path.  Start with a simple
prototype, test it out, study results.  Build another prototype, test it out,
study results.  Build new prototype integrating main points of results and see
how they glue, test it out, study results, and keep going.  Of course planning
is important and if correctly done, many features may integrate without much
trouble.

The language testing will probably be done on the current RISC vm, but in the
interests of efficiency it might be best once the language is _stable_ for a
more specific VM, to be developed.  I like to plan ahead, hence this post.


Chris





  reply	other threads:[~2001-04-24 23:27 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-24 17:12 Thoughts and Opinions or something like that chris.danx
2001-04-24 21:35 ` Ted Dennison
2001-04-24 23:27   ` chris.danx [this message]
2001-04-25  7:40 ` Andrew Cooke
2001-04-25 10:42   ` chris.danx
2001-04-25 17:26     ` Warren W. Gay VE3WWG
2001-04-26 14:22     ` Marcin 'Qrczak' Kowalczyk
     [not found]   ` <3AE69665.63E362CD@info.unicaen.fr>
2001-04-25 10:51     ` chris.danx
2001-04-25 13:51       ` Jerzy Karczmarczuk
2001-04-25 13:52         ` chris.danx
     [not found]     ` <3AE6DAB3.899FF645@andrewcooke.free-online.co.uk>
2001-04-25 14:30       ` chris.danx
     [not found]       ` <3AE7E37B.F384DCDA@info.unicaen.fr>
2001-04-26  9:02         ` Play with virtual machines (Was: Thoughts and Opinions...) chris.danx
     [not found]         ` <3AE81234.267643AC@kfunigraz.ac.at>
2001-04-26 12:57           ` chris.danx
2001-04-27  2:14             ` Larry Elmore
2001-04-27  3:27               ` Goldhammer
2001-05-03 17:00                 ` singlespeeder
2001-05-03 17:03                   ` singlespeeder
2001-04-25  9:06 ` Thoughts and Opinions or something like that Tarjei T. Jensen
2001-04-25 12:12   ` Jeffrey M. Vinocur
2001-04-26  2:12     ` Nicholas James NETHERCOTE
2001-04-26 18:23     ` Keith Thompson
2001-04-25 12:09 ` Alain Fischer
2001-04-27 18:20 ` brian hiles
2001-04-28  1:27   ` Gregory Toomey
2001-04-28 21:34     ` chris.danx
2001-04-28 21:34   ` chris.danx
2001-04-30  8:31     ` Jon Beniston
2001-05-04  8:49 ` Biep @ http://www.biep.org
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox