UWE logoUniversity of the West of England Home Page - Peter Hale Home Page - SEEDS Site Map - Text Only Site Map


End User Programming - EndUserProgramming

End User Software Translation - End User Software Translation

Model-Driven Programming - Model-Driven Programming

Modelling - Modelling

Programming By Example - Programming By Example

Program Transformation - Program Transformation - More Information

SEEDS - Modelling - SEEDS - Modelling


Program Transformation

Program Transformation allows for writing in one representation or language, and translating to another. This is particularly useful for language independent programming, or for high level and End User Programming that can then be translated to a language more easily interpreted by computer systems.

So far this technique has been used for outputting Java, Cost Estimator (Java Based), HTML, XML, and SVG. Other options currently being considered are MetaL http://www.meta-language.net/ and Simkin http://www.simkin.co.uk.

A Flash movie explains how this is achieved step by step Flash Movie.

A taxonomy representation is translated into a computer model. Relationships can be conveyed to a software model that evaluates them. Information is translated from the taxonomy and is visualised in tree form in a decision support tool with the example of spar manufacture information. The visualisation of the information of a tree can be further translated into visualisation as an interactive diagram. The representation can be translated into differennt languages, to allow for language independence.

This diagram explains the transformation process.

This diagram explains the transformation process

Information about Modelling and Visualisation is available here - Modelling - http://www.cems.uwe.ac.uk/amrc/seeds/Modelling.htm.

Figure 1 - Translation Process

The process is also explained here - User Driven Programming, and here - Translation and Aspect-Oriented Programming, and Translation for De-abstraction.

In 'End-User Software Engineering Position Paper' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1092 Henry Lieberman of MIT Media Laboratory explains the goal of research into enabling end-user programming -

"as much as is possible, we should make this process as automatic as we can, though the use of program transformation, dependency maintenance, automated reasoning, mixed-initiative interfaces, visualization, and machine learning. Otherwise, I think it will be too much overhead for a non-expert user themselves to keep track of the myriad facets that software development entails. If we succeed in this, people will become End-User Software Engineers without their even realizing it."

Program Transformation Research

Collaboration, simulation and modelling have been investigated to assist in determining the requirements for future research in modelling of problems. Thomson et al. (2001) also investigated alternative approaches to software development, which give users greater involvement, this partially automates the process of user interface creation by providing a means to manage a hypermedia concept map. Huhns (2001) and Paternò, (2005) both explain that alternatives to the current approach to software development are required. This should allow translation from a model-based representation of software to the actual software. This can involve automatically producing software for a Semantic website from visual representations of the problem. The core of this modelling infrastructure is automated generation of models created with World Wide Web Consortium (W3C) standards based languages, and the visualisation of information represented in such W3C standard ways. Modelling languages such as Alloy (2007) explained by (Wallace, 2003) and LPA VisiRule 1.0 (2007), can be used as an interface to an End-User Programming environment. Transformation from a model building environment to program code has been investigated by (Gray et al., 2004). Experienced programmers can build a modelling environment that can then be used by non programmers to create models or solve other software problems. Hanna (2005) uses this approach and makes use of a declarative functional language Haskell (Hudak et al., 2007) to build his user environments. MathML (World Wide Web Consortium Math Home, 2007) can assist in this process by providing an open representation of functions as XML (eXtensible Markup Language). Functions entered by the model developer can then be translated to this open representation and translated to programming languages and/or read by programming languages. The representation of functions and information can usually be illustrated diagrammatically. Guibert et al. (2004) explain and expand on Smith's work with an example demonstrating how numbers fail to reveal the concept behind them. This is why it is important to provide translation capabilities between different representations of modelling problems to visualise them in the context the user expects. The example is a numerical representation of a triangle. This representation is 'fregean' because it does not show the concept of a triangle. Next to this is a diagram of the triangle that does show the concept. This is the theory behind the conversions to interactive SVG (Scalable Vector Graphics) and tree based representations of information and functions demonstrated here.

References

Huhns, M. (2001) Interaction-Oriented Software Development. International Journal of Software Engineering and Knowledge Engineering, 11 259-279.

Paternò, F. (2005) Model-based tools for pervasive usability. Interacting with Computers 17 (3), 291-315.

Alloy http://alloy.mit.edu/.

Wallace C. (2003) Using Alloy in process modelling. Information and Software Technology, Vol. 45 (15), 1031-1043.

LPA VisiRule 1.0 http://www.lpa.co.uk/vsr.htm.

Gray, J., Zhang, J., Lin, Y., Roychoudhury, S., Wu, H., Sudarsan, R., Gokhale, A., Neema, S., Shi, F., Bapty, T., 2004. Model-Driven Program Transformation of a Large Avionics Framework - http://www.cis.uab.edu/gray/Pubs/gpce-2004.pdf - Third International Conference on Generative Programming and Component Engineering GPCE.

Hanna, K., 2005. A document-centered environment for Haskell. In: 17th International Workshop on Implementation and Application of Functional Languages IFL 2005 Dublin, Ireland - September 19-21 2005.

Hudak, P., Hughes, J., Jones, S. P., Wadler, P., 2007. A History of Haskell: being lazy with class. In: The Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III) San Diego, California, June 9-10, 2007.

W3C Math Home - http://www.w3.org/Math/Overview.html - What is MathML?

Guibert N, Girard P, Guittet L, (2004), Example-based Programming: a pertinent visual approach for learning to program, University of Poitiers, Proceedings of the working conference on Advanced visual interfaces - Pages: 358 - 361 - ISBN:1-58113-867-9.

Related Information

Dagstuhl Seminar End - User Software Engineering Article - Ezine.

Dagstuhl Seminar Post 1 - End-User Software Engineering - Part 1 - http://userdrivenmodelling.blogspot.com/2007/07/dagstuhl-seminar-end-user-software.html.

Dagstuhl Seminar Post 2 - End-User Software Engineering - Part 2 - http://userdrivenmodelling.blogspot.com/2007/07/dagstuhl-seminar-end-user-software_26.html.

Dagstuhl Seminar Post 3 - End-User Software Engineering - Part 3 - http://userdrivenmodelling.blogspot.com/2007/07/dagstuhl-seminar-end-user-software_27.html.

Dagstuhl Seminar Post 4 - Information about linking Meta Programming Model Driven Programming, Service Oriented Architecture and UML for End-User Programming - http://userdrivenmodelling.blogspot.com/2007/07/dagstuhl-seminar-end-user-software_28.html.

Drag and Drop Programming - Example and Information - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#DragandDropProgramming.

Drag and Drop Programming - Post - http://userdrivenmodelling.blogspot.com/2007/08/drag-and-drop-programming.html.

End User Programming - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.

End User Programming - Example Interfaces - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm#ExampleInterfaces.

End User to Software Translation - http://www.cems.uwe.ac.uk/~phale/#EndUsertoSoftwareTranslation.

Programming with XML - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm#ProgrammingwithXML.

Research in Modelling Simulation and Collaboration Over the Web - http://ezinearticles.com/?Research-in-Modelling-Simulation-and-Collaboration-Over-the-Web&id=339044.

Semantic Web and Translation - http://www.cems.uwe.ac.uk/~phale/#SemanticWebandTranslation.

Semantic Web Modelling - http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm.

Aspect Oriented Programming

AOSD.net - http://aosd.net/ - aosd.net is home to the annual Aspect-Oriented Software Development conference and is intended to provide a comprehensive source of information about AOSD.

AspectXML - This research is especially useful where software functions can't be neatly attached to particilar objects or nodes in a hierarchy. These are known as cross-cutting concerns as they may affect several nodes.

These are useful links to an renowned researcher and writer on XML, XSLT, XUL, SVG, Java, and on the general direction of software and web research.

Kurt Cagle - Kurt Cagle - Web site

Kurt Cagle - Kurt Cagle - Article - Thoughts on Complexity

M. David Peterson - User Driven Programming and AspectXML - O'Reilly Blog.

Russ Miles - O'Reilly Blog - AspectXML, AspectJ, Java.

Russ Miles - SOA Ranch - Service-oriented architecture.

Russ Miles - UML Ranch - Unified Modeling Language.

The AspectXML site is being developed by this team also including M. David Peterson, and Russel Miles

Explanation

