Advertisement

Research and Advances

An experiment in high level language microprogramming and verification

The STRUM system was created to apply software engineering techniques to microprogramming. It provides the tools that allow the microprogrammer to use high level language, structured programming, and formal program verification to create emulations for a horizontally microprogrammed computer. This system is evaluated in two parts: (1) High level microprogramming language design and its use in structured microprogramming; and (2) Verification of a large microprogram. Both parts of this evaluation include experimental results. Part I includes a comparison of an emulation created using traditional techniques to the same emulation created using the STRUM system. Part II describes the formal verification of a 1700 line program that was immediately subjected to extensive testing. This work provides new results on the efficiency of high level microprogramming languages, the effectiveness of peephole optimization for microcode and the practicality of formal microprogram verification.
Research and Advances

Computer information systems and organization structure

A study of Computer Information Systems and Management (CISM) is described and selected results relating to changes in organizational structure in eight organizations are presented. In five of the organizations no changes in formal structure accompanied the introduction of CIS. Where organizational changes did occur, the existing structure of the organization was usually reinforced. These findings suggest that CIS is a flexible tool that is compatible with a variety of organizational design options and not a cause of design per se.
Research and Advances

Shuffle languages, Petri nets, and context-sensitive grammars

Flow expressions have been proposed as an extension of the regular expressions designed to model concurrency. We examine a simplification of these flow expressions which we call shuffle expressions. We introduce two types of machines to aid in recognizing shuffle languages and show that one such machine may be equivalent to a Petri Net. In addition, closure and containment properties of the related language classes are investigated, and we show that one machine type recognizes at least a restricted class of shuffle languages. Finally, grammars for all shuffle languages are generated, and the shuffle languages are shown to be context-sensitive.
Research and Advances

The Cornell program synthesizer: a syntax-directed programming environment

Programs are not text; they are hierarchical compositions of computational structures and should be edited, executed, and debugged in an environment that consistently acknowledges and reinforces this viewpoint. The Cornell Program Synthesizer demands a structural perspective at all stages of program development. Its separate features are unified by a common foundation: a grammar for the programming language. Its full-screen derivation-tree editor and syntax-directed diagnostic interpreter combine to make the Synthesizer a powerful and responsive interactive programming tool.
Research and Advances

An abstract programming model

An abstract model of a processor is presented informally. The model can be used by itself to abstractly describe algorithms, or with a direct implementation to write and run programs, or as the foundation of a programming language. In the last case, a translator allows higher level descriptions of algorithms for the model.
Research and Advances

Automatic extension of an ATN knowledge base

A computer program is described that acquires much of its knowledge from conversations among operators on Morse code radio networks. The system consists of a learning component and a language understander. The learning component extends a ‘core’ augmented transition network (ATN) knowledge base by generalizing from sentences taken from scripts of actual conversations. The extensions enable the understanding component to process a large number of sentences that are syntactically and semantically similar to the examples.
Research and Advances

Comparison of synonym handling and bucket organization methods

A theoretical description of the access times required in open addressing and external chaining is given. Values are calculated for different record and bucket sizes and load factors, and the corresponding values for the two methods are compared. Practical guidelines for determining bucket sizes and load factors are presented. It is proved that open addressing is almost always superior to external chaining and the optimal bucket size is between 1 and 4.
Research and Advances

System design for usability

The factors underlying system design for usability are examined and the role and responsibilities of a usability committee described. Under the control of a usability committee, a balance between high levels of system function and usability was reached for the IBM System/38. The System/38 command language is presented to illustrate this balance.
Research and Advances

Long term file migration: development and evaluation of algorithms

The steady increase in the power and complexity of modern computer systems has encouraged the implementation of automatic file migration systems which move files dynamically between mass storage devices and disk in response to user reference patterns. Using information describing 13 months of user disk data set file references, we develop and evaluate (replacement) algorithms for the selection of files to be moved from disk to mass storage. Our approach is general and demonstrates a general methodology for this type of problem. We find that algorithms based on both the file size and the time since the file was last used work well. The best realizable algorithms tested condition on the empirical distribution of the times between file references. Acceptable results are also obtained by selecting for replacement that file whose size times time to most recent reference is maximal. Comparisons are made with a number of standard algorithms developed for paging, such as Working Set, VMIN, and GOPT. Sufficient information (parameter values, fitted equations) is provided so that our algorithms may be easily implemented on other systems.
Research and Advances

Mxec: parallel processing with an advanced macro facility

Mxec is a sophisticated computing environment (executive system) which extends and magnifies users' interactions with a computer. Principally, Mxec provides for parallel processing and also assumes many of the mundane, clerical tasks with which users of most systems find themselves burdened. Some of the characteristics of the Mxec system are given, and its motivation and implementation are discussed.
Research and Advances

On the security of multiple encryption

Double encryption has been suggested to strengthen the Federal Data Encryption Standard (DES). A recent proposal suggests that using two 56-bit keys but enciphering 3 times (encrypt with a first key, decrypt with a second key, then encrypt with the first key again) increases security over simple double encryption. This paper shows that although either technique significantly improves security over single encryption, the new technique does not significantly increase security over simple double encryption. Cryptanalysis of the 112-bit key requires about 256 operations and words of memory, using a chosen plaintext attack. While DES is used as an example, the technique is applicable to any similar cipher.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More