Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2011
…
15 pages
1 file
Programming physicists use, as all programmers, arrays, lists, tuples, records, etc., and this requires some change in their thought patterns while converting their formulae into some code, since the "data structures" operated upon, while elaborating some theory and its consequences, are rather: power series and Pad\'e approximants, differential forms and other instances of differential algebras, functionals (for the variational calculus), trajectories (solutions of differential equations), Young diagrams and Feynman graphs, etc. Such data is often used in a [semi-]numerical setting, not necessarily "symbolic", appropriate for the computer algebra packages. Modules adapted to such data may be "just libraries", but often they become specific, embedded sub-languages, typically mapped into object-oriented frameworks, with overloaded mathematical operations. Here we present a functional approach to this philosophy. We show how the usage of Haskell datat...
Computing in Science & Engineering, 1999
We advocate the usage of modern functional programming languages, and lazy functional techniques for the description and implementation of abstract mathematical objects in Quantum Mechanics, needed both for pedagogical purposes, and for some real, not too computationally intensive, but conceptually and algorithmically difficult applications. We show how to perform simple abstract computations on state vectors, and we discuss the construction of some lazy algorithms, which facilitate enormously the manipulation of potentially infinite data structures, or iterative processes. Lazy functional techniques may replace in many cases the usage of symbolic computer algebra packages, and often offer additionally an interesting algorithmic complement to the manipulation of mathematical data, more efficient than blindly used symbolic algebra, and easily integrable with the numerical code.
2001
The purpose of the present work is to consider some of the implications of replacing, for the purposes of physics instruction, algebraic notation with a programming language. Whatis novel is that, more than previous work, I take seriously the possibility that a programming language can function as the principle representational system for physics instruction. This means treating programming as potentially having a similar status and performing a similar function to algebraic notation in physics learning.
The Architecture of Scientific Software, 2001
A distinguished feature of scientific computing is the necessity to design software abstractions for approximations. The approximations are themselves abstractions of mathematical models, and the mathematical models are also abstractions of the real world. In this paper, the relation between different mathematical abstraction levels and scientific computing software is discussed, in particular with respect to the simulation of partial differential equations. By applying software engineering practices already when the mathematical model is considered, a coordinate-free formulation is readily motivated. For partial differential equations, the continuos layer is identified as separate from the the coordinate-free layer. By mapping these layers into different software modules, numerical discretization carried out in the continuous layer is cleanly separated from the coordinate-free layer. This separation of concerns increases modularity because reusability is promoted. It is therefore concluded that the continuous and coordinate-free abstraction layers provide a solid foundation for software that simulates partial differential equations.
INFORMATICA
Abstract. This paper is concerned with design, implementation and verification of persistent purely functional data structures which are motivated by the representation of natural numbers using posi- tional number systems. A new implementation of random-access list based on ...
2000
We describe the environment for symbolic and numeric computations, called SYNAPS (Sym- bolic and Numeric APplicationS) and developed in C++. Its aim is to provide a coherent platform integrating many of the nowadays freely available software in scientific computing. The approach taken here is inspired by the recent paradigm of software developments called active library. In this paper, we explain
Implementation of Functional Languages, 1997
This paper discusses some of the pros and cons of extending a simple functional language called Sac (for Single Assignment C) by array operations similar to those that are available in Apl. The array operations in Sac are based on the-calculus, an algebra of arrays which provides a formalism for specifying and simplifying array operations in terms of index set manipulations. The programming techniques made possible by Sac are demonstrated by means of a functional program for the approximation of numerical solutions of partial di erential equations by multigrid relaxation. This application is not only of practical relevance but also fully exposes the avors of using high-level array operations. In contrast to speci cations in other languages, e.g. in Fortran or Sisal, the Sac program is well structured, reasonably concise, and-what is most important-invariant against dimensionalities and shapes. However, sophisticated compilation techniques are necessary to avoid, whenever possible, the creation of temporary arrays and to eliminate redundant operations. The paper also includes performance gures for a Sac implementation of the NAS-mgrid-benchmark which are competetive with those of a Sisal implementation.
proceedings of …, 2009
build powerful and efficient tools for mathematical and scientific programming. Power comes from basing it on proven extendable concepts, and efficiency from operating on many set elements at a time and from the flexibility to use the proper implementation for particular special cases. MAPS will be implemented as a C++ class library with the philosophy that a naive user need not know very much, yet a sophisticated user may extend the language arbitrarily. It will use inheritance and polymorphism to hide the details of how an array, for example, is a type of Map, but allow a sophisticated user to produce a new type of array with the properties needed for a specific application or computer. A crucial part of a conventional language is that the average user need not understand code generation or the hundreds of other things involved with turning a high level language into an executable program. Here it is not simply desirable that the average user need not know just how it is built, it
Trends in Computer Algebra, 1988
The main problem which occurs in developing Computer Algebra packages for special areas in mathematics is the complexity. The unique concept which is advocated to cope with that problem is the introduction of suitable abstract data types. The corresponding decomposition into modules makes it much easier to develop, maintain and change the program. After introducing the relevant concepts from software engineering they are elaborated by means of the symmetry analysis of differential equations and the Scratchpad package SPDE which abbreviates Symmetries of Partial Differential Equations.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
Proceedings of the conference on Functional programming languages and computer architecture - FPCA '93, 1993
Lecture Notes in Computer Science, 2000
Lecture Notes in Computer Science, 2008
… of the 1988 ACM conference on LISP …, 1988
Artificial Intelligence and Symbolic Computation, 1998
Theoretical computer science, 1992
Advances in the design of symbolic …, 1997
Springer eBooks, 2022
Lecture Notes in Computer Science, 1995
Proceedings of the ACM on Programming Languages
ACM Sigplan …, 1992
University of Oregon, 2020
ACM SIGPLAN Notices
Lecture Notes in Computer Science, 1999
ACM Communications in Computer Algebra, 2015