Mauro Marinilli's Self Designing Software
marinilli.com > Projects
Self-Designing Software
Imagine a software that is able to design itself, i.e. change its structural behavior
(not just mere runtime data, but its source code) while it is running.
This page introduces the subject of my PhD Thesis, at a very informal and practical way.
For the details and the academic rigor, see the end of this page.
Introduction
Challenged with representing a given problem or application domain in software, what we have done, almost since the beginning of modern computer science
is to represent the changing part of the problem using data and the rest of the application domain using code. We introduced the concept of
compile-time (or of a human that changes by hand the code or script in our programs, even if the script needs not to be compiled human intervention is needed anyway) and runtime (when we capture changing information through data, stored in a database or in files).
Some more details
to be completed.
What you can do with it
to be completed.
A Model-Driven Implementation
intro to be completed.
Referring to Fig.1 below, we have the standard layers of abstraction of software artifacts.
Self-Designing Software manipulates other software (or usually itself) on M1 level (program-level, i.e. classes in an OOP language).
figure 1. Abstraction Layers (from J.Bézivin)
figure 2. Runtime Environment
Artificial Intelligence and Self-Designing Software
I have used self-designing software to represent complex application domains in Artificial Intelligence.
to be completed.
Uses of Self-Designing Software
This approach is not only a nice academic research topic, this class of software systems has many uses. Here is a list:
- A powerful technique for extreme User Adaptation.
Just imagine to have software, (source code that gets compiled afterwards) to represent users, not just properties and values. That's what I call extreme adaptation.
- An alternative to Neural Networks.
- An approach to personalized deployment.
- Better problem representation.
Related Material
Home |
Books |
Publications |
Projects |
Miscellanous |
Contact Me
© 1998-2005 Mauro Marinilli