a machine learning approach to programming. agenda overview of current methodologies. disadvantages...

15
A Machine Learning A Machine Learning Approach to Approach to Programming Programming

Upload: marianna-booth

Post on 05-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

A Machine Learning Approach to A Machine Learning Approach to ProgrammingProgramming

Page 2: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

AgendaAgenda

Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP: An example. MLAP: Design MLAP: Advantages/Disadvantages Scope Conclusion

Page 3: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

Overview of software methodologiesOverview of software methodologies

SSAD: Here programming is procedural. The mapping between a real life object n its representation in a program is ambiguous.

OOAD: Here real life objects are mapped as classes in a program. Each class consists of attributes n methods.

Page 4: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

Disadvantages of other MethodologiesDisadvantages of other Methodologies

Testing n error fixing takes a very long time.

Enhancements are based on user feedback n usage. Collecting this information is a cumbersome process.

Usability issues are not given enough importance because of lack of information.

Optimization is difficult because of inadequate information.

Page 5: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

What is MLAP?What is MLAP?

In MLAP, a program encodes information about itself i.e. it is aware of its own design.

It is a natural consequence of the Object Oriented Methodology wherein real-life objects are represented as classes. In MLAP, each class is also aware of its construction n purpose.

This is an effort to take programming to a higher level wherein the program can fix its errors on its own n provide a better user experience i.e. minor defects r fixed by the program n the program helps a user make the best use of the application n runs based on the user’s preferences.

Page 6: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

MLAP- An ExampleMLAP- An Example

class A{ private: attribute1; attribute2; classinfo; //encodes functionality details

//of class A public: method1(); method2(); getclassinfo(); //retrieves details of class A};

Page 7: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

MLAP- An ExampleMLAP- An Example

Each class contains information about itself which is encoded as an attribute.

This information can be stored in predicates to record functionality.

Page 8: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

DesignDesign

EBL Engine

Subsystem Subsystem Subsystem

Knowledge BaseExpert System for Error

Processing n Optimization

Application

Page 9: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

DesignDesign

EBL Engine: This will learn how it is used in the execution environment. The engine uses Explanation Based Learning. Domain theory will be specific to the application.

Knowledge Base: This will store domain theory n any rules that the EBL generates.

ES for Error Processing n Optimization: This can be added for real-time error processing n fixing.

Page 10: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

AdvantagesAdvantages

Error fixing: Recording error info (steps traversed at the time of the error, point in code where error took place), real-time error processing will reduce time required to fix defects immensely.

Functionality/design enhancements: Recording code coverage n class usage for optimization n accurate error information will speed up development of new releases.

Page 11: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

AdvantagesAdvantages

Usability: Various aspects of usage will be recorded by different users for usability studies.

Customization based on user preferences: UI preferences ,order of functions, batch processing

based on user preferences n providing help whenever a user needs it will provide for a better user experience.

Page 12: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

DisadvantagesDisadvantages

Higher memory usage.

An enhancement to a Basic implementation.

Higher costs.

Performance overhead due to additional functions.

Page 13: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

ScopeScope

Project is still in its implementation stage.

The idea is to build an EBL engine with a knowledge base to support the application.

An expert system shell can be developed at a later stage for error processing.

Page 14: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

ConclusionConclusion

In MLAP, a program encodes information about itself n can enhance its own performance.

It can improve n speed up the process of error fixing.

It is aware of its functionality n design and works towards its enhancement.

It can provide a better user experience.

Page 15: A Machine Learning Approach to Programming. Agenda Overview of current methodologies. Disadvantages of current methodologies. MLAP: What, Why, How? MLAP:

ReferencesReferences

Artificial Intelligence-”Nilsson”

Expert Systems-”Peter Jackson”