Skip to main content

Combining Processing with Racket

  • Conference paper
  • First Online:
Languages, Applications and Technologies (SLATE 2015)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 563))

Included in the following conference series:

Abstract

Processing is a programming language created to teach programming in a visual context. Despite its success, Processing remains a niche language with limited applicability in the architectural field, as no Computer-Aided Design (CAD) application supports Processing. This work presents an implementation of Processing for the Racket platform, that transforms Processing code into semantically equivalent Racket code. Our Processing implementation is developed as a Racket module language for interoperability with Racket and other module languages of Racket’s language ecosystem. Our implementation allows us to take advantage of Rosetta, a Racket library that provides access to several CAD back-ends (e.g. AutoCAD, Rhinoceros, SketchUp). As a result, architects and designers can take advantage of our implementation to use Processing with their favourite CAD application.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Reas, C., Fry, B.: Processing: programming for the media arts. AI Soc. 20(4), 526–538 (2006)

    Article  Google Scholar 

  2. Flatt, M., Findler, R.B.: The racket guide (2011). http://docs.racket-lang.org/guide/. Accessed 02 May 2014

  3. Lopes, J., Leitão, A.: Portable generative design for CAD applications. In: Proceedings of the 31st Annual Conference of the Association for Computer Aided Design in Architecture, pp. 196–203 (2011)

    Google Scholar 

  4. Flatt, M.: Creating languages in racket. Commun. ACM 55(1), 48–56 (2012)

    Article  Google Scholar 

  5. Ramos, P.P., Leitão, A.M.: An implementation of python for racket. In: 7th European Lisp Symposium, p. 72 (2014)

    Google Scholar 

  6. Tobin-Hochstadt, S., St-Amour, V., Culpepper, R., Flatt, M., Felleisen, M.: Languages as libraries. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 132–141. ACM (2011)

    Google Scholar 

  7. Maeda, J.: Design by Numbers. MIT Press, Cambridge (1999)

    Google Scholar 

  8. Resig, J., Fry, B., Reas, C.: Processing. js (2008)

    Google Scholar 

  9. Bader-Natal, A.: Sketchpad (2011). http://sketchpad.cc/. Accessed 28 April 2015

  10. Ashkenas, J.: Ruby-processing (2015). https://github.com/jashkenas/ruby-processing. Accessed 28 April 2015

  11. Feinberg, J., Gilles, J., Alkov, B.: Python for processing (2014). http://py.processing.org/. Accessed 28 April 2015

  12. Gray, K.E., Flatt, M.: Compiling java to PLT scheme. In: Proceedings of 5th Workshop on Scheme and Functional Programming, pp. 53–61 (2004)

    Google Scholar 

  13. Gray, K.E., Flatt, M.: ProfessorJ: a gradual introduction to java through language levels. In: Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 170–177. ACM (2003)

    Google Scholar 

  14. Findler, R.B., Flanagan, C., Flatt, M., Krishnamurthi, S., Felleisen, M.: DrScheme: a pedagogic programming environment for scheme. In: Glaser, H., Hartel, P., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 369–388. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  15. Louis-Rosenberg, J.: Objexport (2013). http://n-e-r-v-o-u-s.com/tools/obj/. Accessed 29 April 2015

  16. Owens, S.: Parser tools: lex and yacc-style parsing (2011). http://docs.racket-lang.org/parser-tools/. Accessed 22 September 2014

  17. Flatt, M, Findler, R.B.:. The racket guide, chapter 10.3 continuations (2011). http://docs.racket-lang.org/guide/conts.html?q=continuations. Accessed 05 May 2014

  18. Flatt, M.: Composable and compilable macros: you want it when? SIGPLAN Not. 37(9), 72–83 (2002)

    Article  Google Scholar 

Download references

Acknowledgements

This work was partially supported by national funds through Fundação para a Ciência e a Tecnologia (FCT) with reference UID/CEC/50021/ 2013, and by the Rosetta project under contract PTDC/ATP-AQI/5224/2012.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to António Menezes Leitão .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Correia, H., Leitão, A.M. (2015). Combining Processing with Racket. In: Sierra-Rodríguez, JL., Leal, JP., Simões, A. (eds) Languages, Applications and Technologies. SLATE 2015. Communications in Computer and Information Science, vol 563. Springer, Cham. https://doi.org/10.1007/978-3-319-27653-3_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-27653-3_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-27652-6

  • Online ISBN: 978-3-319-27653-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics