C++ Books

Tuesday, November 23, 2010

Extending Type Systems in a Library

Type-safe XML processing in C++
by Yuriy Solodkyy and Jaakko Järvi

Abstract

Type systems built directly into the compiler or interpreter of a programming language cannot be easily extended to keep track of run-time invariants of new abstractions. Yet, programming with domain-specific abstractions could benefit from additional static checking. This paper presents library techniques for extending the type system of C++ to support domain-specific abstractions. The main contribution is a programmable “subtype” relation. As a demonstration of the techniques, we implement a type system for defining type qualifiers in C++, as well as a type system for the XML processing language, capable of, e.g., statically guaranteeing that a program only produces valid XML documents according to a given XML schema.


Research highlights

  • Metaprogramming capabilities of C++ enable domain-specific type system extensions.
  • A template library for building new type system extensions.
  • Type system extensions for type qualifiers.
  • Type system extensions for regular expression types for typing XML.

Keywords: Type systems; XML; Type qualifiers; C++; Template metaprogramming; Active libraries

Wednesday, October 13, 2010

25th Anniversary of C++

This Thursday will mark the 25th anniversary of the commercial release of the programming language C++, which was designed and implemented by our very own Distinguished Professor and College of Engineering Chair in Computer Science Dr. Bjarne Stroustrup. C++ is one of the most popular programming languages in the world. The first commercial release of the language and the publication of the first edition of the book entitled "The C++ Programming Language" happened on October 14, 1985.

Thursday, September 23, 2010

Literature Search for Computer Science

Interesting talk by Todd Veldhuizen that was presented by Dr. Jaakko Jarvi during our PTTL Reading Group gathering last Friday.

Literature Search for Computer Science

by Todd Veldhuizen
Abstract
Why read the literature?
  • Because sometimes "a year of hard work can save a week of reading".
  • Increase the likelihood that someone will care about your research:
    • Not duplicate an already known result.
    • Identify communities of people who will appreciate what you are doing.
  • Be able to give a convincing treatment of your research problem:
    • Using standard terminology and notations;
    • Comparing your contribution to related work;
    • Avoiding obvious ‘newbie ’ mistakes
    • Not getting crushed by some crusty professor who claims to have published your result twenty years ago.

Friday, April 30, 2010

Dr. Stroustrup named Distinguished Professor

by Tony Okonski

Dr. Bjarne Stroustrup has earned promotion to the academic rank of Distinguished Professor in recognition of his contributions to computer science and software development at Texas A&M University. The promotion will take effect on September 1, 2010.

Dr. Stroustrup's research interests include distributed systems, simulation, design, programming techniques, software development tools, and programming languages. Stroustrup is the College of Engineering Chair in Computer Science at Texas A&M University.

He is the author of three editions of the definitive book on C++, The C++ Programming Language, The Design and Evolution of C++ (1994), The Annotated C++ Reference Manual (1989), and a textbook for freshmen and beginning programmers, Programming Principles and Practice Using C++ (2009). These books have been translated in numerous languages.

C++ is one of the most widely used programming languages. It is used for everyday applications such as internet browsers and cell phones as well as scientific applications, such as NASA's Mars Rovers and the human genome project. Its key strength is in infrastructure applications, such as wind turbine control, micro-electronics industrial tools, and Google.

Stroustrup is a member of the National Academy of Engineering, an IEEE Fellow, an AT&T Fellow, and an ACM Fellow. He is actively involved in the ANSI/ISO standardization of C++.

In 1993 he received the ACM Grace Murray Hopper award "for his early work laying the foundations for the C++ programming language. Based on those foundations and Dr. Stroustrup's continuing efforts, C++ has become one of the most influential programming languages in the history of computing." In 2008, Stroustrup received the Dr. Dobb's Excellence in Programming award for "advancing the craft of computer programming."

Stroustrup is also a recipient of the 2009 Association of Former Students at Texas A&M University Distinguished Achievement Award in the Category of Research at both the College of Engineering and University levels. His elevation to Distinguished Professor is a very noteworthy achievement as it signifies the excellence and quality of Dr. Stroustrup's teaching and research in programming languages.

Thursday, January 28, 2010

What Should We Teach New Software Developers? Why?

Dr. Bjarne Stroustrup, Professor and College of Engineering Chair in Computer Science at Texas A&M University, recently wrote an article for Communications of the ACM where he speaks about the fundamental changes to computer science education that are required to better address the needs of industry. The article in its entirety can be found here.