Programming language challenges in systems codes: why systems programmers still use C, and what to do about it

There have been major advances in programming languages over the last 20 years. Given this, it seems appropriate to ask why systems programmers continue to largely ignore these languages. What are the deficiencies in the eyes of the systems programmers? How have the efforts of the programming language community been misdirected (from their perspective)? What can/should the PL community do address this?As someone whose research straddles these areas, I was asked to give a talk at this year's PLOS workshop. What follows are my thoughts on this subject, which may or not represent those of other systems programmers.

[1]  James R. Larus,et al.  Language support for fast and reliable message-based communication in singularity OS , 2006, EuroSys.

[2]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[3]  James R. Larus,et al.  Deconstructing process isolation , 2006, MSPC '06.

[4]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[5]  Jonathan S. Shapiro A C++ toolkit , 1991 .

[6]  Jon Udell A C++ toolkit , 1988 .

[7]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

[8]  Jonathan S. Shapiro,et al.  Type inference for unboxed types and first class mutability , 2006, PLOS '06.

[9]  Edoardo Biagioni A Structured TCP in Standard ML , 1994, SIGCOMM.

[10]  Robin Milner,et al.  Definition of standard ML , 1990 .

[11]  Mark P. Jones,et al.  High-level views on low-level representations , 2005, ICFP '05.

[12]  Hao Chen,et al.  Using build-integrated static checking to preserve correctness invariants , 2004, CCS '04.

[13]  Trevor Blackwell Speeding up Protocols for Small Messages , 1996, SIGCOMM.

[14]  Jonathan M. Smith,et al.  EROS: a fast capability system , 1999, SOSP.

[15]  Herb Derby The Performance of FoxNet 2.0 , 1999 .

[16]  Mark P. Jones,et al.  A principled approach to operating system construction in Haskell , 2005, ICFP '05.

[17]  Jonathan Adams,et al.  Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources , 2001, USENIX Annual Technical Conference, General Track.

[18]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[19]  Feng Zhou,et al.  Thirty Years Is Long Enough: Getting Beyond C , 2005, HotOS.

[20]  Jonathan S. Shapiro,et al.  EROS: A Principle-Driven Operating System from the Ground Up , 2002, IEEE Softw..