What are atomatrices?
Access
the project at Sourceforge.net.An atomatrix,
a name given to a defined indivisable structure, constitutes one atomic
matrix unit. Many atomatrices bound
together can form an object, something perceptible.
Is an atomatrix the same as a metaobject?The main difference is
that the structural composition of atomatrices is significant while
with a mataobject the interface is significant. An atomatrix has
no interface, but the metaobject has a system dependant
interface. Several atomatrices could be the composition of a
metaobject if bound in such fasion.
What do you want to do with this project? Personally, I plan to use this
project as the basis environment to accomplish my mastery of Computer
Science. Most of the work I do on this project is to create all
the possible tools that may be needed at the time of the mastery
project. I want to optimize my time to complete the mastery of
Computer Science with the right tools. I feel I need a dynamic
compiler that can handle a clustered and distributed virtual
environment to accomplish this goal. The compiler is usable just
like many popular object orientated languages. I plan to write a
new program language, so I have not documentated all the previous
program language or
bytecode details except for what exists in source code.
How is the Atomatrix OSS a clustered system?Clustered systems share
resources. The Atomatrix OSS shares memory resources, mainly, to
accomplish asynchronus procedures. If compared to the metaobjects
of popular object orientated languages, we could look at how the
metaobject "presists" at a
low-level (automatically to the programmer) between threads or
processes. An atomatrix does not automatically presist or share
resources with other processes or threads. Instead, the program
can generate several atomatrices to create a metaobject that then
clusterizes across processes or threads. That setup allows the
system to manipulate atomatrices at a local level to a single thread or
process; thus, it does not have to slow down one process to wait for
other processes to update.
How is the Atomatrix OSS a distributed system?Distributed systems let many
process work together for a result. The processes usually do not
share resources as with clusterization. For example, one process
could send commands to several other processes located throughout a
network of computers that are local and far away to accomplish a
result. All the process that attempt to accomplish the result
only need to send or receive a portion of the entire process that each
is set to work on. The Atomatrix OSS is able to generate
distrubuted objects. Ionica is a framework that can generate and
distribute such objects.
What more can a dynamic compiler do in comparison to a
static compiler?Most source code compilers have a
predefined instruction set that the compiler uses for bytecode
assembly, yet the Atomatrix OSS allows itself to redefine the set of
rules and instruction codes to create the bytecode. The Atomatrix
OSS always compiles ("just-in-time") any program on demand that is not
already compiled for that instance the Atomatrix OSS uses, so the set
of rules and instructions can change. The Atomatrix OSS
continually optimizes the changes at an internal bytecode level.
Currently, the system uses a mixture of a
predefined instruction set and the dynamics of run-time redefintion of
the compiler. The usual way to redefine the compiler actions is
by common object orientated design techniques. The more
low-level method is to create a code library that interfaces with the
OSS and redefines or adds instruction sets. I have implemented
just enough of a dynamic compiler that current technology can handle
effectively. I plan to rewrite the compiler to a fuller dynamic
level. And, it remains fast because it only compiles the
essential parts of an object as needed.
-- Ballard, Jonathan 20040801
|