37,555 research outputs found
HOPS: A Hierarchical/object-oriented programming environment system
The concept of object-oriented programming is becoming an important paradigm in which programmers represent and solve problems. HOPS (Hierarchical / Object-oriented Programming Environment System), developed in this thesis project, employs this concept to represent and manipulate the resources of a programming environment. All the resource objects (such as files, directories, simple integer data and so on) are hierarchically arranged for easy access and management, as the user moves through a tree structure just as in the UNIX file system. HOPL (Hierarchical / Object-oriented Programming Language), whose grammar is similar to C language, has been designed so that the expression of resource objects can be directly embedded in a statement, which is translated into intermediate codes and then is executed. The system allows the user to store the intermediate codes as methods and to inherit methods from objects which already contain methods. HOPS, functioning now under the UNIX environment, can share the UNIX directories and files as its resources, so that it can be an object-oriented front-end processor for UNIX shell commands. An experimental screen editor, HOPE (Hierarchical / Object-oriented Programming Editor), has also been developed. It is written partly in HOPL to facilitate customization of some editing commands
An occam Style Communications System for UNIX Networks
This document describes the design of a communications system which provides occam style communications primitives under a Unix environment, using TCP/IP protocols, and any number of other protocols deemed suitable as underlying transport layers. The system will integrate with a low overhead scheduler/kernel without incurring significant costs to the execution of processes within the run time environment. A survey of relevant occam and occam3 features and related research is followed by a look at the Unix and TCP/IP facilities which determine our working constraints, and a description of the T9000 transputer's Virtual Channel Processor, which was instrumental in our formulation. Drawing from the information presented here, a design for the communications system is subsequently proposed. Finally, a preliminary investigation of methods for lightweight access control to shared resources in an environment which does not provide support for critical sections, semaphores, or busy waiting, is made. This is presented with relevance to mutual exclusion problems which arise within the proposed design. Future directions for the evolution of this project are discussed in conclusion
The essence of component-based design and coordination
Is there a characteristic of coordination languages that makes them
qualitatively different from general programming languages and deserves special
academic attention? This report proposes a nuanced answer in three parts. The
first part highlights that coordination languages are the means by which
composite software applications can be specified using components that are only
available separately, or later in time, via standard interfacing mechanisms.
The second part highlights that most currently used languages provide
mechanisms to use externally provided components, and thus exhibit some
elements of coordination. However not all do, and the availability of an
external interface thus forms an objective and qualitative criterion that
distinguishes coordination. The third part argues that despite the qualitative
difference, the segregation of academic attention away from general language
design and implementation has non-obvious cost trade-offs.Comment: 8 pages, 2 figures, 3 table
Recommended from our members
Arcturus user's guide
This document describes the Arcturus programming environment, a first realization of an advanced programming environment based on the programming language Ada. It is the first environment that supplies interactive, "statement (or declaration) at a time" execution of Ada program fragments
The ISIS Project: Real Experience with a Fault Tolerant Programming System
The ISIS project has developed a distributed programming toolkit and a collection of higher level applications based on these tools. ISIS is now in use at more than 300 locations world-wise. The lessons (and surprises) gained from this experience with the real world are discussed
Pando: Personal Volunteer Computing in Browsers
The large penetration and continued growth in ownership of personal
electronic devices represents a freely available and largely untapped source of
computing power. To leverage those, we present Pando, a new volunteer computing
tool based on a declarative concurrent programming model and implemented using
JavaScript, WebRTC, and WebSockets. This tool enables a dynamically varying
number of failure-prone personal devices contributed by volunteers to
parallelize the application of a function on a stream of values, by using the
devices' browsers. We show that Pando can provide throughput improvements
compared to a single personal device, on a variety of compute-bound
applications including animation rendering and image processing. We also show
the flexibility of our approach by deploying Pando on personal devices
connected over a local network, on Grid5000, a French-wide computing grid in a
virtual private network, and seven PlanetLab nodes distributed in a wide area
network over Europe.Comment: 14 pages, 12 figures, 2 table
- …