C/C++ Software Development

C/C++ Projects that We Have Started and Completed

  • Wrote Suite of Seven Geotechnical Software Applications
  • Helped Write 486/Pentium Simulation Model for IBM
  • Wrote WindowsNT Device Driver to Monitor Internal Pentium Processor Performance Counters
  • Wrote Linux CGI Routines

Dennis Ritchie developed the C programming language while working for Bell Labs in 1972. C was developed for use as the primary compiler for use with the Unix operating system which was also developed by Bell Labs. In 1978, Ritchie and Brian Kernighan published the landmark book, The C Programming Language, commonly called K&R.

C was developed using the same semantics and syntax of predecessor programming languages such as B, Algol, Fortran, and PL/1, and was used as a foundation for successor programming languages like C++, Java, PHP, and Perl. Semantics and syntax of C encourages a "structured" programming style. The simplicity of C allows the compilation of code to machine language with excellent performance characteristics, approaching the performance of machine language produced by assembly language programs.

In 1979, Bjarne Stroustrup began work on the C++ compiler, which initially was named, "C with Classes." In 1983,the language was renamed to C++ using the C iterator operator, ++. The first edition of The C++ Programming Language was released in 1985. To the C programming language, C++ added the new features abstract, public, and private classes, multiple inheritance, operator overloading,virtual functions, templates, exception handling, and other features. Semantics and syntax encouraged an Object Oriented Design methodology. Since then C++ has become a widely used programming language.

Device drivers, embedded systems, real time applications and other software requiring high performance can be written in C or C++.

C/C++ does not include garbage collection which is available in other programming languages like Java. Porting of code from one platform to another requires a program to be recompiled and may also require resolution of idiosyncrasies specific to a given platform. However, programs will run natively, with machine instructions specific to a given platform, thus eliminating the need for an intermediate layer of software like the Java Virtual Machine, which is necessary for Java programs.