A Study on Meta-Programming Environments

アクセス数 : 666
ダウンロード数 : 129

今月のアクセス数 : 10
今月のダウンロード数 : 0
File
diss_ko884.pdf 46.4 MB 種類 : fulltext
Title ( eng )
A Study on Meta-Programming Environments
Title ( jpn )
メタプログラミング環境に関する研究
Creator
Tenma Takao
Abstract
In order to increase the productivity of software development, a programming environment which supports programming activities should be provided. Recently, an integrated programming environment which provides language-oriented facilities through an interactive user interface enables the higher level of productivity. However, an integrated environment should be constructed for each programming language.

Since a development of a software strongly depends on the application domain, a language and an environment which is adapted to the domain are needed. During a software development, many kinds of software objects are created such as requirements, designs, programs, test cases, development plans, and management information. A software object requires facilities which are specialized to its language. Furthermore, a programmer or a project requires a method to customize the environment. In order to satisfy these requirements, a meta-programming environment which provides a domainor language-oriented integrated environment from a description of a language and an application domain has been studied on.

A software is modified frequently by many reasons during its life, including development and maintenance, and its cost is very large. In particular, maintenance takes a major part of total software cost. Cost of modification is mainly caused by side-effects of a modification. When a programmer modifies a software he/she must correct a lot of side-effects. Most of these corrections may be routine works and also they waste creative ability of programmers.

Above discussion suggests that an automatic correction of side-effects will improve the productivity of a software development rapidly. However, no intensive studies on the modification support which aims to automate corrections of side-effects can be seen.

This dissertation discusses meta-programming environments, and presents an meta-programming environment MUSE which supports multiple-languages and provides higher describable meta-description language based on an object-oriented meta-model. Next, an approach to correct side-effects and a modification support system developed on MUSE for a type modification are proposed.

First, in Chapter 1, the background and motivation of the research are summerized.

In Chapter 2, studies on meta-programming environments are discussed and an approach taken in this dissertation is briefly explained.

In Chapter 3, a meta-programming environment MUSE, is presented. In a software development, many kinds of software objects are created. However, most of meta-programming environments can support only one language at one time. MUSE has been designed (1) to support multiple kinds of software objects including design languages and management information, (2) to provide facilities which are specialized to each kind of software objects, and (3) to provide highly describable meta-description language, in addition to provide benefits of an integrated programming environment.

In order to realize these goals, MUSE introduces an active meta-model based on an object-oriented concepts. A software object is presented as a collection of objects, and an object is an instance of a class to represent one of software components such as syntactic elements, declarations, design scheme, files, modules, and test cases. MUSE has multiple language knowledge and switches them for each software object. In addition to provide ordinary supported facilities, MUSE provides attribute propagation and static semantic checking based on attribute relations, design editing, management, and modification support.

In Chapter 4, a modification support system on MUSE is presented. First, the author discusses problems, treatment, and supporting facilities of a modification and proposes an approach taken in the system. The target of the system is to automate corrections of side-effects in a program caused by a type modification. Side-effects are detected by propagating type attributes on an internal representation of a program. When a side-effect is detected on an object, the modification support system corrects it by replacing the object which causes an inconsistency with another object as follows: (1) Find a class which resolves the inconsistency in a class hierarchy. (2) Instantiates the founded class. (3) Customize the instantiated object. (4) Replace the original objects with the customized object. This approach and the system are realized on meta-level.

Finally, Chapter 5 summarizes the results of the dissertation and some future directions are given.
Descriptions
Contents / p7
1 Introduction / p1
 1.1 Integrated Programming Environments / p1
 1.2 Meta Approaches in Software Engineering / p3
 1.3 Software Modification / p6
 1.4 Organization of Dissertation / p7
2 Overview of Meta-Programming Environment Studies / p9
 2.1 On Meta-Programming Environments / p9
 2.2 Construction of Language-Oriented Environments / p14
 2.3 Directions of Meta-Programming Environments Studies / p18
 2.4 An Approach to Development Meta-Programming Environment / p22
3 A Meta-Programming Environment, MUSE / p25
 3.1 Design Goals / p25
 3.2 System Architecture / p26
 3.3 Object-Oriented Meta-Model / p30
 3.4 Facilities Provided by MUSE / p38
 3.5 Remarks / p47
4 A Modification Support System on MUSE / p49
 4.1 On Software Modification Supporting Facilities / p49
 4.2 An Approach to Correction of Side-Effects / p55
 4.3 System Organization / p58
 4.4 System Behaviors / p65
 4.5 Remarks / p76
5 Conclusions / p81
NDC
Electrical engineering [ 540 ]
Language
eng
Resource Type doctoral thesis
Rights
Copyright(c) by Author
Publish Type Not Applicable (or Unknown)
Access Rights open access
Dissertation Number 甲第884号
Degree Name
Date of Granted 1990-03-26
Degree Grantors
広島大学