Doing it better 2000-06-08 b ### > No, I've just not put in byte load and store. The Alpha doesn't have these > either. But that doesn't mean it can't manipulate bytes! ...because it has a defined endianness. > > On the contrary, sMite can certainly be universal but not be able to use > > every data representation. You'd call C universal, wouldn't you? > > Yes, and it (like a machine) can use every data representation. e.g. it > can manipulate bits quite happily. C certainly can't use every data representation. For a C program to read data from a MIN program, you either have to do some work in MIN to make sure everything is properly evaluated the way the C program likes it, or you have to reimplement much of MIN in C, including (in a pathological case in which the data is a lazy result of a program that has not yet been compiled) the dynamic compiler. However, I'd still call both C and MIN universal languages, because each of their favourite data models is suitable for just about every application. > > I think the crucial phrase here is 'works with existing languages'. It > > seems to me that you are not very interested in producing a portable > > platform for writing applications, but instead in providing portable > > dynamic compilation for C. This is an admirable goal, but it is not the > > one you have been purporting to pursue. How do you feel about this? > > I'm not producing a portable platform for writing anything. And in general > I certainly won't be able to support dynamic compilation of C; C isn't up > to the job. I'm providing a machine abstraction. Sorry, I used confusing words. You are allowing C programs to perform dynamic compilation, but not necessarily using C as the source language. I think of the source language as an excercise in understanding humans that has nothing to do with code generation. Do you think you could write a paragraph explaining exactly what sMite is for, from which it follows that your best option is to muddy the semantics in order to provide a more 'raw' interface to memory, and therefore to make it easier to inter-work with languages like C? When you talked about universality and such like I didn't get the same picture that you seem to have. Alistair