Tuesday, February 24, 2009

Architecture/Design Analysis and UML Diagramming

1. Activity diagram to describe process view (thread and flowchart)

http://download.boulder.ibm.com/ibmdl/pub/software/dw/rationaledge/may01/UsingUMLActivityDiagramsfortheProcessViewMay01.pdf

Sunday, February 22, 2009

Visual C++ 2010 and Parallel Patterns Library

Found an introduction article for Visual C++ 2010

http://msdn.microsoft.com/en-us/magazine/dd434652.aspx

1. Inclusion of TR1 to C++ Standard Library, including the support of function objects through the use of "bind"

2. Suppport for "auto" keyword, to avoid explicitly defining the type of variable (because the type is either very hard to define or complicated to express)

3. Support for lambda expressions to define unnamed function objects (also called "closures")

Example: auto f = [](int x, int y) { return x + y; };

Saturday, February 21, 2009

Programming Paradigms

1. Imperative/Procedural/Algorithmic
- "Verb" oriented (i.e. imperative), decompose programs into subroutine, sub-subroutine and so on
- Tells the computer to run the program in a sequence of steps
- Language: C

2. Functional
- No side effect, all effects are returned as return-value
- Language: Lisp, Scheme

3. Logic/Predicative
- Language: Prolog

4. Object Oriented

5. Aspect Oriented
- Derived from OO
- (Aspect C++) http://www.aspectc.org/

6. Reflection Oriented
- Derived from OO
- (Reflection in C++) http://www.garret.ru/cppreflection/docs/reflect.html