The use of a programming language for describing hardware is proposed in this paper. The presented approach, based on minor extensions of C++, gives an attractive way to program computers with reconfigurable hardware ...
详细信息
The use of a programming language for describing hardware is proposed in this paper. The presented approach, based on minor extensions of C++, gives an attractive way to program computers with reconfigurable hardware elements (i.e. FPGAs). It can also be used as a common implementation-level language for hardware-software codesign frameworks. The proposed approach differs from other codesign methodologies due to the use of a single, object oriented, notation for all design levels;from the most abstract OMT notations, where the system's functionality and requirements are first captured, to the detailed implementation-level C++ code.
Advanced programming languages such as Standard ML have rarely been used for systemsprogramming tasks such as operating systems and network communications. In order to understand more fully the requirements of system...
详细信息
ISBN:
(纸本)0897916433
Advanced programming languages such as Standard ML have rarely been used for systemsprogramming tasks such as operating systems and network communications. In order to understand more fully the requirements of systemsprogramming, we have implemented a suite of industry-standard network communication protocols in a completely type-safe extension of Standard ML. While the implementation has only recently become operational, we already observe acceptable communications throughput. We make careful use of the Standard ML modules system, with the core component of the implementation being a signature which is generic to all communications protocols. This generic protocol is then specialized for specific protocols, and these are implemented by functors parameterized by generic protocols. This leads naturally to a layered system structure and also provides an important and useful 'mix-and-match' capability in composing protocols into complex networking systems. We have found the advanced features of Standard ML, in particular the modules system, static typing, and higher-order functions, to be extremely useful in building complex communications systems. The type compatibility of the various components of a system is guaranteed by the compiler. Furthermore, we find it significant that most of the information needed to understand the structure and interactions in our code can be obtained from a study of the signatures alone. Perhaps most important is that we have been able to use the expressive power of Standard ML modules to give concrete expression to previously ad hoc system-structuring concepts developed by other researchers in the field of network communications. For language designers and implementors, our experience has also pointed out specific areas for further work that may lead to advanced languages that are useful for systemsprogramming.
This paper describes a visual programming environment called PROX (Pictorial programming for Control systems and Simulation) and its application to the development of software code for dynamic systems. We show how PRO...
详细信息
ISBN:
(纸本)081865640X
This paper describes a visual programming environment called PROX (Pictorial programming for Control systems and Simulation) and its application to the development of software code for dynamic systems. We show how PROX is used for modeling and simulating a continuous process of interdependent variables with emphasis on user software development. Some of PROX key features are highlighted, such as encouraging users to consider the structure of the model and the interdependency of variables through feedback processes as the cause for behaviour in dynamic systems. PROX is an example of how Software Engineering (SE), Artificial Intelligence (AI) and model building can be integrated into a single framework to help users to generate code and create their own understanding of dynamic systems. PROX is written in Pop-11 under X-Windows allowing the user to write application programs by simply connecting icons. As the building blocks are hooked together, PROX creates equations and procedures behind the scenes and, as soon as the connections are drawn, programs can be run immediately and variables can be plotted. In this way, assumptions about the structure of the system being modeled can rapidly be tested without the need for extensive recompilation.
The proceedings contains 6 papers on the science of computerprogramming. Topics discussed include: computer systems programming;logic programming;concurrent systems;assumption commitment specifications;UNITY formulas...
详细信息
The proceedings contains 6 papers on the science of computerprogramming. Topics discussed include: computer systems programming;logic programming;concurrent systems;assumption commitment specifications;UNITY formulas;parallel algorithms;parallel processing systems;gate splitting;language of temporal ordering specifications (LOTOS);abstract interpretation;approximation theory;set theory;Petri nets;constraint theory;computational linguistics;abstract interpretation;modal checking;net unfoldings;label algebras;substitution methods;interactive computersystems;interactive program transformations;and monadic structure.
We present the first system for estimating and using data-dependent expression execution times in a language with first-class procedures and imperative constructs. The presence of first-class procedures and imperative...
详细信息
ISBN:
(纸本)0897916433
We present the first system for estimating and using data-dependent expression execution times in a language with first-class procedures and imperative constructs. The presence of first-class procedures and imperative constructs makes cost estimation a global problem that can benefit from type information. We estimate expression costs with the aid of an algebraic type reconstruction system that assigns every procedure a type that includes a static dependent cost. A static dependent cost describes the execution time of a procedure in terms of its inputs. In particular, a procedure's static dependent cost can depend on the size of input data structures and the cost of input first-class procedures. Our cost system produces symbolic cost expressions that contain free variables describing the size and cost of the procedure's inputs. At run-time, a cost estimate is dynamically computed from the statically determined cost expression and run-time cost and size information. We present experimental results that validate our cost system on three compilers and architectures. We experimentally demonstrate the utility of cost estimates in making dynamic parallelization decisions. In our experience, dynamic parallelization meets or exceeds the parallel performance of any fixed number of processors.
I/O abstraction is offered as a new high-level approach to interprocess communication. Functional components of a concurrent system are written as encapsulated modules that act upon local data structures, some of whic...
详细信息
ISBN:
(纸本)0818650605
I/O abstraction is offered as a new high-level approach to interprocess communication. Functional components of a concurrent system are written as encapsulated modules that act upon local data structures, some of which may be published for external use. Relationships among modules are specified by logical connections among their published data structures. Whenever a module updates published data, I/O takes place implicitly according to the configuration of logical connections. The Programmers' Playground, a software library and run-time system supporting I/O abstraction, is described.
programming by Demonstration (PbD) is a new paradigm for the programming of devices (robots, household appliances, machines) or interactive software (text or graphics editors). The system enables programming without e...
详细信息
programming by Demonstration (PbD) is a new paradigm for the programming of devices (robots, household appliances, machines) or interactive software (text or graphics editors). The system enables programming without explicit coding. As a prototype of a new PbD-system, the programming by Demonstration Graphics Editor ProDeGE+ with extendable domain theory, is introduced. The prototype illustrates how generalized functions can be generated based on a set of action sequences that are demonstrated in an interactive system. Additional interactions with users (Dialog-Based Learning) help to reduce the hypothesis space of the PbD system. This can help to ensure that the generated function is the same as the user-intended function. Finally, the new approach enables users to extend the domain theory of the graphics editor using PbD so that they have an opportunity to reduce the limits of the given domain theory while the system is in use.
The GAME system, a programming environment being developed at University College London as part of the major European project, is aimed at promoting and demonstrating the use of genetic algorithms in real world applic...
详细信息
The GAME system, a programming environment being developed at University College London as part of the major European project, is aimed at promoting and demonstrating the use of genetic algorithms in real world applications. GAME has an object oriented design and its implementation provides the required levels of abstraction to describe and configure applications for a broad range of domains. GAME is highly customizable and its libraries can be expanded with the inclusion of new parameterised modules. Programmers can create new applications by combining pre-defined algorithms and genetic operators of by directly programming new algorithms using the set of C++ classes provided. Also available in GAME is a graphic interface and monitoring facilities.
In [7] we proposed a visual programming system called Tioga. The Tioga system applies a boxes and arrows programming notation to allow nonexpert users to graphically construct database applications. Users connect data...
详细信息
In [7] we proposed a visual programming system called Tioga. The Tioga system applies a boxes and arrows programming notation to allow nonexpert users to graphically construct database applications. Users connect database procedures using a dataflow model Browsers are used to visualize the resulting data. This paper describes extensions to the Tioga browser protocol. These extensions allow sophisticated, flight-simulator navigation through a multidimensional data space. This design also incorporates wormholes to allow tunneling between different multidimensional spaces. Worm holes are shown to be substantial generalizations of hyperlinks in a hypertext system. These powerful mechanisms for relating data provide users with great flexibility. For example, users can create magnifying glasses that provide an enhanced view of the underlying data.
We describe a system that constructs a computer program from a graphical specification provided by the user. The specification consists of diagrams that represent physical and mathematical models;connections between d...
详细信息
ISBN:
(纸本)081865550X
We describe a system that constructs a computer program from a graphical specification provided by the user. The specification consists of diagrams that represent physical and mathematical models;connections between diagram ports signify that corresponding quantities must be equal. A program (in Lisp or C) is generated from the graphical specification by data flow analysis and algebraic manipulation of equations associated with the physical models. Equations, algebraic manipulations, and unit conversions are hidden from the user and are performed automatically. This system allows more rapid generation of programs than would be possible with hand coding.
暂无评论