Abstract programming and program transformation—an approach to reusing programs
Software reusability: vol. 1, concepts and models
Extending compound assignments for C++
ACM SIGPLAN OOPS Messenger
Fortran 90 handbook: complete ANSI/ISO reference
Fortran 90 handbook: complete ANSI/ISO reference
Automatic selection of high-order transformations in the IBM XL FORTRAN compilers
IBM Journal of Research and Development - Special issue: performance analysis and its impact on design
Building high-performance applications and services in Java: an experiential study
Addendum to the 1997 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (Addendum)
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Software Engineering Economics
Software Engineering Economics
The Java Language Specification
The Java Language Specification
ROSE: An Optimizing Transformation System for C++ Array-Class Libraries
ECOOP '98 Workshop ion on Object-Oriented Technology
Will C++ Be Faster than Fortran?
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
A Transformation Tool for Pure Prolog Programs
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Coordinate free programming of computational fluid dynamics problems
Scientific Programming
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
On minimizing materializations of array-valued temporaries
ACM Transactions on Programming Languages and Systems (TOPLAS)
Coordinate free programming of computational fluid dynamics problems
Scientific Programming
Machine and collection abstractions for user-implemented data-parallel programming
Scientific Programming
Case study on algebraic software methodologies for scientific computing
Scientific Programming
A grid-free abstraction of the Navier-Stokes equations in Fortran 95/2003
ACM Transactions on Mathematical Software (TOMS)
Proceedings of the 22nd annual international conference on Supercomputing
Coordinate-free numerics: all your variation points for free?
International Journal of Computational Science and Engineering
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
The abstract mathematical theory of partial differential equations (PDEs) is formulated in terms of manifolds, scalar fields, tensors, and the like, but these algebraic structures are hardly recognizable in actual PDE solvers. The general aim of the Sophus programming style is to bridge the gap between theory and practice in the domain of PDE solvers. Its main ingredients are a library of abstract datatypes corresponding to the algebraic structures used in the mathematical theory and an algebraic expression style similar to the expression style used in the mathematical theory. Because of its emphasis on abstract datatypes, Sophus is most naturally combined with object-oriented languages or other languages supporting abstract datatypes. The resulting source code patterns are beyond the scope of current compiler optimizations, but are sufficiently specific for a dedicated source-to-source optimizer. The limited, domain-specific, character of Sophus is the key to success here. This kind of optimization has been tested on computationally intensive Sophus style code with promising results. The general approach may be useful for other styles and in other application domains as well.