Showing posts with label Meta-Programming. Show all posts
Showing posts with label Meta-Programming. Show all posts

Wednesday, January 09, 2008

Code Generation 2008 conference

Code Generation 2008 - http://www.codegeneration.net/conference/index.php - 25th-28th June 2008 - Cambridge, UK - A growing number of developers are using or planning to use model-based code generation - are you ready for the next evolutionary step in software? - WHO'S CG2008 FOR? - CG2008 is for software practitioners and those with a stake in the future of their development organisation.

Final Call for Speakers:
Submission Deadline: Friday January 18th 2008

We are seeking high-quality session proposals covering topics on
model-driven software development (including Software Factories,
Model-Driven Architecture (MDA), Domain-Specific Languages (DSLs),
Generative Programming, Software Product Lines and related areas).

Sessions could cover topics such as:
- Code Generation and Model Transformation tools and approaches
- Defining and implementing modelling languages
- Domain Analysis and Domain Engineering
- Language evolution and modularization
- Meta Modelling
- Runtime virtual machines versus direct code generation
- Tool and technology adoption

Real-world case studies based on any aspect of these and related
approaches are particularly encouraged although more theoretical
sessions are also welcome.

Accepted speakers have their conference fees waived. We will also be
offering a discount on conference fees to non-speaking academic
participants. More information will be available when the programme goes
online on 25th February.

Visit
http://www.codegeneration.net/conference/index.php for more
details on the event or contact me for more information.

What people said about our previous conference - Code Generation 2007:

"I've been working in domain-specific modelling for a dozen years ...
and in this time this has been the highest-quality conference on this
topic that I've been to - and I've been to a few."

"The combined-for that matter, individual-expertise present was
remarkable, and presented a tremendous opportunity for knowledge exchange."

"The presentations were all top quality, making it often difficult to
decide between the concurrently running sessions. The wealth of MDD
knowledge present and the event was impressive, not only from the
presenters, but from the other delegates as well."

Best wishes for a happy and successful 2008.


I have an Events page at which has mainly computing and aerospace events listed and linked to - http://www.cems.uwe.ac.uk/~phale/Events.htm.

Tuesday, August 14, 2007

Systems Enginering and Simulation

The intention of this project is to create a way for non programmers to create software in high level open standards based declarative languages built with Semantic Web technologies. The reasoning behind this is that if Semantic Web languages can represent data, they can also represent programs, as programs are just a specialised kind of data. The non programmer would program with this declarative language by means of a diagrammatic visualisation.


Many people would like to make greater use of computer technology but are hampered by the need to learn programming languages if they are to fully interact with software. Instead they are limited to the use of certain generic features that are provided for them. A further constraint is the cost of software, and for this project we will develop free software and encourage a community of end-user developers, and modellers.


We aim to provide Semantic Web based modelling and simulation tools that are usable and programmable by end-users. This is in order to ease the difficulties involved in translating requirements between software experts and domain experts. Our research will develop, extend, and combine existing research in provision of web page development tools for end-users, meta-programming, and web based modelling and simulation tools. The diagram below explains the research area we intend to explore.


This research will be part of co-ordinated efforts to enable end-user programming for knowledge management (including e-learning), modelling and decision support, and simulation. Therefore the research will concentrate mainly on translation for simulation and enabling non programmers to create web-based simulation systems. This is illustrated in the figure below.


End User Programming Diagram - Research Aim - Illustrating need to translate between human and computer and the increase in amount of calculation between domains of knowledge management, decision support and simulation. The increase in complexity is of calculation in the direction from knowledge management to decision support to simulation, and of information in the other direction from simulation to decision support to knowledge management.


The main research area will be the interface between Meta-Programming, Modelling and Simulation, and Semantic Web Model Creation, shaded in the figure below. This could allow end-users to develop their own Semantic Web based simulation and modelling tools using a graphical visual interface.


End User Programming Diagram - Research Aim - Illustrating need to translate between human and computer and the increase in amount of calculation between domains of knowledge management, decision support and simulation. The increase in complexity is of calculation in the direction from knowledge management to decision support to simulation, and of information in the other direction from simulation to decision support to knowledge management.


A simple illustration of the techniques that can be used to further this research area is a demonstrator we completed for meta-programming of XML (eXtensible Markup Language) based drag and drop trees. Python is used as a translator between the XML representation of the trees and interactive graphical representations of them. This allows open standards platform independent end-user programming. Such techniques could be used with other Semantic Web based information representations based on languages and structures such as XML, RDF (Resource Description Framework), and OWL (Web Ontology Language), and provision of other controls. These could then be used as graphical components of a simulation system made available over the web. This demonstrator furthered the research of Anderson and Krause [1]. Whiteside also used XML based meta programming to allow end user programming of games with Simkin [2]. Semantic languages provide a higher level declarative view of the problem to be modelled.


Standardisation in XML/RDF enables use of declarative rules for web services. Rules play an important role in artificial intelligence, knowledge-based systems, and for intelligent agents. To allow information sharing and reuse, interoperability, and collaboration an ontology centric approach can be used [3]. Ontologies are defined by Gruber in [4], and he also examines how equations and quantities can be represented in an ontology. Extending such work can enable functions and calculations to be represented in OWL and called by a Semantic Web based programming language.


References


[1] Sample code using drag & Drop with a tree - http://lists.wxwidgets.org/archive/wxPython-users/msg11332.html - Drag and Drop contributed by Sam Anderson, reposted by Dirk Krause.


[2] Simkin - http://www.simkin.co.uk/Links.shtml.


[3] COSMOA: An Ontology-Centric Multi-Agent System For Coordinating Medical Responses To Large-Scale Disasters. Bloodsworth, P., Greenwood, S., 2005. AI Communications Vol 18 (3) Agents Applied in Health Care pp 229-240.


[4] Toward Principles for the Design of Ontologies Used for Knowledge Sharing - Gruber T. R. 1993, http://www2.umassd.edu/SWAgents/agentdocs/stanford/onto-design.pdf - In Formal Ontology in Conceptual Analysis and Knowledge Representation, edited by Nicola Guarino and Roberto Poli, Kluwer Academic Publishers, in press. Substantial revision of paper presented at the International Workshop on Formal Ontology, March, 1993, Padova, Italy. Available as Technical Report KSL 93-04, Knowledge Systems Laboratory, Stanford University.


Other Pages on this subject


http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm.


http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm.


http://www.cems.uwe.ac.uk/amrc/seeds/softwareengineering.htm.

Tuesday, May 22, 2007

Meta-Languages and their usefulness for User Driven Programming

Meta-languages describe the structure of information to enable this information to be searched more easily by software systems. XML (eXtensible Markup Language) has emerged as the most important of these Meta-languages and is the base for many languages. XML standards are important for the Semantic Web, many computer based reasoning systems, and for communication between different software applications. Alternative representations of information should not be used in any system being developed now unless the author has examined XML based standards and found them insufficient. Such a situation is highly unlikely. Any software system that does not use these standards will have difficulty communicating with other software systems. Use of a generic standard keeps open the possibility of communication with the widest possible range of other software systems. Use of a domain specific standard targets the communication to a particular domain.

Extensible Markup Language XML is an important standard in the development of ontologies. This language allows for the construction of text documents in which the relationship between concepts is represented. Because it is an accepted standard it is possible to use XML on any type of computer. Further developments such as Resource Description Framework RDF add a layer of standardisation of semantics, above the standardised syntax of XML. It is also possible to represent diagrammatic, and graphical information using a variety of XML called Scalable Vector Graphics (SVG).

These open standard languages can be used for developing the program code of models. It is proposed that software and information represented by the software, be separated but represented in the same open standard searchable way. Software and the information it manipulates are just information that has different uses, there is no reason why software must be represented differently represented differently from other information. So XML can be used both as the information input and output by the application, and for the definition of the model itself. The model can read or write information it represents, and the information can read from or write to the model. This recursion makes 'meta-programming' possible. Meta programming is writing of programs by other programs. The purpose of this is to provide a cascading series of layers that translate a relatively easy to use visual representation of a problem to be modelled, into code that can be run by present day compilers and interpreters. This is to make it easier for computer literate non-programmers to specify instructions to a computer, without learning and writing code in computer languages. To achieve this, any layer of software or information must be able to read the code or the information represented in any other. Code and information are only separated out as a matter of design choice to aid human comprehension, they can be represented in the same way using the same kinds of open standard languages.

Meta Language Links

Dmitriev, S. (2004). Language Oriented Programming: The Next Programming Paradigm, http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.

Mens, K., Michiels, I., Wuyts, R. (2002). Supporting Software Development through Declaratively Codified Programming Patterns, Expert Systems with Applications, 23: 405-413.


I am a Researcher in the final year of my PhD. I specialise in applying Semantic Web techniques. My current research is on a technique of 'User Driven Modelling/Programming'. My intention is to enable non-programmers to create software from a user interface that allows them to model a particular problem or scenario. This involves a user entering information visually in the form of a tree diagram. I am attempting to develop ways of automatically translating this information into program code in a variety of computer languages. This is very important and useful for many employees that have insufficient time to learn programming languages. I am looking to research visualisation, and visualisation techniques to create a human computer interface that allows non experts to create software.

I am a member of the Institute for End User Computing - http://www.ieuc.org/home.html.

My Home Page is http://www.cems.uwe.ac.uk/~phale/.

A web page for this article is at http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory.htm.