Functional programming concepts of referential transparency and lazy evaluation combine effectively with objected-oriented encapsulation. We present a design pattern for C++ classes that are logically immutable and fu...
详细信息
ISBN:
(纸本)0780350057
Functional programming concepts of referential transparency and lazy evaluation combine effectively with objected-oriented encapsulation. We present a design pattern for C++ classes that are logically immutable and fully determined by the parameters of their constructor. Hidden state is used internally to cache the results of computation performed in the scope of accessors, giving them lazy semantics, Modifying replicators model change by constructing a new instance without changing the original. Previously computed results are lazily copied via a back reference if the parameters report which the computation depends have nor changed. Since these classes are logically immutable they can be freely shared by reference ill complex networks, mitigating the amount of actual copying performed. These techniques realize several advantages - well known to the functional programming community including suitability for modular reasoning and parallel evaluation. 'Undo' facilities and safe recovery from exceptions can be provided with little extra effort. Examples from a large multi-platform biomedical imaging application illustrate the techniques.
This paper describes experience with using several design patterns for extensibility and reuse. Also described are techniques for implementing classes in Ada-95, using the tagged types and the child unit facilities. &...
详细信息
Kaisler [4] identified several design issues that arose from developing a process for transforming object-oriented programs written in Ada 95 or other object-orientedprogramminglanguages to process-oriented programs...
详细信息
Both Ada and Java support concurrent programming, but through quite different approaches. Ada has built-in tasking features with concurrency semantics, independent of the language's OOP model, whereas Java's t...
详细信息
This experience report demonstrates several running programs with visual, animated, colorful displays of "algorithms in action." A common element of all of the programs is the use of "symbots" (sym...
详细信息
Construction of the National Ignition Facility laser at Lawrence Livermore National Laboratory features a distributed control system that uses object-oriented software engineering techniques. Control of 60, 000 device...
详细信息
A form of functional programming can specify and derive imperative programs, where variable functions can be updated at specified points in their domain. Variable functions can also play an important role in the struc...
详细信息
A form of functional programming can specify and derive imperative programs, where variable functions can be updated at specified points in their domain. Variable functions can also play an important role in the structuring of large systems. They can subsume objectorientedprogramminglanguages, without incurring the latter's problems with pointer aliasing and modularity.
The proceedings contain 37 papers. The topics discussed include: multi-μ: an Ada 95 based architecture for fault tolerance support of real-time systems;a comparison of Ada and Pascal in an introductory computer scien...
ISBN:
(纸本)1581130333
The proceedings contain 37 papers. The topics discussed include: multi-μ: an Ada 95 based architecture for fault tolerance support of real-time systems;a comparison of Ada and Pascal in an introductory computer science course;a reusable lightweight executive for command and control systems;hardware/software co-design: VHDL and Ada 95 code migration and integrated analysis;kernel Ada to unify hardware and software design;a empirical study of web-based algorithm animation courseware in an Ada data structure course;using Ada in non-CS majors;the Ravenscar tasking profile for high integrity real-time programs;the evolution of a distributed dataflow processing model using Ada;building fault tolerant distributed systems using IP multicast;looking into safety with the safety and security Rapporteur group;an ASIS-based static analysis tool for high-integrity systems;Ada in embedded boards for scientific and medical instruments;implementing a culling and self-intersection algorithm for stereolithography files in Ada 95;reusable Ada libraries supporting infinite data structures;Ada in an on-board military communication system;a large distributed control system using Ada in Fusion Research;reengineering a legacy system using design patterns and Ada-95 object-oriented features;usage of Ada in the Gripen flight control system;and visual support for incremental abstraction and refinement in Ada 95.
In type systems based on subtyping, type equality is replaced with subtyping, which is a less restrictive relationship. The idea is, if τ1 is a subtype of τ2, then a value of type τ1 can be transparently supplied w...
详细信息
In type systems based on subtyping, type equality is replaced with subtyping, which is a less restrictive relationship. The idea is, if τ1 is a subtype of τ2, then a value of type τ1 can be transparently supplied whether a value of type τ2 is expected. Subtyping is used as a key concept to create formal type systems for object-orientedlanguages. These systems often require to be annotated with user-supplied type information. Being able to omit this information, or at least part of it, provides the programmer a greater degree of freedom, hence the desire arises to do type inference in the presence of subtyping.
The combination of Ada's new class-wide programming with tagged types, generics, and representation clauses for both enumerated and record types greatly facilitates low level programing. A generic board register c...
详细信息
暂无评论