Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1215995.1216004acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
Article

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

Published: 22 October 2006 Publication History

Abstract

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.

References

[1]
M. Aiken, M. Fähndrich, C. Hawblitzel, G. Hunt, and J. R. Lauris. "Deconstructing Process Isolation." Microsoft Technical Report MSR-TR-2006-43. Microsoft, Inc. 2006
[2]
Thomas Ball and Sriram K. Rajamani. "The SLAM Project: Debugging System Software via Static Analysis." Proc. 2002 ACM SIGPLAN-SIGACT Conference on Principles of Programming Languages, 2002.
[3]
E. Biagioni. "A Structured TCP in Standard ML." Proc. SIGCOMM 1994. pp. 36--45. 1994.
[4]
T. Blackwell. "Speeding up Protocols for Small Messages." Proc. ACM SIGCOMM '96. pp. 85--95. Sep. 1996.
[5]
J. Bonwick and J. Adams. "Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources." Proc. 2001 USENIX Annual Technical Conference, pp. 15--33. Boston, MA. 2001
[6]
E. Brewer, J. Condit, B. McCloskey, and F. Zhou. "Thirty Years is Long Enough: Getting Beyond C." Proc. Tenth Workshop on Hot Topics in Operating System (HotOS X), USENIX, 2005.
[7]
H. Chen and J. Shapiro, "Using Build-Integrated Static Checking to Preserve Correctness Invariants." Proc. 11th ACM Conference on Computer and Communications Security, pp. 288--297. Washington, DC. 2004
[8]
H. Derby. The Performance of FoxNet 2.0. CMU Technical Report CMU-CS-99-137. 1999.
[9]
Iavor S. Diatchki, Mark P. Jones, and Rebekah Leslie. "High- level Views on Low-level Representations." Proc. 10th ACM Conference on Functional Programming pp. 168--179. September 2005.
[10]
M. Fähndrich, M. Aiken, C. Hawblitzel, O. Hodson, G. Hunt, J. R. Lauris, and S. Levi. "Language Support for Fast and Reliable Message-based Communication in Singularity OS." Proc. EUROSYS 2006, Leuven Belgium. 2006
[11]
T. Hallgren, M. P. Jones, R. Leslie, and A. Tolmach. "A Principled Approach to Operating System Construction in Haskell." Proc. International Conference on Functional Programming (ICFP'05), Sep. 2005. Tallinn, Estonia. pp. 116--128.
[12]
ISO, International Standard ISO/IEC 8652:1995 (Information Technology --- Programming Languages --- Ada) International Standards Organization (ISO). 1995.
[13]
ISO, International Standard ISO/IEC 9899:1999 (Programming Languages - C) International Standards Organization (ISO). 1999.
[14]
M. Kaufmann, J. S. Moore. Computer Aided Reasoning: An Approach, Kluwer Academic Publishers, 2000.
[15]
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, 1988
[16]
Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML - Revised The MIT Press, May 1997.
[17]
Simon Peyton Jones (ed.). Haskell 98 Language and Libraries: The Revised report. Cambridge University Press. 2003.
[18]
J. S. Shapiro, J. M. Smith, and D. J. Farber. "EROS, A Fast Capability System" Proc. 17th ACM Symposium on Operating Systems Principles. Dec 1999. pp. 170--185. Kiawah Island Resort, SC, USA.
[19]
J. S. Shapiro and N. Hardy. "EROS: A Principle-Driven Operating System from the Ground Up." IEEE Software, 19(1). Jan. 2002.
[20]
J. S. Shapiro, Eric Northup, M. Scott Doerrie, and Swaroop Sridhar. Coyotos Microkernel Specification, 2006, available online at www.coyotos.org.
[21]
J. S. Shapiro. A C++ Toolkit, Prentice Hall, 1999.
[22]
J. S. Shapiro, S. Sridhar, and M. S. Doerrie. BitC Language Specification, version 0.3+ http://coyotos.org/docs/bitc/spec.html
[23]
S. Sridhar and J. Shapiro. "Type Inference for Unboxed Types and First Class Mutability" Proc. 3rd ECOOP Workshop on Programming Languages and Operating Systems (PLOS 2006) San Jose, CA. 2006.

Cited By

View all
  • (2021)Improving GHC Haskell NUMA profilingProceedings of the 9th ACM SIGPLAN International Workshop on Functional High-Performance and Numerical Computing10.1145/3471873.3472974(1-12)Online publication date: 22-Aug-2021
  • (2017)Systems level liveness with extemporeProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133858(214-228)Online publication date: 25-Oct-2017
  • (2012)On the Use of Underspecified Data-Type Semantics for Type Safety in Low-Level CodeElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.102.8102(73-87)Online publication date: 26-Nov-2012
  • Show More Cited By

Index Terms

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

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PLOS '06: Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
      October 2006
      64 pages
      ISBN:1595935770
      DOI:10.1145/1215995
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 22 October 2006

      Permissions

      Request permissions for this article.

      Check for updates

      Qualifiers

      • Article

      Conference

      ASPLOS06
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 17 of 32 submissions, 53%

      Upcoming Conference

      SOSP '24

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)39
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 15 Oct 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2021)Improving GHC Haskell NUMA profilingProceedings of the 9th ACM SIGPLAN International Workshop on Functional High-Performance and Numerical Computing10.1145/3471873.3472974(1-12)Online publication date: 22-Aug-2021
      • (2017)Systems level liveness with extemporeProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133858(214-228)Online publication date: 25-Oct-2017
      • (2012)On the Use of Underspecified Data-Type Semantics for Type Safety in Low-Level CodeElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.102.8102(73-87)Online publication date: 26-Nov-2012
      • (2012)Summary of PLOS 2011ACM SIGOPS Operating Systems Review10.1145/2094091.209409345:3(1-4)Online publication date: 11-Jan-2012
      • (2011)A Precise Memory Model for Operating System Code VerificationProceedings of the 2011IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications10.1109/TrustCom.2011.153(1125-1132)Online publication date: 16-Nov-2011
      • (2009)Demystifying magicProceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments10.1145/1508293.1508305(81-90)Online publication date: 11-Mar-2009
      • (2009)Formal Verification of C Systems CodeJournal of Automated Reasoning10.1007/s10817-009-9120-242:2-4(125-187)Online publication date: 1-Apr-2009
      • (2008)Robustly secure computer systemsProceedings of the 2007 Workshop on New Security Paradigms10.1145/1600176.1600186(55-65)Online publication date: 15-Jul-2008

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media