Circus combines constructs to define complex data operations and interactions;it integrates Z and CSP, and, distinctively, it is a language for refinement that can describe programs as well as specification and design...
详细信息
Circus combines constructs to define complex data operations and interactions;it integrates Z and CSP, and, distinctively, it is a language for refinement that can describe programs as well as specification and design models. The semantics is based on the unifying theories of programming (UTP). Most importantly, Circus is representative of a class of refinement-oriented languages that combines facilities to specify abstract data types in a model-based style and patterns of interaction. What we present here is the Circus testing theory;this work is relevant as a foundation for sound test-generation techniques for a plethora of state-rich reactive languages. To cater for data operations, we define symbolic tests and exhaustive test sets. They are the basis for test-generation techniques that can combine coverage criteria for data and transition models. The notion of correctness is Circus refinement, a UTP-based generalisation of failures-divergences refinement that considers data modelling. Proof of exhaustivity exploits the correspondence between the operational and denotational semantics.
The article presents a method for teaching computer programmers to think in terms of parallel algorithms, designed to enable improved programming for multi-processor machines. It involves an Immediate Concurrent Execu...
详细信息
The article presents a method for teaching computer programmers to think in terms of parallel algorithms, designed to enable improved programming for multi-processor machines. It involves an Immediate Concurrent Execution (ICE) abstraction, which is supported by explicit multi-threaded (XMT) computer architecture and parallel random-access machine (PRAM) algorithmics. A workflow using these techniques is described, and the advantages of such an approach over serial algorithms are explicated. The major steps involved in the ranking/merging algorithm are discussed, and a block diagram of the XMT architecture is included.
Computing is not the only way to model and simulate humanities problems. In the specific field of conflict simulation, there is a long and continuing tradition of using manual modelling techniques such as maps and cou...
详细信息
Computing is not the only way to model and simulate humanities problems. In the specific field of conflict simulation, there is a long and continuing tradition of using manual modelling techniques such as maps and counters to create playable games which mirror some of the dynamics of real armed conflicts. computer games are not automatically superior to such manual models, since mass market commercial software focuses far more on entertainment than on realistic simulation, and since the enormous capabilities of computers tend to encourage detailed incorporation of quantifiable technicalities at the expense of the vital but much less tractable human element. The biggest limitation of computer models is their limited transparency and design accessibility for non-programmers such as humanities students and scholars. Manual modelling offers a valuable 'bridge' between computing and traditional humanities scholarship, allowing easier generation and use of specifically tailored models, and building synergistic relationships which foster more widespread and effective adoption of digital techniques.
In addition to drawing upon content experts, librarians, archivists, developers, programmers, managers, and others, many emerging digital projects also pull in disciplinary expertise from areas that do not typically w...
详细信息
In addition to drawing upon content experts, librarians, archivists, developers, programmers, managers, and others, many emerging digital projects also pull in disciplinary expertise from areas that do not typically work in team environments. To be effective, these teams must find processes-some of which are counter to natural individually oriented work habits-which support the larger goals and group-oriented work of these digital projects. This article will explore the similarities and differences in approaches within and between members of the Digital Libraries (DL) and Digital Humanities (DH) communities by formally documenting the nature of collaboration in these teams. While there are many similarities in approaches between DL and DH project teams, some interesting differences exist and may influence the effectiveness of a digital project team with membership that draws from these two communities. Conclusions are focused on supporting strong team processes with recommendations for documentation, communication, training, and the development of team skills and perspectives.
Alive coding movement has arisen from everyday use of interpreted programming environments, where the results of new code can be immediately established. Running algorithms can be modified as they progress. In the con...
详细信息
Alive coding movement has arisen from everyday use of interpreted programming environments, where the results of new code can be immediately established. Running algorithms can be modified as they progress. In the context of arts computing, five coding has become an intriguing movement in the field of real-time performance. It directly confronts the role of computer programmers in new media work by placing their actions, and the consequences of their actions, centrally within a work's setting. This article covers historical precedents, theoretical perspectives and recent practice. Although the contemporary exploration of live coding is associated with the rise of laptop music and visuals, there are many further links to uncover throughout rule-based art. A central issue is the role of a human being within computable structures;it is possible to find examples of live coding that do not require the use of a (digital) computer at all.
We present GOLDILOCKS, a Java runtime that monitors program executions and throws a DataRaceException when a data race is about to occur This prevents racy accesses from taking place, and allows race conditions to be ...
详细信息
We present GOLDILOCKS, a Java runtime that monitors program executions and throws a DataRaceException when a data race is about to occur This prevents racy accesses from taking place, and allows race conditions to be handled before they cause errors that may be difficult to diagnose later The DataRaceException is a valuable debugging tool, and, if supported with reasonable computational overhead, can be an important safety feature for deployed programs Experiments by us and others on race aware Java runtimes indicate that the DataRaceException may be a viable mechanism to enforce the safety of executions of multithreaded Java programs An important benefit of DataRaceException is that executions in our runtime are guaranteed to be race free and thus sequentially consistent as per the Java Memory Model This strong guarantee provides an easy to-use, clean semantics to programmers, and helps to rule out many concurrency-related possibilities as the cause of errors To support the DataRaceException, our runtime incorporates the novel Goldilocks algorithm for precise dynamic race detection The Goldilocks algorithm is general, intuitive, and can handle different synchronization patterns uniformly
The article presents the author's opinion on the decline in computer-related degree programs as well as the decline in demand for U.S. programmers. The loss of student interest in computer sciences is examined. Th...
详细信息
The article presents the author's opinion on the decline in computer-related degree programs as well as the decline in demand for U.S. programmers. The loss of student interest in computer sciences is examined. The author's experiences working with several Fortune 500 companies as a computer programmer including for Informatics, Information Engineering systems Corporation, and International Business Machines are explored. How to redesign computer curricula to address economic needs such as replacing capstone or senior programming courses with internships that emphasize ethical IT service-level management is discussed.
Pair programming has generated considerable controversy: some developers are enthusiastic about it, almost evangelical; others are dubious, even hostile. However, a large factor in this controversy is that programmers...
详细信息
Pair programming has generated considerable controversy: some developers are enthusiastic about it, almost evangelical; others are dubious, even hostile. However, a large factor in this controversy is that programmers label a wide variety of practices under the \"pair programming\" umbrella. Thus, before our community can sensibly discuss how pair programming works, we first need to establish exactly what it is.
The author reflects on the evolutionary design of computer software. He believes that design evolution is part of software development. He says that among the factors that software designers should consider in creatin...
详细信息
The author reflects on the evolutionary design of computer software. He believes that design evolution is part of software development. He says that among the factors that software designers should consider in creating software evolution are time, cost and risk. He proposes microscale incremental change to create a responsive design that is safe and less expensive.
暂无评论