AspectXML - Article - http://www.oreillynet.com/xml/blog/2005/09/part_3_assets_atom_feeds_and_a.html - [Part 3] Assets, Atom Feeds, and AspectXML - The Triple Threat of Web Development? - O'Reilly XML.com - M. David Peterson.

Community site

AspectXML - http://www.aspectxml.org/ - Community Open Source Project.

Meta-Programming, Translation, Semantic Web

British Computer Society - Ubiquitous computing: experience, design and science - Grand Challenges in Computing.

British Computer Society - 2006 Grand Challenges Conference: Blue Skies Research over 15 years - Grand Challenges Conference.

EXist - http://exist.sourceforge.net/ - Open Source Native XML Database.

Google Web Toolkit - XML.com - Google Web Toolkit - Brusce Perry - Translates from Java to Ajax - Highly Interactive Web Pages can be good user interface for User Driven Programming.

Jeffrey G. Gray, Assistant Professor, University of Alabama at Birmingham - Home Page - Department of Computer and Information Sciences - Software Composition and Modeling Laboratory.

Jetbrains - Meta Programming System - http://www.onboard.jetbrains.com/is1/articles/04/10/lop/ - Language Oriented Programming: The Next Programming Paradigm - Sergey Dmitriev.

Jetbrains - Meta Programming System - http://www.jetbrains.com/mps/ - MPS is an implementation of Language Oriented Programming.

Meta Programming - http://en.wikipedia.org/wiki/Metaprogramming - Wikipedia.

MetaL - http://www.meta-language.net/ - MetaL: An XML based Meta-Programming language.

Model-Driven Program Transformation of a Large Avionics Framework - http://www.cis.uab.edu/gray/Pubs/gpce-2004.pdf - Jeff Gray, Jing Zhang, Yuehua Lin, Suman Roychoudhury, Hui Wu, Rajesh Sudarsan, Aniruddha Gokhale, Sandeep Neema, Feng Shi, and Ted Bapty - Third International Conference on Generative Programming and Component Engineering GPCE.

the Model Driven Semantic Web - 1st International Workshop on the Model-Driven Semantic Web (MDSW2004) - Enabling Knowledge Representation and MDA® Technologies to Work Together.

OpenLaszlo - http://www.laszlosystems.com/developers/OpenLaszlo - Developer Zone.

Orbeon - http://www.orbeon.com/ - Orbeon XForms Presentation Server.

program-transformation.org - Home Page - Program-Transformation.Org: The Program Transformation Wiki.

program-transformation.org - Program Transformation - Program-Transformation.Org: The Program Transformation Wiki.

program-transformation.org - Model Transformation - Program-Transformation.Org: The Program Transformation Wiki.

Rats - Softpedia - Rats! is an easily extensible parser generator for C-like languages.

Service-Oriented Architecture - XML.com - Service-oriented architecture - Hao He.

Service-Oriented Architecture - Wikipedia - Service-oriented architecture.

Service Reuse - Fact or Fiction? - http://www.oreillynet.com/xml/blog/2006/10/service_reuse_fact_or_fiction.html - David A. Chappell - October 10, 2006.

Simkin - http://www.simkin.co.uk/ - A high-level lightweight embeddable scripting language which works with Java or C++ and XML.

Translation and Aspect-Oriented Programming

The diagram shows a plan for weaving Aspect-Oriented Programming http://aosd.net/ into translation that are provided for end-user-computer communication. Aspect-Oriented Programming can be used where certain tasks or properties do not fall within a natural hierarchy. These are called Cross-Cutting Concerns http://en.wikipedia.org/wiki/Cross-cutting_concern, these Cross-Cutting Concerns could be tasks the program needs to perform such as providing printing or security. This same technique could also be used for attributes that the program is to model for example if the program is to model an aircraft wings, a user with sufficient computer literacy skills can model the representation of the wing as a hierarchical diagram. The user can specify relationships between these items that make it possible to make calculations and decisions. For this model some parameters such as efficiency, weight and cost might not fit well in this hierarchical representation. So these parameters could be weaved into the program as cross-cutting concerns in a similar way to the computing parameters.

