Home Page


Forums


Downloads


Documents


No silver bullet,that's true.but how to overcome accidental complexity and what is it?we write code that has same logic for more and more platforms,can we write only once?(not only to popular platform,but embeded compute enviroment.)

C is a high compute model than assemble.it only extract some model(such as if,while,switch,function etc) from assemble's models.essentially,c introduce the concept of type that bind data and operate on it together.

C++(oo) base on taxonomy,through polymorphism and inherit compiler can operate on type,so we can expand type system of the language,and through this we can reuse type defined previously.unfortunatly,the criterion of classify is different in diff domain.so we must rewrite the type frequently.even this is no problem,we must write enough type to describe the world for others to reuse the types,but this is not feasible.

C++(generic programing) base on abstract concept,through this,we can identify a group of type that has some same properties.base this,we can write code for the concept not for cerntain type.on contrary,we can write type has some properties to reuse procedure written previously.this is a complementarity to OO.

So,strong typers consider the world whit types(types's instance).a program is a type,constructed by subtypes that constructed by sub-subtypes,and so on.On the other hand,we can not adjust the type's logic external(inherit can not,especially when we whish predigest the type).so,when the foundation has changed,we must rewrite all the top types.I think,this is the primary accidental complexity when port code to embeded compute enviroment or reusing model in some condition.

in a real program.we consider the world with requirement but not types.I acknowledge,use case in UML is a effecitve method to describle requirement,and AOP is a signalitily R&D on the programing methodology.how define requirement and follow these info to generate runable code from a logic repository written before this time?OMG use 'model' to describle the 'logic repository',and publish MDA standard to guide the impplement.later,I use the term 'model' follow the definition of MDA.

I think,requirement can described by infos and relation btween infos.the term info not only include data but include procedure and the state of compiling.it is same meaning with natural using.

In imperative language,every sentence,ervery compound,and even frameset is a model,we focus these modles on what info it processed,these info not only data but procedure(error handle,for example).indeed,in a given domain,we only care the infos and it's transformation.and the compiler care the location,space of the infos and the operates on infos.the transformation on infos will been found by compiler,go with models auto-merge and auto-retrenching.so we need a method to mark code and exposure state when compiling.through these step,we generate a program only need to define the requirement by give the infos and releations between them,of course,the required model must has been written.

On the other hand,we can seperate program with file system model,memory managerment model,frameset model and so on.and compiler will merge and retrench model to fit the requirement.in this processing,human don't need to consider the info's lifetime,scope,side-effect etc,these will been compute by the compiler,and generator effective c or assemble code from these description.

I name this method to IO(Information Oriented),and IOC(Information Oriented Compiler) is a trial to implement this idea.it define a group syntax base on C(or C++)?then,we can describ model through mark more infos(not only data,and code set,compiling state).base this,human only need to maintenance models and relation between them.IOL(Information Oriented Language) not a imperative language nor functional language and not only a implement of MDA,I name it a descriptive language(from implement,we can name it recursive substitution language).

This is a insignificant trial by me.and now,many factor is hazy to me.I wish I can try it with help of others and offer up my endeavor to the open source community. The last,english not my mother language,so in my description must has so many errors and this will puzzle readers,I wish the reader point these problem to help me. More...

masol.li@gmail.com


SourceForge.net Logo

Support This Project