home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.umcs.maine.edu
/
2015-02-07.ftp.umcs.maine.edu.tar
/
ftp.umcs.maine.edu
/
pub
/
WISR
/
wisr6
/
proceedings
/
tex
/
baxter.bib
< prev
next >
Wrap
Text File
|
1993-09-13
|
13KB
|
324 lines
@incollection(Kant90a:synthesizing-finite-difference-programs,
key = "Kant",
author = "Elaine Kant and Fran\c{c}ois Daube and William MacGregor and Joseph Wald",
title = "{Automated Synthesis of Finite Difference Programs}",
booktitle = "Symbolic Computations and Their Impact on Mechanics,
PVP-Volume 205",
editor = "",
publisher = "The American Society of Mechanical Engineers 1990",
address = "New York, NY",
year = 1990,
note = "ISBN 0-791800598-0"
)
@incollection(Kant91a:scientific-program-synthesis,
key = "Kant",
author = "Elaine Kant and Fran\c{c}ois Daube and William MacGregor and Joseph Wald",
title = "{Scientific Programming by Automated Synthesis}",
booktitle = "Automating Software Design",
editor = "M. Lowry and R. McCartney",
publisher = "AAAI Press",
year = 1991
)
@article(Kant93a:sinapse-overview,
key = "Kant",
author = "Elaine Kant",
title = "{Synthesis of Mathematical Modeling Software}",
journal = "IEEE Software",
volume = 10,
number = 3,
pages = "30-41",
month = may,
year = 1993
)
@article(Baxter86a:transformational-model-of-maintenance,
key = "Baxter",
title = "{TMM: Software Maintenance by Transformation}",
author = "Guillermo Arango and Ira Baxter and Peter Freeman
and Christopher Pidgeon",
journal = "IEEE Software",
volume = 3,
number = 3,
month = may,
year = 1986,
pages = "27-39",
annotation = {Early paper characterizing formal types of maintenance, and
describing a successful porting project based on this perspective.}
)
@article(Baxter92b:design-maintenance-systems-overview,
key = "Baxter",
title = "{Design Maintenance Systems}",
author = "Ira D. Baxter",
journal = "Communications of the ACM",
year = 1992,
month = apr,
volume = 35,
number = 4,
pages = "73-89",
annotation = {Thesis synopsis. Suggests Design Maintenance rather
than Code Maintenance should be focus. Shows how
formal (transformational) model of software
construction can be used to generate design histories,
and also implicitly defines types of formal
maintenance deltas. Procedures for updating a
captured design history are sketched.}
)
@article(Neighbors84a:DRACO,
author = "James Neighbors",
title = "{The Draco Approach to Constructing Software from Reusable Components}",
journal = "IEEE Transactions on Software Engineering",
volume = "SE-10",
number = 5,
month = sep,
year = 1984,
annotation = {A shortened version of \cite{Neighbors80a:thesis-DRACO}}
)
@inproceedings(Baxter91b:using-abstract-parallelism,
title = "{Using Domain-Specific, Abstract Parallelism}",
booktitle = "Proceedings of Parallel-Code Generation Workshop at ICLP91",
author = "Ira D. Baxter and Elaine Kant",
year = 1991,
month = oct,
location = "San Diego, California",
publisher = "IEEE Computer Society",
annotation = {Describes capture and harness of parallel code in
Sinapse domain-specific code constructs.}
)
@book(Wolfram88a:mathematica-user-guide,
author = "Stephan Wolfram",
title = "{Mathematica: A System for Doing Mathematics by Computer}",
publisher = "Addison-Wesley Publishing Company, Inc.",
address = "Reading, Massachusetts",
year = 1988,
note = "ISBN 0-201-19334-5, QA76.95.W651988",
)
@book(Brownston85a,
title = "{Programming Expert Systems in OPS5:
An Introduction to Rule-based Programming}",
author = "Lee Brownston and Robert Farrell and Elaine Kant
and Nancy Martin",
publisher = "Addison-Wesley",
note = "ISBN 0-201-10647-7",
year = 1985
)
@article(Cytron91:computing-SSA-form-efficiently,
author = "Ron Cytron and Jeanne Ferrante and Barry Rosen
and Mark Wegman and Kenneth Zadeck",
title="Efficiently Computing Static Single Assignment Form and the
Control Dependence Graph",
journal=toplas,
volume=13,
number=4,
month=oct,
year=1991,
pages="451-490",
annotation = {Defines Static-Single-Assignment (SSA) form, useful
for many optimizations, in which a program assigns
values to each variable at most one time.
Conventional imperative programs, having multiple
assignments to the same variable (say, V), are translated to
SSA form by adding so-called "phi" functions at the beginning of
each basic block which definitions of V reach,
assigning the result of the phi function to a newly
generated variable, and repeating this process until only
only single assignments remain. Array/records are
handled by introducing "update(array/record,index/slot)"
value modifying-functions. [IDB: SSA form is also
described \cite{Alpern88a:detecting-equality-via-SSA},
having a kind of phi node which also depends on the
predicates controlling region exits, which seems more
sensible to me; this also seems to match dataflow language
compiler methods very well.] Minimal SSA form is that in which
the fewest phi nodes are inserted. This paper shows
how to accomplish the minimal SSA-conversion process
efficiently, by: (p. 463)
1) Computing a "dominance frontier" from
dominator trees derived from the control flow graph,
in worst-case time O(N+E^2). [Empirical evidence is
provided that this process is linear in practice.]
2) Using dominance frontiers, computing
locations of phi-functions assigning V_i for each
variable V in original program,
3) Renaming variables by replacing each
mention of a variable V with appropriate mention of V_i.
Detailed algorithms are provided, as well as proofs
that the dominance-frontier algorithm is correct and
that minimal SSA-form is achieved. Control dependences
\cite{Ferrante87a:program-dependence-graph-overview}
can be constructed from dominance
frontiers of the reversed control flow graph; these
can presumably be used to annotate control-dependent
SSA-nodes. So computing dominance frontiers is
important to building SSA-form. Lastly, the paper
describes how to translate from SSA-from back to
conventional form, by applying dead-code elimination
[possibly introduced by to-SSA from conversion, and/or
other optimizations] and allocation of variables to
phi-nodes by a coloring scheme. A pretty paper.
\par
Clearly SSA form is useful for optimizations; this
paper suggests that its efficient dominance frontier
computation be used to construct SSA from program
instances. The claim is made (page 478) "The
phi-functions have precise semantics..." but those
semantics are *not* given, to my disappointment.
\par
For transformation systems, it appears that
SSA-form internally is probably a good idea; this idea
is reinforced by the \cite{Alpern88a:detecting-equality-via-SSA} paper;
this would require the to- and from- SSA-from conversions.
For synthesis systems, SSA form looks useful, but only
the from-SSA form is needed.
An interesting question is whether AST-expressed rewrite rules
for imperative programs could be translated to SSA-form, allowing
convenience of external expression,
and accuracy/speed of internal application.}
)
@book(Pagan81a:formal-spec-primer,
title = "{Formal Specification of Programming Languages: A Panoramic Primer}",
author = "Frank G. Pagan",
publisher = "Prentice-Hall, Inc.",
address = "Englewood Cliffs, New Jersey 07632",
year = 1981,
note = "ISBN 0-13-329052-2",
annotation = {Primer on various techniques for formally
specifying programming language constructs. Covers BNF, attribute
grammars, Van Wijngaarden W-grammars, VDL, denotational semantics, and
axiomatic approaches. Pretty good.}
)
@phdthesis(Arango88a:thesis-domain-engineering,
title = "{Domain Engineering for Software Reuse}",
author = "Guillermo Arango",
school = "Department of Information and Computer Science, University
of California at Irvine",
month = "July",
year = 1988,
note = "ICS-RTP-88-27",
annotation =
{Original abstract was ``A precondition for reusability is the
existence of reusable information. There is a lack of systematic
methods for producing reusable information. We propose a method for
{\it practical domain analysis}, defined as the process of
identification, acquisition and evolution of information to be reused
in the construction of software systems for restricted classes of
applications, or problem-domains. The method for domain analysis is
presented in the context of a {\it domain engineering framework} that
views reuse systems as composed of two parts, a performance component
and a learning component. The methods for domain analysis realize the
learning component. Methods and representations are demonstrated in
the context of first-order reuse---the reuse of software components."}
)
@book(Partsch90a:transformation-textbook,
author = "Helmut A. Partsch",
title = "{Specification and Transformation of Programs}",
publisher = "Springer-Verlag",
year = 1990,
note = "ISBN 52356-1",
annotation = {Saw ref to this on page A-6 of June 1990 CACM.
\abstract{This book provides insight into formal specifications and
transformational development... Intended as a textbook...}
Given that it is done by Partsch, it ought to be pretty good.
Springer says it won't be available until Sept 23, 1990.}
)
@techreport(Genesereth92a:knowledge-interchange-format-reference,
author = "Michael R. Geneserth and Richard E. Fikes",
title = "{Knowledge Interchange Format Version 3.0 Reference Manual}",
institution= "Computer Science Department, Stanford University",
number = "Logic Group Report Logic-92-1",
month = jun,
year = 1992,
note = "",
annotation = {genesereth@cs.Stanford.EDU
This document defines a draft standard for knowledge
interchange. [There seems to be considerable controversy
in the KR community about whether the field is mature
enough to define such a standard according to Matt
Ginsberg of Stanford].
\par
\originalabstract{Knowledge Interchange Format (KIF)
is a computer-oriented language for the interchange of
knowledge among disparate programs. It has
declarative semantics (i.e., the menaing of
expressions in the representation can be understood
without appeal to an interpreter for manipulating
those expressions); it is logically comprehensive
(i.e., it provide for the expression of arbitrary
sentences in first-order predicate calculus); it
provides for the representation of knowledge about the
representation of knowledge; it provides for the
representation of nonmonotonic reasoning rules; and it
provides for the definiton of objects, functions and
relations.}
\par
KIF is essentially FOPC encoded in a LISP-like syntax.
As well as writing logical sentences, one can define
bounded sets (one that don't have Russell paradox
problems), relations over bounded sets, functions over
bounded sets (as a special kind of relation where the
equal prefixes of relation tuples imply equal last
values in the relation tuple), forward chaining rules,
and default inferencing rules.
\par
The idea is the knowledge is encoded in KIF for
transport. An application program would read a
KIF-encoded KB and "compile" it into internal
structures and procedures that use the KB knowledge
efficiently. By having an interchange format,
presumably KBs could be exchanged.
\par
IDB: how do I use something like KIF to encode
transformation system knowledge?
\par
There is an impressive array of additional well-respected
co-authors.
}
)
@techreport(Smith89a:KIDS-overview,
author = "Douglas R. Smith",
title = "{KIDS: A Semi-Automatic Program Development System}",
number = "",
month = oct,
year = 1989,
institution = "Kestrel Institute, Palo Alto, California 94304",
)
@incollection(Marcus88a:SALT-ka-for-propose-and-revise-systems,
author = "Sandra Marcus",
title = "{SALT: A Knowledge Acquistion Tool for
Propose-and-Revise Systems}",
booktitle = "Automating Knowledge Acquisition for Expert Systems",
editor = "Sandra Marcus",
publisher = "Kluwer Academic Publishers",
address = "Boston",
pages = "81-123",
year = 1988,
note = "",
annotation = {}
)
@book(Boose90a:knowledge-acquisition-foundations,
author = "J. Boose and B. Gaines",
title = "{The Foundations of Knowledge Acquisition, Vol. 4}",
publisher = "Academic Press",
address = "New York",
year = 1990,
annotation = {Summaries from Knowledge Acquisition Journal.
Covers set of issues in KA, and a number of papers on
KA issues for varying domains.}
)