This paper presents an overview of the Cedar programming environment, focusing primarily on its overall structure: the major components of Cedar and the way they are organized. Cedar supports the development of progra...
详细信息
ISBN:
(纸本)0897911652
This paper presents an overview of the Cedar programming environment, focusing primarily on its overall structure: the major components of Cedar and the way they are organized. Cedar supports the development of programs written in a single programminglanguage, also called Cedar. We will emphasize the extent to which the Cedar language, with runtime support, has influenced the organization, comprehensibility, and stability of Cedar.
This paper presents a simple programming system based on a clear separation of value-oriented programming and object-oriented programming. The value-oriented component is a conventional functional programminglanguage...
详细信息
ISBN:
(纸本)0897911652
This paper presents a simple programming system based on a clear separation of value-oriented programming and object-oriented programming. The value-oriented component is a conventional functional programminglanguage. The object-oriented component is based on a model of objects and values connected by relations, and on production system-like rules that determine the alteration of these relations through time. It is shown that these few basic ideas permit simple prototyping of a software development environment.
This paper investigates the use of abstract recursive data structures and operations in the implementation of a structured program editor. The value-oriented semantics of the proposed constructs simplify the implement...
详细信息
ISBN:
(纸本)0897911652
This paper investigates the use of abstract recursive data structures and operations in the implementation of a structured program editor. The value-oriented semantics of the proposed constructs simplify the implementation of important features such as version control and an unbounded undo operation. Since the constructs can be implemented efficiently, their use in the structured program editor does not significantly affect its performance.
The ability to generate language-based editors depends on the existence of a powerful, language-independent model of editing. A model is proposed in which programs are represented as attributed abstract-syntax trees w...
详细信息
ISBN:
(纸本)0897911652
The ability to generate language-based editors depends on the existence of a powerful, language-independent model of editing. A model is proposed in which programs are represented as attributed abstract-syntax trees with an associated relational database. Relations can depend on the state of the attributed tree, and attributes can depend on the values in relations, provided there are no circular dependencies. The power and the limitations of relational operations are demonstrated with respect to the support of staticsemantic checking, anomaly detection, an interrogation facility, and the ability to define alternate views of a program. The advantages of the hybrid systems over both the purely relational and purely attribute-based systems are presented, and a prototype implementation of an editor generator is discussed. New algorithms are given for query evaluation and incremental view updating motivated by the efficiency requirements of interactive editing under the defined model.
It has been claimed that logic programming offers outstanding possibilities for new concepts in programmingenvironments. But there has been little progress reported in the field of logic programmingenvironments. Thi...
详细信息
ISBN:
(纸本)0897911652
It has been claimed that logic programming offers outstanding possibilities for new concepts in programmingenvironments. But there has been little progress reported in the field of logic programmingenvironments. This summary describes our current work on a generic software engineering shell for logic programming. We use reflection and the amalgamation of meta-level language with the object level to express and support the incremental character of specifying/programming. An important facet of the shell is that we formalize some aspects of programming methodology and provide heuristics for avoiding errors. These heuristics formalize what experienced programmers may already know. The shell bears similarities to an expert system since it has explanation mechanisms and provides programming-knowledge acquisition. Currently, it supports single user Prolog programming and runs in C-Prolog. The shell is generic in that it provides support for activities ranging from artificial intelligence programming to formal specification development.
An approach to library organization for block-structured languages is given that avoids corrupting such structuring with the introduction of 'modules', 'units', or 'packages'. The scheme involv...
详细信息
ISBN:
(纸本)0897911652
An approach to library organization for block-structured languages is given that avoids corrupting such structuring with the introduction of 'modules', 'units', or 'packages'. The scheme involves retentive block structuring and the preservation of partially compiled programs as compiler continuations. Its chief advantage is language simplicity. Its chief disadvantage is, at the present, its proclivity towards redundant file storage. This can possibly be eliminated by adopting a computational model using a one-level store.
This paper discusses a language and associated environment for building rule-based programs. The language and environment are encapsulated in a system we call ORBS (Oregon Rule Based System). In tune with this confere...
详细信息
ISBN:
(纸本)0897911652
This paper discusses a language and associated environment for building rule-based programs. The language and environment are encapsulated in a system we call ORBS (Oregon Rule Based System). In tune with this conference, our focus will be on the interplay between language and environment design. However, we will broaden this somewhat to include design constraints placed by our program development model as well. Instead of attempting a complete design rationalization of ORBS, we will concentrate on design decisions that highlight the coupling between language, environment, and development model.
The Cedar environment provides a variety of somewhat novel integration mechanisms;they are the subject of this paper. We discuss Cedar from the viewpoint of a tool developer, discussing both 'rights' and '...
详细信息
ISBN:
(纸本)0897911652
The Cedar environment provides a variety of somewhat novel integration mechanisms;they are the subject of this paper. We discuss Cedar from the viewpoint of a tool developer, discussing both 'rights' and 'responsibilities';in building a new tool. We describe integration in Cedar from the 'ground up'. First, we discuss the Cedar programminglanguage and its effect on integration;the main point here is that in Cedar, one finds little 'code stealing' and a lot of 'code sharing'. Then we discuss Cedar packages;the key point here is that programmer's interfaces are just as important as the user's interface. Finally, we discuss the Cedar file system, FS, and the degree to which FS makes it easy to manage large numbers of files.
We describe an interactive tool for program development and transformation, a semantic editor. The domain of the semantic editor is Backus's FP programminglanguage. The editor facilitates manipulation of FP progr...
详细信息
ISBN:
(纸本)0897911652
We describe an interactive tool for program development and transformation, a semantic editor. The domain of the semantic editor is Backus's FP programminglanguage. The editor facilitates manipulation of FP program schemas by the meaning-preserving transformations of FP's algebra of programs. The semantic editor aids program development, program optimization and equivalence proofs. It also serves as a tool for investigating the algebra of programs itself. The program schemas are represented internally by a directed, acyclic graph (dag) with identical sub-programs occupying the same sub-graph. The semantic editor uses the Patterson and Wegman unification algorithm and the Nelson and Oppen congruence closure algorithm. Both employ the dag representation. The system is implemented in Scheme, a dialect of Lisp.
programming systems traditionally deal with only a few different types of data objects. Operating-system command languages, for example, are concerned with files and programs. Typical programminglanguages deal with c...
详细信息
ISBN:
(纸本)0897911652
programming systems traditionally deal with only a few different types of data objects. Operating-system command languages, for example, are concerned with files and programs. Typical programminglanguages deal with computer-related objects such as integers, strings, arrays, and records. This is in sharp contrast to the variety of real-world objects that people reason about. Smallworld is a programming environment in which the real world is represented by objects that have properties. A property represents a fact about the corresponding real-world entity. Thus Smallworld actions (programs), which operate on objects specified in this simple but general way, are 'smart': they consider all of the relevant facts concerning (that is, all of the properties of) the objects they manipulate.
暂无评论