Although the teaching of programming has evolved over 50 years, all methodologies rely on a simple structure that was born a long time ago: the loop, shared by all high-level programming languages, and the preferred c...
详细信息
Although the teaching of programming has evolved over 50 years, all methodologies rely on a simple structure that was born a long time ago: the loop, shared by all high-level programming languages, and the preferred choice for any repetitive task programmers face. We analyze here how "loops" skew the way programmers solve problems, and prevent them from taking advantage of the available parallel/distributed computing architectures. To do so, we state our initial hypothesis: eliminating loops will allow a more natural parallel programming approach. The idea is to mimic a common practice today that was established in the past for a different purpose: prohibiting goto statements to improve code maintainability. This paper describes a new computer programming teaching strategy that we tested for 7 years and provides evidence on how loop prohibition, in the context of Functional programming, makes students aware of data dependencies and produces 21st-century programmers who benefit from widely available parallel architectures.
ABSTRACTAlthough the teaching of programming has evolved over 50 years, all methodologies rely on a simple structure that was born a long time ago: the loop, shared by all high-level programming languages, and th...
详细信息
ABSTRACTAlthough the teaching of programming has evolved over 50 years, all methodologies rely on a simple structure that was born a long time ago: the loop, shared by all high-level programming languages, and the preferred choice for any repetitive task programmers face. We analyze here how “loops” skew the way programmers solve problems, and prevent them from taking advantage of the available parallel/distributed computing architectures. To do so, we state our initial hypothesis: eliminating loops will allow a more natural parallel programming approach. The idea is to mimic a common practice today that was established in the past for a different purpose: prohibiting goto statements to improve code maintainability. This paper describes a new computer programming teaching strategy that we tested for 7 years and provides evidence on how loop prohibition, in the context of Functional programming, makes students aware of data dependencies and produces 21st-century programmers who benefit from widely available parallel architectures.
Traditionally, programmers received a range of training on programming languages and methodologies, but they rarely receive training on software energy consumption. Yet, the popularity of mobile devices and cloud comp...
详细信息
Traditionally, programmers received a range of training on programming languages and methodologies, but they rarely receive training on software energy consumption. Yet, the popularity of mobile devices and cloud computing requires increased awareness of software energy consumption. On mobile devices, battery life often limits computation. Under the demands of cloud computing, datacenters struggle to reduce energy consumption through virtualization and datacenter-infrastructure-management systems. Efficient software energy consumption is increasingly becoming an important nonfunctional requirement for programmers. However, are programmers knowledgeable enough about software energy consumption? Do they base their implementation decision on popular beliefs? Researchers surveyed more than 100 programmers regarding their knowledge of software energy consumption. They found that the programmers had limited knowledge of energy efficiency, lacked knowledge of the best practices to reduce software energy consumption, and were often unsure about how software consumes energy. These results highlight the need for better training and education on energy consumption and efficiency.
This work presents Quantum Predicative programming ?– a theory ofquantum programming that encompasses many aspects of quantum computation and quantum communication. The theory provides amethodology to specify, imple...
详细信息
This work presents Quantum Predicative programming ?– a theory ofquantum programming that encompasses many aspects of quantum computation and quantum communication. The theory provides amethodology to specify, implement, and analyse quantum algorithms, the paradigm of quantum non-locality, quantum pseudotelepathygames, computing with mixed states, and quantum communication protocols that use both quantum and classical communication channels
The Navigational programming (NavP) methodology is based on the principle of self-migrating computations. It is a truly incremental methodology for developing parallel programs: each step represents a functioning prog...
详细信息
The Navigational programming (NavP) methodology is based on the principle of self-migrating computations. It is a truly incremental methodology for developing parallel programs: each step represents a functioning program, and each intermediate program is an improvement over its predecessor. The transformations are mechanical and straightforward to apply. We illustrate our methodology in the context of matrix multiplication, showing how the transformations lead from a sequential program to a fully parallel program. The NavP methodology is conducive to new ways of thinking that lead to ease of programming and high performance. Even though our parallel algorithm was derived using a sequence of mechanical transformations, it displays certain performance advantages over the classical handcrafted Gentleman's Algorithm.
Writing code to handle dynamic data structures might seem to be an easy task, but write an efficient, readable and maintainable code is not such a simple task. In this short note we investigate some problems in develo...
详细信息
Writing code to handle dynamic data structures might seem to be an easy task, but write an efficient, readable and maintainable code is not such a simple task. In this short note we investigate some problems in developing code for handling dynamic data structures, and we propose techniques to overcome them. We take into account the interesting method proposed by Qiu in SIGPLAN Notices [3]. Many authors have addressed the problem of handling dynamic data;structures by suggesting several clever tricks to simplify dynamic data structures management [4, 2] and to avoid the non-uniform behavior of empty data structures, and access to the first and the last element. In particular, the use of data sentinels and dummy headers makes the implementation more orthogonal and easy to maintain. The cost is a slightly increased size in space which is negligible when compared with the benefits produced.
The wealth of literature on software design issues has not yet been synthesized or organized for use beginning at the elementary levels of computing science curricula. Despite exposure to the literature and advanced l...
详细信息
The paper is devoted to illustrate a new approach to control definition in programming languages. The DIL system developed by the authors to allow a user to define and utilize his own control mechanisms in program des...
详细信息
The paper is devoted to illustrate a new approach to control definition in programming languages. The DIL system developed by the authors to allow a user to define and utilize his own control mechanisms in program design and construction is presented. The motivations of the proposal are discussed in the frame of software engineering and abstraction programming. The main features of DIL are introduced in an informal way through a number of examples of increasing complexity. The basic mode of operation of the system is described and an architecture for the implementation of DIL is given. Meaningful sample applications are shown to validate the main features of the language. Promising directions for future research are presented as well. A run-time model of DIL is sketched in the Appendix.
In the paper the new HENTRAN preprocessor for structured FORTRAN is illustrated. The motivations and the goals of the project are first outlined. The extended FORTRAN language implemented through HENTRAN is then illus...
详细信息
In the paper the new HENTRAN preprocessor for structured FORTRAN is illustrated. The motivations and the goals of the project are first outlined. The extended FORTRAN language implemented through HENTRAN is then illustrated and its adequacy and flexibility for structured programming are discussed. The basic architecture of the HENTRAN translator is described and its main features concerning reliability, portability, and efficiency are discussed in comparison with other similar systems.
作者:
HUGHES, JWComputation Department
University of Manchester Institute of Science and Technology P.O. Box 88 Manchester M60 1QD
The key to Jackson's Program Design Method is the definition of the inputs and outputs of a program as labelled trees and the recognition of a correspondence between them. This paper gives a more formal definition...
详细信息
The key to Jackson's Program Design Method is the definition of the inputs and outputs of a program as labelled trees and the recognition of a correspondence between them. This paper gives a more formal definition of the trees and the correspondence. These definitions are then used to explain his basic method and methods for ‘structure clashes’ by reference to formal language theory.
暂无评论