History and Spirit of C and C++ Olve Maudal

History and Spirit of C and C++ Olve Maudal

History and Spirit of C and C++ Olve Maudal https://c1.staticflickr.com/1/118/300053732_0b20ed7e73.jpg To get a deep understanding of C and C++, it is useful to know the history of these wonderful programming languages. It is perhaps even more important to appreciate the driving forces, motivation and the spirit that has shaped these languages into what we have today. In the first half of this talk we go back to the early days of programmable digital computers. We will take a brief look at really old machine code, assembler, Fortran, IAL, Algol 60 and CPL, before we discuss the motivations behind BCPL, B and then early C. We will also discuss influential hardware architectures represented by EDSAC, Atlas, PDP-7, PDP-11 and Interdata 8/32. From there we quickly move through the newer language versions such as K&R C, C89, C99 and C11. In the second half we backtrack into the history again, now including Simula, Algol 68, Ada, ML, Clu into the equation. We will discuss the motivation for creating C++, and with live coding we will demonstrate by example how it has evolved from the rather primitive “C with Classes” into a supermodern and capable programming language as we now have with C++11/14 and soon with C++17. A 90 minute session at ACCU 2015, April 23, Bristol, UK Part I Part II History and spirit of C History and spirit of C++ The short version Before C++ Before C Developing the initial versions of C++ (pre-1985) Early C and K&R Development of C++ (after-1985) ANSI C Evolution of C++ by examples Modern C Q&A Part I Part II History and spirit of C History and spirit of C++ The short version Before C++ Before C Developing the initial versions of C++ (pre-1985) Early C and K&R Development of C++ (after-1985) ANSI C Evolution of C++ by examples Modern C Q&A (~90 minutes) (a few minutes) Part I Part II History and spirit of C History and spirit of C++ The short version Before C++ Before C Developing the initial versions of C++ (pre-1985) Early C and K&R Development of C++ (after-1985) ANSI C Evolution of C++ by examples Modern C Q&A (~90 minutes) (a few minutes) C History and Spirit of C Olve Maudal https://c1.staticflickr.com/1/118/300053732_0b20ed7e73.jpg To get a deep understanding of C, it is useful to know the history of this wonderful programming language. It is perhaps even more important to appreciate the driving forces, motivation and the spirit that has shaped the language into what we have today. In this talk we go back to the early days of programmable digital computers. We will take a brief look at really old machine code, assembler, Fortran, IAL, Algol 60 and CPL, before we discuss the motivations behind BCPL, B and then early C. We will also discuss influential hardware architectures represented by EDSAC, Atlas, PDP-7, PDP-11 and Interdata 8/32. From there we quickly move through the newer language versions such as K&R C, C89, C99 and C11. A ~90 minute session at ACCU 2015, April 23, Bristol, UK This is based on research partly done together with Jon Jagger Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. Unix Dennis Ritchie BCPL K&R ANSI C 7 Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. ENIAC The entry keyword Unix Influence from Smalltalk Dennis Ritchie Summer of ‘69 BCPL 7 ISO/IEC/IEEE 60559:2011 K&R Ada Lovelace ANSI C DEC PDP-8 Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. ENIAC The entry keyword Unix Influence from Smalltalk Dennis Ritchie Summer of ‘69 BCPL 7 ISO/IEC/IEEE 60559:2011 K&R Ada Lovelace ANSI C DEC PDP-8 Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. ENIAC The entry keyword Unix Influence from Smalltalk Dennis Ritchie Summer of ‘69 BCPL 7 ISO/IEC/IEEE 60559:2011 K&R Ada Lovelace ANSI C DEC PDP-8 Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. ENIAC The entry keyword Unix Influence from Smalltalk Dennis Ritchie Summer of ‘69 BCPL 7 ISO/IEC/IEEE 60559:2011 K&R Ada Lovelace ANSI C DEC PDP-8 Portability Trust the programmer Let’s play bingo! Write down 7 words/names/concepts/whatever that you expect/hope to be discussed/mentioned in a talk titled “History and Spirit of C”. ENIAC The entry keyword Unix Influence from Smalltalk Dennis Ritchie Summer of ‘69 BCPL 7 ISO/IEC/IEEE 60559:2011 K&R Ada Lovelace ANSI C DEC PDP-8 3 Portability Trust the programmer http://thesourceny.com/welcome/wp-content/uploads/2014/02/stage-red-curtain.jpg The history of C http://thesourceny.com/welcome/wp-content/uploads/2014/02/stage-red-curtain.jpg The history of C in 90 http://thesourceny.com/welcome/wp-content/uploads/2014/02/stage-red-curtain.jpg The history of C in 90 seconds http://thesourceny.com/welcome/wp-content/uploads/2014/02/stage-red-curtain.jpg At Bell Labs. http://www3.nd.edu/~atrozzol/BellLabs1959.jpg Back in 1969. http://www.multicians.org/picnics.html Ken Thompson wanted to play. Ken Thompson wanted to play. http://upload.wikimedia.org/wikipedia/commons/3/36/Ken_n_dennis.jpg He found a little used PDP-7. http://en.wikipedia.org/wiki/PDP-7#/media/File:Pdp7-oslo-2005.jpeg Ended up writing a nearly complete operating system from scratch. https://archive.org/stream/byte-magazine-1983-08/1983_08_BYTE_08-08_The_C_Language#page/n190/mode/1up In about 4 weeks. “Essentially one person for a month, it was just my self.”! (Ken Thompson, 1989 Interview) In pure assembler of course. http://bitsavers.trailing-edge.com/pdf/dec/pdp7/PDP-7_AsmMan.pdf Dennis Ritchie soon joined the effort. http://upload.wikimedia.org/wikipedia/commons/3/36/Ken_n_dennis.jpg While porting Unix to a PDP-11 http://cm.bell-labs.com/who/dmr/picture.html While porting Unix to a PDP-11 Ken http://cm.bell-labs.com/who/dmr/picture.html While porting Unix to a PDP-11 Dennis Ken http://cm.bell-labs.com/who/dmr/picture.html they invented C, http://cm.bell-labs.com/cm/cs/who/dmr/ctut.pdf heavily inspired by Martin Richards’ portable systems programming language BCPL. GET “LIBHDR” LET START() BE WRITES(“Hello, World”) Martin Richards, Dec 2014 http://cm.bell-labs.com/cm/cs/who/dmr/ctut.pdf In 1972 Unix was rewritten in C, https://code.google.com/p/unix-jun72/source/browse/trunk/src/c/c03.c and later ported to many other machines http://www.computerhistory.org/collections/catalog/102691249 http://www.technikum29.de/en/computer/early-computers http://en.wikipedia.org/wiki/IBM_System/370 http://alegion63.tripod.com/bob/id6.html aided by Steve Johnsons Portable C Compiler.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    250 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us