Welcome to the SeasJPF/CppDevelopment web

This is an ambiguous name which could mean any of the following:

  • Development of program codes in C++
  • General techniques for programming in C++
  • Developments in the C++ language.
  • Programming Patterns in C++.
My intention is that these pages can cover all of them. Those of you who have attended my seminars will know that this is an interest of mine.

For the moment I will put in some external links to work I have contributed on the http://c2.com/cgi/wiki?WelcomeVisitors Original Wiki aka wikiwiki, Ward's wiki, or just C2. I have been active there for more than ten years. There are currently just over 33000 pages on many programming topics. There is a lot of information there on C++ and it would be a lot of work to duplicate that here. Instead I will provide as many links as I can organised here by topics.

-- JohnFletcher - 28 Apr 2008

I have now widened this wiki to include other programming topics such as Literate Programming and R language programming.

-- JohnFletcher - 27 Sep 2010

Back to my main WebHome.

New Topics

I want to add some new topics to these pages. Some are not C++ but they are programming related and they will have strong links to what is here already.

I have now created separate pages for these topics, although in fact two of them are linked by the fact that Literate Programming is much used by users of the R language to generate reports. Scala language has a strong funtional character which links with some of the C++ topics here.

-- JohnFletcher - 22 Oct 2010

Programming Patterns

Programming Patterns was the core purpose behind the http://c2.com/cgi/wiki?WelcomeVisitors Original Wiki and it has many resources on this, not restricted in any way to C++. There is a lot of information there on Java and other languages.

Functional Reactive Programming in C++

FunctionalReactiveProgramming is a phrase I have only recently come across. There is quite a lot of work using Haskell as a base language. There is also some work in C++ which I have been looking at and want to link with my other work. In FunctionalReactiveProgramming a process is running in real time and receiving data from an external source.

Functional Simulation Programming in C++

Arising from thinking about FunctionalReactiveProgramming, I have decided that I am more interested in FunctionalSimulationProgramming. This can use the same programming techniques as FunctionalReactiveProgramming but without the real time implications. There is some work using Haskell as a base language. I have also been able to develop some examples using FC++ and its variants in various ways. I gave a seminar to the KEG group on this work.

Functional Programming in C++

Some years ago I came across some software called FC++ which has its own web site, now rather dated here. There is also a site on sourceforge. I am actively involved in this work in various ways which I want to explain here.

I have provided a link below to some pages on this on http://c2.com/cgi/wiki?WelcomeVisitors C2. http://c2.com/cgi/wiki?FunctoidsInCpp Functional Programming in C++ is the best starting point for the moment.

I first came across FC++ as a way to implement LazyEvaluation in C++ for work I was doing on ComputerAlgebra for my work on Clifford Algebra. For details of the first stages of the work see this paper.

One of the uses I have made of FC++ is discussed on this page: http://c2.com/cgi/wiki?ContinuationPassingStyleInCeePlusPlus Continuation Passing Style in C++.

I am also working to make links between FC++ and the http://c2.com/cgi/wiki?BoostLambdaLibrary Boost Lambda Library. This provides lambda functions within the structures of FC++ and makes for more readable code. For an example see http://c2.com/cgi/wiki?VariadicFunctoidsInCpp Variadic Functoids in C++ on the C2 wiki.

One of the papers by the authors of FC++ is http://c2.com/cgi/wiki?FunctionalToolsForObjectOrientedTasks Functional Tools for Object Oriented Tasks which I want to compare with a paper mentioned on the Scala language page.

Template Programming in C++

Template programming in C++ is certainly not easy. One of the benefits of learning it is to be able to construct general purpose library code which can be used without having to redo the complex tasks needed in the initial development. Quite a lot of those things are available in the Boost libraries, particularly since February 2009 when version 1.38.0 became available. Each version has several new libraries included. The current version (October 2010) is 1.44.0. Proposed libraries are voted on by users as to whether to include them.

Topics in Programming using C++

Some of these topics do not come up very often, but when they do they can make the difference between something seeming to be impossible and it becoming straightforward. Most of these are links to pages on the C2 wiki.

Parallel Programming in C++

I want to start a new section on this wiki to cover work in C++ for ParallelProgramming. This will cover a number of possible Parallel Programming Models including MPI and OpenMP?, which both have a place in this.

The C++ Standards Committee and the new draft standard C++0x

What Happened to Concepts?

I am particularly interested in the new feature of http://c2.com/cgi/wiki?ConceptCpp Concepts in C++ which was to be a part of this standard but has now been dropped from it and will be pursued later. Some of the history can be found at some sites maintained by Doug Gregor

Programming Books for C++

I will make a list here of some of the books to which I refer, with links to pages on the C2 wiki where available.

Version Control and Program Editing

I changed to use http://c2.com/cgi/wiki?SubVersion subversion for my C++ code development and would be interested to share experiences with other code developers. I have now changed again to use http://c2.com/cgi/wiki?GitVersionControl Git.

All of us who program will have our ways of maintaining the programs we use. I have just discovered the Eclipse IDE which I had not paid any attention to before now. It is interesting to me as I have just embarked on some activities which will involve programming both in C++ and FORTRAN and the latest version of Eclipse will support both these languages and others and will also support a range of version control, including Git. It is going to take some getting used to although I think that will be worth while.

-- JohnFletcher - 14 Nov 2010

Available Information on C2

These are external links on http://c2.com/cgi/wiki?WelcomeVisitors C2 to various aspects of work on C++

The reason I am making so much use of C2 is that there are more than 33000 pages there which refer to nearly everything I want to mention, and also crossreference very fully. If it is not there it can easily be added and linked in.

Other useful links

  • C++.org is a useful site with information on C++.
    • This is a potentially very useful source of information about libraries written in C++. I think it is still in its infancy and rather incomplete.
  • LLVM: http://www.llvm.org/ Compiler infrastructure
    • clang: http://clang.llvm.org/ which is a project building a completely different set of tools for C++. It is part of LLVM.

SeasJPF/CppDevelopment Web Utilities

Topic revision: r51 - 04 Apr 2011, JohnFletcher

This site is powered by FoswikiCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Aston Wiki? Send feedback