This article describes an analytic study of the process used by John Chowning for the composition of Stria. This article is intended to complete the description of the compositional process given in a previous work (M...
详细信息
This article describes an analytic study of the process used by John Chowning for the composition of Stria. This article is intended to complete the description of the compositional process given in a previous work (Meneghini 2003), largely restated by Bossis in a subsequent paper (Bossis 2005). Stria was composed in 1977 and was fully generated by means of computer algorithms (Chowning 1977c) and the corresponding input files (Chowning 1977a, b): all the parameters of the sounds generated in Stria are determined and calculated by these algorithms on the basis of specific mathematical rules and of numerical parameters chosen by Mr. Chowning as input for the programs. For this reason, an accurate analysis of these algorithms is fundamental for a complete comprehension of the compositional process.
Researchers are in vestigating various methods and tools to help architects effectively document their decisions. However, such documentation remains difficult, so we often lose knowledge of key architectural decision...
详细信息
Researchers are in vestigating various methods and tools to help architects effectively document their decisions. However, such documentation remains difficult, so we often lose knowledge of key architectural decisions. Architecture patterns can be an important way to capture this knowledge.
Haskell's popularity has driven the need for ever more expressive type system features, most of which threaten the decidability and practicality of Damas-Milner type inference. One such feature is the ability to w...
详细信息
Haskell's popularity has driven the need for ever more expressive type system features, most of which threaten the decidability and practicality of Damas-Milner type inference. One such feature is the ability to write functions with higher-rank types - that is, functions that take polymorphic functions as their arguments. Complete type inference is known to be undecidable for higher-rank (impredicative) type systems, but in practice programmers are more than willing to add type annotations to guide the type inference engine, and to document their code. However, the choice of just what annotations are required, and what changes are required in the type system and its inference algorithm, has been an ongoing topic of research. We take as our starting point a lambda-calculus proposed by Odersky and Laufer. Their system supports arbitrary-rank polymorphism through the exploitation of type annotations on lambda-bound arguments and arbitrary sub-terms. Though elegant, and more convenient than some other proposals, Odersky and Laufer's system requires many annotations. We show how to use local type inference (invented by Pierce and Turner) to greatly reduce the annotation burden, to the point where higher-rank types become eminently usable. Higher-rank types have a very modest impact on type inference. We substantiate this claim in a very concrete way, by presenting a complete type-inference engine, written in Haskell, for a traditional Damas-Milner type system, and then showing how to extend it for higher-rank types. We write the type-inference engine using a monadic framework: it turns out to be a particularly compelling example of monads in action. The paper is long, but is strongly tutorial in style. Although we use Haskell as our example source language, and our implementation language, much of our work is directly applicable to any ML-like functional language.
Alan Kay is referred to as the "father of the personal computer" because his 1969 doctoral thesis described an early prototype of personal computing. Kay's ideas contributed to the transformation of the ...
详细信息
Alan Kay is referred to as the "father of the personal computer" because his 1969 doctoral thesis described an early prototype of personal computing. Kay's ideas contributed to the transformation of the computer from a calculating machine,to a communication medium. This article focuses on Kay's vision for personal computing.
By 1965, having successfully combined work-at EMCC, Burroughs, and Philco-with the task of raising a family when such a combination was still somewhat of a rarity, the author went on to become a consultant in the Bost...
详细信息
By 1965, having successfully combined work-at EMCC, Burroughs, and Philco-with the task of raising a family when such a combination was still somewhat of a rarity, the author went on to become a consultant in the Boston area. In this last installment of her memoirs, she describes working with different data management systems, culminating with her employment at Harvard University for 27 years.
The article introduces five articles published in this issue of the journal, which were related to service-centric software systems management. In the article 'A Domain-Configurable Development Environment for Ser...
详细信息
The article introduces five articles published in this issue of the journal, which were related to service-centric software systems management. In the article 'A Domain-Configurable Development Environment for Service-Oriented Applications,' Philippe Lalanda and Cristina Mann describe two software tools to support service composition. Authors of the article 'PAWS: A Framework for Executing Adaptive Web-Service Processes,' describe a flexible approach for executing Web services. INSET: Service-Oriented Architecture.
The article deals with the development of Graphical User Interface (GUI) test applications. The author states that next-generation GUI developers can virtually discard programming, freeing engineers to concentrate on ...
详细信息
The article deals with the development of Graphical User Interface (GUI) test applications. The author states that next-generation GUI developers can virtually discard programming, freeing engineers to concentrate on test functionality rather than implementation details. GUI developers allow test engineers to set up efficient programmable instrument systems without ever writing a line of code.
作者:
Shneiderman, BenUniv Maryland
Inst Adv Comp Studies Dept Comp Sci Human Comp Interact Lab College Pk MD 20742 USA
The article discusses the role of software in enhancing individual creativity. Early software development focused on increasing economic productivity. A more recent and greater challenge is to produce "creativity...
详细信息
The article discusses the role of software in enhancing individual creativity. Early software development focused on increasing economic productivity. A more recent and greater challenge is to produce "creativity support tools." Guiding principles for tool designers include an openness to exploration and collaboration, and a willingness to produce tools that are easy for novices to use, yet suitably ambitious for experts. Traditional benchmarking is not apt be appropriate in such relatively unstructured environments.
This article discusses software patterns' past, present, and future trends to help software developers and managers understand where the field has been, where it's headed, and how learning more about patterns ...
详细信息
This article discusses software patterns' past, present, and future trends to help software developers and managers understand where the field has been, where it's headed, and how learning more about patterns can help projects.
Writing applications that benefit from the massive computational power of future multicore chip multiprocessors will not be an easy task for mainstream programmers accustomed to sequential algorithms rather than paral...
详细信息
Writing applications that benefit from the massive computational power of future multicore chip multiprocessors will not be an easy task for mainstream programmers accustomed to sequential algorithms rather than parallel ones. this article presents a survey of transactional memory, a mechanism that promises to enable scalable performance while freeing programmers from some of the burden of modifying their parallel code.
暂无评论