Results 1 -
8 of
8
Environments: a flexible binding mechanism to support system evolution
- Proc. 22nd Hawaii International Conference on System Sciences, Hawaii, vol II
, 1989
"... A language construct called environment is introduced. Environments are collections of bindings and have first class data rights. As such, they provide the programmer with a type secure mechanism to control bindings in the system. It is shown that environments may be combined to provide a naming gra ..."
Abstract
-
Cited by 26 (9 self)
- Add to MetaCart
A language construct called environment is introduced. Environments are collections of bindings and have first class data rights. As such, they provide the programmer with a type secure mechanism to control bindings in the system. It is shown that environments may be combined to provide a naming graph that subsumes the functions of file systems in traditional operating systems. Such a mechanism provides a conceptually simple framework for manipulating bindings which permits the control of complexity and system evolution from within a unified language framework. 1
On the Integration of Concurrency, Distribution and Persistence
, 1993
"... The principal tenet of the persistence model is that it abstracts over all the physical properties of data such as how long it is stored, where it is stored, how it is stored, what form it is kept in and who is using it. Experience with programming systems which support orthogonal persistence has sh ..."
Abstract
-
Cited by 23 (7 self)
- Add to MetaCart
The principal tenet of the persistence model is that it abstracts over all the physical properties of data such as how long it is stored, where it is stored, how it is stored, what form it is kept in and who is using it. Experience with programming systems which support orthogonal persistence has shown that the simpler semantics and reduced complexity can often lead to a significant reduction in software production costs. Persistent systems are relatively new and it is not yet clear which of the many models of concurrency and distribution best suit the persistence paradigm. Previous work in this area has tended to build one chosen model into the system which may then only be applicable to a particular set of problems. This thesis challenges the orthodoxy by designing a persistent framework in which all models of concurrency and distribution can be integrated in an add-on fashion. The provision of such a framework is complicated by a tension between the conceptual ideas of persistence...
Delegating Compiler Objects: Modularity and Reusability in Language Engineering
, 1996
"... The application domain of compiler techniques is changing. Whereas previously compiler techniques were primarily used for the construction of compilers for general purpose languages, now these techniques are increasingly often used for the construction of application domain languages and extensible ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
The application domain of compiler techniques is changing. Whereas previously compiler techniques were primarily used for the construction of compilers for general purpose languages, now these techniques are increasingly often used for the construction of application domain languages and extensible language models. However, the traditional compiler techniques suffer from problems of complexity, maintainability, reusability and extensibility and new approaches are needed. In this paper, we describe the notion of delegating compiler objects (dcos), a novel approach to compiler construction that provides structural decomposition and reusability of compiler specifications. Our extensible language, the layered object model, is used to illustrate the advantages of the dco approach for compiler construction.
Persistent Possibilities for Software Environments
- In The Intersection between Databases and Software Engineering, IEEE Computer Society Press, Proc. ICSE-16 Workshop on the Intersection between Databases and Software Engineering
, 1994
"... Persistent programming systems are generally recognised as the appropriate technology for the construction and maintenance of large, long-lived object based application systems such as software environments. Here some of the advantages of providing all the support required for the software process w ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Persistent programming systems are generally recognised as the appropriate technology for the construction and maintenance of large, long-lived object based application systems such as software environments. Here some of the advantages of providing all the support required for the software process within a persistent object store with referential integrity are examined. It is shown that powerful new techniques may be supported by having system specifications, programs, configuration management tools and documentation all within a single persistent environment. 1
Delivering the Benefits of Persistence to System Construction and Execution
- In Proc. 17th Australasian Computer Science Conference
, 1994
"... Persistent programming systems are generally recognised as the appropriate technology for the construction and maintenance of large, long-lived application systems. Many successful prototypes have been constructed, and a large body of application building experience is emerging. However, all persist ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Persistent programming systems are generally recognised as the appropriate technology for the construction and maintenance of large, long-lived application systems. Many successful prototypes have been constructed, and a large body of application building experience is emerging. However, all persistent systems to date have been provided within an operating system environment, and the services provided by the operating system have been relied upon to give the necessary support for program tasks such as editing and linking. Only the execution of persistent programs has occurred within the persistent environment. Here we examine some of the consequences of providing all the support required for program construction within the same environment as the persistent data. We show how having the construction, compilation, and execution processes all operating within a single environment leads to some powerful new techniques. This new power is achieved by the sharing of persistent data across the hitherto enclosed boundaries of these processes. 1 Persistent Systems In recent years considerable research has been devoted to the investigation of the concept of persistence and its application in the integration of database systems and programming languages [Atk78, ABC+83]. As a result a number of persistent systems have been developed including PS-algol
Building an Integrated Persistent Application
- In Database Programming Languages
, 1993
"... The major motivation for database programming language (DBPL) research is to facilitate the construction and maintenance of large dataintensive applications. To fully benefit from DBPLs, supporting methodologies and tools are needed. This paper reports requirements for such methodologies and tools t ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
The major motivation for database programming language (DBPL) research is to facilitate the construction and maintenance of large dataintensive applications. To fully benefit from DBPLs, supporting methodologies and tools are needed. This paper reports requirements for such methodologies and tools that were experienced when constructing a multiauthored, multi-levelled Thesaurus Application (TA) in a higher order DBPL. Although built in a specific language (Napier88), the major principles discovered apply to other DBPLs. The TA comprises several loosely-integrated components constructed by different programmers. The components were themselves implemented using general purpose sub-components, including libraries. We experienced that a realistic application could be constructed quickly in a DBPL. Rapid construction was facilitated by the use of libraries, code reuse and an incremental construction methodology supported by the persistent store. Language features such as a polymorphic type ...
ShTh - Show Thesaurus User Interface
- Computing Science Department, University of Glasgow
, 1993
"... ShTh is a customisable graphical user interface to a tool that helps people in the process of building and reverse engineering software. ShTh's main goal is to provide an easy way of filtering the (potentially) huge amount of information contained in a thesaurus. ShTh provides menudriven facilities ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
ShTh is a customisable graphical user interface to a tool that helps people in the process of building and reverse engineering software. ShTh's main goal is to provide an easy way of filtering the (potentially) huge amount of information contained in a thesaurus. ShTh provides menudriven facilities that help naive users to query a thesaurus and visualise the results of query application. It also provides facilities to store and retrieve queries and thesauri, import and export thesauri and a custom menu where users can "plug-in" custom entries with associated actions. This interface was entirely built using a persistent programming language and using libraries of procedures also written in the same language. Interface components are stored in a persistent object store so they can be reused in later sessions. Customisation is achieved by using linguistic reflection: a call is made from the implementation language to its compiler during ShTh execution. Contents 1 Introduction 3 2 Thesa...
Using C as a Compiler Target Language for Native Code Generation in Persistent Systems
"... Persistent programming languages exhibit several requirements that affect the generation of native code, namely: garbage collection; arbitrary persistence of code, data and processes; dynamic binding; and the introduction of new code into a running system. The problems of garbage collection are ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Persistent programming languages exhibit several requirements that affect the generation of native code, namely: garbage collection; arbitrary persistence of code, data and processes; dynamic binding; and the introduction of new code into a running system. The problems of garbage collection are not unique to persistent systems and are well understood: both code and data may move during a computation if a compacting collector is employed. However, the problems of garbage collection are exacerbated in persistent systems which must support garbage collection of both RAM resident and disk resident data. Some persistent systems support a single integrated environment in which the compiled code and data is manipulated in a uniform manner, necessitating that compiled code be stored in the object store. Furthermore, some systems assume that the entire state of a running program is resident in a persistent store; in these systems it may be necessary to preserve the state of a pro...