Once all parameters are weaved into the program it can be translated from a format most suitable to visualisation and user interaction (e.g. OWL Web Ontology Language) to users into a computer language such as Java for implementation. The program would calculate results, and these could be translated back to the user. The results would be fed back in the language used for user interaction and visualisation. The results could be visualised using stylesheets and interactive software, and where useful translated further into other kinds of representations other than trees e.g. SVG (Scalable Vector Graphics) diagrams and graphs.

The diagram shows a plan for weaving Aspect-Oriented Programming http://aosd.net/ into translation that are provided for end-user-computer communication. Aspect-Oriented Programming can be used where certain tasks or properties do not fall within a natural hierarchy.

Highly interactive web pages that act like programs to provide a user interface can be used to provide an interactive user driven programming environment.

Useful Publications

Aspect-oriented programming: Introduction, Elrad, T., Filman, R. E., Bader, A. 2001, Communications of the ACM, 44, 10, 28-32 - http://portal.acm.org/citation.cfm?id=383853&dl=ACM&coll=portal&CFID=11111111&CFTOKEN=2222222.

Communications of the ACM, Volume 44, Issue 10 2001 - http://portal.acm.org/toc.cfm?id=383845&type=issue.

Does aspect-oriented programming work?, 2001, Murphy G C, Walker R J, Baniassad E L A, Robillard M P, Lai A, Kersten M A, Communications of the ACM, Volume 44 Issue 10 (October 2001) Pages: 75 - 77, ISSN:0001-0782 - http://portal.acm.org/citation.cfm?id=383862&coll=portal&dl=ACM.

Generative Programming - Generative Programming - Methods, Tools, and Applications - Krzysztof Czarnecki and Ulrich W. Eisenecker - Addison-Wesley, June 2000.

Getting started with ASPECTJ, Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold W, 2001, Volume 44 Issue 10 (October 2001), Pages: 59 - 65, ISSN:0001-0782.

Interaction-Oriented Software Development 2001 Huhns M N, International Journal of Software Engineering and Knowledge Engineering 11 3 259-277.

Model-based tools for pervasive usability, 2005, Paterno Fabio, Interacting with Computers 17, 291-315.

Model-Driven Program Transformation of a Large Avionics Framework - http://www.cis.uab.edu/gray/Pubs/gpce-2004.pdf - Jeff Gray, Jing Zhang, Yuehua Lin, Suman Roychoudhury, Hui Wu, Rajesh Sudarsan, Aniruddha Gokhale, Sandeep Neema, Feng Shi, and Ted Bapty - Third International Conference on Generative Programming and Component Engineering GPCE.

Probabilistic Pseudo-generative Cost Modelling Through Virtual Template Propagation 2001 Marsh Rob Terry Hill, J Scanlan, Martin Dunkley, Paul Cleevely CEAS Conference on Multidisciplinary Aircraft Design and Optimization June 2001 Maternushaus Koln, Germany.

Conferences - recent and future

20th IEEE/ACM International Conference on Automated Software Engineering - http://ase.cs.uni-essen.de/ase/past/ase2005/ - Long Beach, California, USA, November 7-11, 2005 - papers, demonstrations, tutorials.

21st IEEE/ACM International Conference on Automated Software Engineering - http://www.ase-conference.jp/ - Tokyo, JAPAN, September 18-22, 2006 - papers, demonstrations, tutorials.

Functional and Logic Programming - FLOPS 2006 - Eighth International Symposium - http://nicosia.is.s.u-tokyo.ac.jp/FLOPS2006/ - 24-26 April 2006 - Fuji Susono, Japan - Next FLOPS will be held in Spring 2008.

IEEE Symposium on Visual Languages and Human-Centric Computing http://www.cmis.brighton.ac.uk/vlhcc/ - 2006 - Brighton, UK.

International Workshop on Semantic Modelling and Model-Driven Architecture - SMMDA 2006 - 11 July 2006.

Jena User Conference - Presentations and Papers - First Jena User Conference - Proceedings.

Home Pages

SEEDS Page - SEEDS Home Page

Peter Home Page - Peter Hale Home Page



Made with Notepad Valid XHTML Valid CSS

Terms and conditions
   Privacy policy    Accessibility

© 2005 University of the West of England, Bristol (except acknowledged extracts from newspapers, journals, etc)