Thursday, August 16. 2012The necessity of object orientation in geophysical software applicationsTrackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
IWAVE is built in this "light OO" fashion, plus a bit more. The backbone consists of structs realizing key FD types and associated functions for manipulating them - lightweight "objects", with static members acting as private data, as you describe. IWAVE also uses a form of runtime polymorphism (inheritance): for the central structs, the corresponding functions are accessed via function pointers which are members of the struct, and must be initialized by calling a "constructor", so that these "class methods" are accessible. This setup realizes an abstract type with concrete subtypes. IWAVE uses it to abstract a large part of the essential parallel FD code so that it can be shared by all apps of the class.
I also believe that there is a role for genuine, gold-plated OO in contexts where great differences in abstraction level exist. The main opportunity in our business is simulation-driven optimization, also known as inversion. Bill
Dear Nick,
I am not sure if I properly understand what "light" object orientation is. It is the term "light" that confuses me. Thanks a lot.
Sorry for the confusing term. By it I mean classes and methods that are short and simple, with no complex relationships and inheritances, just one step up from classic procedural programming, so they are easy to understand, write and debug even by a novice.
|
CalendarQuicksearchArchivesTop ExitsBlog AdministrationCategoriesLast Search (Google, Yahoo, Bing, Scroogle) |