next up previous [pdf]

Next: Final thoughts Up: Developers Previous: Core API

Program design philosophy

While Madagascar does not strictly have a design requirement for programs to enter the main distribution, there are some general guidelines to programs that we would like developers to follow. In particular, we would like developers to: design programs that have error handling and parameter checking, that accept command line arguments to control important parameters in the program, and write programs that are limited in scope. For example, a program that is limited in scope is a program that computes the Fourier transform of a real-valued signal and outputs a complex-valued RSF file. Conversely, a program that overreaches in its scope, would be a program that conducts a long series of processing completely in another language (say C or Fortran). You should avoid designing programs with too much scope, because you cannot fully leverage the advantages of SCons and Python, if everything is happening inside a C or Fortran program.

Figure 1: A Madagascar program reads RSF files, processes them, and then outputs them at the most fundamental level.
\begin{figure}\begin{picture}(5,0.5)(0,0)
\put(0,0){\framebox{(}1,0.5){RSF file...
...tor(1,0){1}}
\put(4,0){\framebox{(}1,0.5){RSF file}}
\end{picture}
\end{figure}


next up previous [pdf]

Next: Final thoughts Up: Developers Previous: Core API

2011-11-03