On Wednesday, December 2, the Stevens Computer Science department hosted the first of a series of lectures delivered by high-profile speakers. The lecturer for the event was Bjarne Stroustrup, whose work on the C++ language has made him world renowned. His talk focused on three main areas: what led to the creation of C++, how C++ is used today and the process for approving and standardizing the next generation of C++, C++0x.
Stroustrup's first topic covered the creation of C++. The language, originally called "C with Classes," was created in 1980 and finally accepted by the International Standards Organization (ISO) in 1998 as C++98. Because of its unique combination of system-level code and object-oriented programming, the language was quickly accepted in industry. Previous to then, programs had been written in four languages: assembler, FORTRAN, Simula, and C. Assembler, first used in 1951, and the language of the first modern program (a program able to run in the stored memory, or RAM, of a computer) was fast, but unreadable for humans, and did not make many inroads to industry. FORTRAN, created by IBM in 1956, was a different take on programming languages and preferred to express ideas in high-level ways, and espoused the mantra that "the expression of ideas [is] not limited to computers, so code should be portable." Simula introduced the idea of object-oriented programming in 1967, when Ole-Johan Dahl and Kristen Nygaard married the concepts of data with programming rules. Although the concepts created by Simula are still commonly used, the performance of programs in Simula was not acceptable for its time. The C programming language, created in 1972 by Dennis Ritchie, attempted to take the higher-level expressions and portability of FORTRAN while providing the speed present in assembler programs, and was wildly successful. Stroustrup built on these four previous languages by coupling the speed, portability, and higher-level expressions of C with the object-oriented model of Simula. He joked that he did it, "only because nobody ever told me I couldn't."
The second part of Stroustrup's talk focused on the ISO approval process for C++0x, as well as the goals for the new revision of the language. Despite being heavily bureaucratic, Stroustrup is a firm supporter of the standardization process, since it provides a baseline of features for those who create the tools that work with a language, such as libraries and compilers. The ISO process is overseen by the United Nations, including about 22 nations and over 200 members, and because of the greatly varied goals of those involved, can take years for simple changes to be implemented. Stroustrup's biggest issue with the process is that end-users and novices are typically either under-represented or completely unrepresented at these meetings.
The goals of C++0x were defined as following several rules of thumb. The first, and most important, was "don't break my code!" Since C++ has been used in industry since the mid-1980s, billions of lines of code have been written by over 3 million programmers, so maintaining existing backwards compatibility with C++98 was the most important rule. Driving this were several less-than-ideal decisions, such as the new null pointer keyword. Keywords are reserved words in a programming language that should not be redefined by the program. Defining a "null" pointer, a common act for almost all C++ programs, was typically done by the programmer. C++0x wished to rectify this by creating a standard null pointer. Since many existing programs use the word "null" to identify this pointer, the best way to maintain compatibility was to name the new null pointer "nullptr", as to not step on the toes of existing software. Another rule was to "make only changes that change the way people think." Concurrent programming methods, which are gaining rapid attention as computers with dual- and quad-core processors become increasingly prevalent, were largely ignored by previous revisions of C++, so C++0x will include better support for concurrent methods in its standard library.
The final part of the talk, mixed in amongst the other two parts, looked at how C++ is used today. Because of its mixture of object-oriented methods, which more closely model the real world than anything previously designed, and low-level system access, C++ is used all over the place today. One major example Stroustrup pointed out was that the Mars Rover's control software was written entirely in C++. Many embedded devices espouse C++, because it is able to talk to the hardware more directly. Interpreted languages like Java and C#, which are very popular in industry since they allow for very rapid application development, have their interpreters written in C++, since it can be optimized and maintained relatively easily.
The Computer Science Seminars focus on bringing accomplished industry leaders and researchers to Stevens to speak on their areas of interest. The next speaker will be Jan M. Allback, delivering a lecture titled "Places Everyone: Creating an Animated Background of Human Activity" on December 7, at 2 p.m. in Babbio 221.
CS Department hosts C++ Creator
Published: Friday, December 4, 2009
Updated: Tuesday, May 31, 2011 21:05


is a member of the 



Be the first to comment on this article! Log in to Comment
You must be logged in to comment on an article. Not already a member? Register now