The idea that complex systems have a hierarchical arrangement has been widely observed on various scales. In this work, we introduce the concept of modular programming, which emphasizes isolating the functionality of ...
详细信息
The idea that complex systems have a hierarchical arrangement has been widely observed on various scales. In this work, we introduce the concept of modular programming, which emphasizes isolating the functionality of a system into independent, interchangeable modules, to tailor the hierarchy and diversity in these complex systems. Guided by modular programming, a system with multiple compatible components, including modules A, B, C, and so forth, can be constructed and subsequently modified into modules A', B', C', and so forth independently. As a proof of concept, a series of multivariate hierarchical metal organic frameworks (MOFs) with various compositions, ratios, and distributions were prepared as a compatible system. Sequential click reactions and acid treatments can be utilized to selectively modify a certain modular MOF into a polymer, while other modular MOFs either remain in their original state or dissolve upon treatment. As a result, a series of polymer/MOF composites that traditionally have been viewed as incompatible can be prepared with tailored properties and behaviors. The resulting polymer/MOF hierarchical composites represent a unique porous composite material which contains functional groups and metal clusters with controllable compositions and distribution, tunable hierarchically porous structures, and tailored diversity within one framework. This general synthesis approach guided by modular programming not only provides a facile method to tailor hierarchy and diversity in multivariate systems but also enables the investigation into hierarchy and its structured control flow, which is a critical design feature of future materials for their fast adaptivity and responses to variable environmental conditions.
EDISON-80, a superset of the programming language EDISON, is implemented on an Intel Corp. development system. It attempts to provide software designers with a programming environment that combines the benefits of a...
详细信息
EDISON-80, a superset of the programming language EDISON, is implemented on an Intel Corp. development system. It attempts to provide software designers with a programming environment that combines the benefits of abstraction of high-level languages with those of machine-orientation and is powerful enough to support the development of nontrivial system software with a wide range of facilities, including parallel processing. Modifications -- for example, the separate compilation facility -- are introduced into EDISON-80 to make it more powerful than the original. Despite being an interpreted language, the resulting EDISON-80 object code can be downloaded on and is compatible with the existing compiled languages on the system, so that they can be tied together and run on user systems.
A highly interactive programming system (IOTA) is developed that supports hierarchical and modular program development with abstraction mechanisms. By exploiting abstraction mechanisms, IOTA provides a ''truly...
详细信息
A highly interactive programming system (IOTA) is developed that supports hierarchical and modular program development with abstraction mechanisms. By exploiting abstraction mechanisms, IOTA provides a ''truly modular'' environment, in which modules are constructed, debugged, verified, and compiled in a module-by-module manner. Such an environment requires system management of the information about ongoing program development, in the form of module databases. Consequently, further problems emerge as to how to modify the information efficiently and consistently. The IOTA system consists of 5 major subsystems - Developer, Debugger, Verifier, Prover, and Executor - that are integrated into a highly interactive system over a modulebase that maintains all information needed for each subsystem to work. Design objectives for modular programming are discussed by focusing on such issues as: 1. information management, 2. interactive construction and modification of modules, 3. separate processing, 4. specification and verification, and 5. supports for cooperative program development.
A system is described which inputs EBNF syntax equations as text, checks them and builds a corresponding syntax graph representation. An EBNF parser, with full error recovery, is included. The system is designed using...
详细信息
A system is described which inputs EBNF syntax equations as text, checks them and builds a corresponding syntax graph representation. An EBNF parser, with full error recovery, is included. The system is designed using the principles of modular decomposition and data abstraction, and is presented as a case study in the application of these principles to program design. The system is programmed in Pascal-plus, and has been used as a basis for the automatic generation of parsers.
This study explored the parameter-related misconceptions of two college students enrolled in an introductory programming course. Both students appeared to conceive a direct procedureto- procedure linkage, with the con...
详细信息
A procedure is proposed for optimizing devices or systems by “plugging in” existing library software modules that have been developed for optimization of components. The component modules are nested into a primary s...
详细信息
We present a modular approach to implementing dynamic algorithm switching for parallel scientific software. By using a compositional framework based on function call interception techniques, our proposed method transp...
详细信息
We present a modular approach to implementing dynamic algorithm switching for parallel scientific software. By using a compositional framework based on function call interception techniques, our proposed method transparently integrates algorithm switching code with a given program without directly modifying the original code structure. Through fine-grained control of algorithmic behavior of an application at the level of functions, our approach supports design and implementation of application-specific switching scenarios in a modular way. Our approach encourages algorithm switching to dynamically perform at the loop end of a parallel simulation, where cooperating processes in concurrent execution typically synchronize and intermediate computation results are consistent. In this way, newly added switching operations do not cause race conditions that may produce unreliable computation results in parallel simulations. By applying our method to a real-world scientific application and adapting its algorithmic behavior to the properties of input problems, we demonstrate the applicability and effectiveness of our approach to constructing efficient parallel simulations.
暂无评论