Skip to main content

The Functional Programming Language R and the Paradigm of Dynamic Scientific Programming

(Position Paper)

  • Conference paper
Trends in Functional Programming (TFP 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7829))

Included in the following conference series:

Abstract

R is an environment and functional programming language for statistical data analysis and visualization. Largely unknown to the functional programming community, it is popular and influential in many empirical sciences. Due to its integrated combination of dynamic and reflective scripting on one hand, and array-based numerical computation on the other, R poses unique and challenging implementation problems, at odds with the conservative language technology employed by its developers. We discuss the background of R in historical context, highlight some of the more problematic language features, and discuss the potential for the effective use of state-of-the-art language technology in a future, safe and efficient implementation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ancona, D., Ancona, M., Cuni, A., Matsakis, N.D.: RPython: a step towards reconciling dynamically and statically typed OO languages. In: DLS. ACM, Montreal (2007) ISBN: 978-1-59593-868-8, doi:10.1145/1297081.1297091

    Google Scholar 

  2. Barr, A.J., Goodnight, J.H.: SAS, Statistical Analysis System. North Carolina State University (1971)

    Google Scholar 

  3. Bebenita, M., et al.: SPUR: a trace-based JIT compiler for CIL. In: OOPSLA. ACM, Reno/Tahoe (2010) ISBN: 978-1-4503-0203-6, doi:10.1145/1869459.1869517

    Google Scholar 

  4. Bolz, C.F., Cuni, A., Fijalkowski, M., Leuschel, M., Pedroni, S., Rigo, A.: Allocation removal by partial evaluation in a tracing JIT. In: Khoo, S.-C., Siek, J.G. (eds.) Partial Evaluation and Program Manipulation (PEPM 2011). ACM, Austin (2011) ISBN: 978-1-4503-0485-6

    Google Scholar 

  5. Bolz, C.F., Cuni, A., Fijalkowski, M., Leuschel, M., Rigo, A., Pedroni, S.: Runtime Feedback in a Meta-Tracing JIT for Efficient Dynamic Languages. In: ICOOOLPS. ACM, Lancaster (2011)

    Google Scholar 

  6. Bolz, C.F., Cuni, A., Fijalkowski, M., Rigo, A.: Tracing the meta-level: PyPy’s tracing JIT compiler. In: ICOOOLPS, pp. 18–25. ACM, Genova (2009) ISBN: 978-1-60558-541-3, doi:10.1145/1565824.1565827

    Google Scholar 

  7. Bolz, C.F., Leuschel, M., Schneider, D.: Towards a Jitting VM for Prolog execution. In: PPDP. ACM, Hagenberg (2010) isbn: 978-1-4503-0132-9, doi:10.1145/1836089.1836102

    Google Scholar 

  8. Brunthaler, S.: Efficient interpretation using quickening. SIGPLAN Not. 45(12), 1–14 (2010) ISSN: 0362-1340, http://doi.acm.org/10.1145/1899661.1869633 , doi:10.1145/1899661.1869633

  9. Chambers, J.M.: Stages in the Evolution of S. Bell Labs (2000), http://cm.bell-labs.com/cm/ms/departmen

  10. Chambers, J.M., Becker, R.A.: An Interactive Environment for Data Analysis and Graphics. Wadsworth & Brooks/Cole (1984) ISBN: 0-534-03313-X

    Google Scholar 

  11. Chambers, J.M., Becker, R.A.: Extending the S System. Wadsworth & Brooks/ Cole (1985) ISBN: 0-534-05016-6

    Google Scholar 

  12. Chambers, J.M., Becker, R.A.: The New S Language: A Programming Environment for Data Analysis and Graphics. Wadsworth & Brooks/Cole (1988) isbn: 0-534-09192-X

    Google Scholar 

  13. Chambers, J.M., Hastie, T.: Statistical Models in S. Wadsworth & Brooks/- Cole (1991) ISBN: 0-412-05291-1

    Google Scholar 

  14. Gal, A., et al.: Trace-based just-in-time type specialization for dynamic languages. In: PLDI 2009. ACM ID: 1542528. ACM, New York (2009) ISBN: 978-1-60558-392-1, doi:10.1145/1542476.1542528

    Google Scholar 

  15. Gentleman, R., Ihaka, R.: Lexical Scope and Statistical Computing. Journal of Computational and Graphical Statistics 9, 491–508 (2000)

    MathSciNet  Google Scholar 

  16. Grelck, C.: Shared memory multiprocessor support for functional array processing in SAC. Journal of Functional Programming 15(3), 353–401 (2005)

    Article  MATH  Google Scholar 

  17. Grelck, C., Scholz, S.-B.: SAC: A Functional Array Language for Efficient Multithreaded Execution. International Journal of Parallel Programming 34(4), 383–427 (2006)

    Article  MATH  Google Scholar 

  18. Guo, J., Thiyagalingam, J., Scholz, S.-B.: Breaking the GPU programming barrier with the auto-parallelising SAC compiler. In: Annual Symposium on Principles of Programming Languages, 6th Workshop on Declarative Aspects of Multicore Programming (DAMP 2011), pp. 15–24. ACM Press, Austin (2011)

    Google Scholar 

  19. Milborrow, S.: The Ra Extension to R (2011), http://www.milbo.users.sonic.net/ra/

  20. Morandat, F., Hill, B., Osvald, L., Vitek, J.: Evaluating the Design of the R Language. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 104–131. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  21. Nie, N., Bent, D.H., Hull, C.H.: SPSS: statistical package for the social sciences. McGraw–Hill (1970) ISBN: 0-070-46530-4

    Google Scholar 

  22. R-bloggers. You can scrap it and write something better but let me keep R (2011), http://www.r-bloggers.com/you-can-scrap-it-and-write-something-better-but-let-me-keep-r/ (visited on August 21, 2011).

  23. Language Definition, R.: R Development Core Team (2010) ISBN: 3-900051-13-5

    Google Scholar 

  24. Rigo, A., Pedroni, S.: PyPy’s approach to virtual machine construction. In: Portland, D. (ed.) DLS. ACM, Portland (2006) ISBN: 1-59593-491-X, doi:10.1145/1176617.1176753

    Google Scholar 

  25. The Comprehensive R Archive Network, http://cran.r-project.org

  26. Vance, A.: Data Analysts Captivated by R’s Power. In: New York Times. Business Computing (January 9, 2009)

    Google Scholar 

  27. Wieser, V., Grelck, C., Haslinger, P., Guo, J., et al.: Combining High Productivity and High Performance in Image Processing Using Single Assignment C on Multicore CPUs and Many-core GPUs. J. Electronic Imaging (to appear)

    Google Scholar 

  28. Wilson, A.: ACM honors Dr. John M. Chambers of Bell Labs with the 1998 ACM Software System Award for creating ‘S System’ software. In: ACM Press Release (March 1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Widemann, B.T.y., Bolz, C.F., Grelck, C. (2013). The Functional Programming Language R and the Paradigm of Dynamic Scientific Programming. In: Loidl, HW., Peña, R. (eds) Trends in Functional Programming. TFP 2012. Lecture Notes in Computer Science, vol 7829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40447-4_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40447-4_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40446-7

  • Online ISBN: 978-3-642-40447-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics