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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Reas, C., Fry, B.: Processing: programming for the media arts. AI Soc. 20(4), 526–538 (2006)
Flatt, M., Findler, R.B.: The racket guide (2011). http://docs.racket-lang.org/guide/. Accessed 02 May 2014
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)
Flatt, M.: Creating languages in racket. Commun. ACM 55(1), 48–56 (2012)
Ramos, P.P., Leitão, A.M.: An implementation of python for racket. In: 7th European Lisp Symposium, p. 72 (2014)
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)
Maeda, J.: Design by Numbers. MIT Press, Cambridge (1999)
Resig, J., Fry, B., Reas, C.: Processing. js (2008)
Bader-Natal, A.: Sketchpad (2011). http://sketchpad.cc/. Accessed 28 April 2015
Ashkenas, J.: Ruby-processing (2015). https://github.com/jashkenas/ruby-processing. Accessed 28 April 2015
Feinberg, J., Gilles, J., Alkov, B.: Python for processing (2014). http://py.processing.org/. Accessed 28 April 2015
Gray, K.E., Flatt, M.: Compiling java to PLT scheme. In: Proceedings of 5th Workshop on Scheme and Functional Programming, pp. 53–61 (2004)
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)
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)
Louis-Rosenberg, J.: Objexport (2013). http://n-e-r-v-o-u-s.com/tools/obj/. Accessed 29 April 2015
Owens, S.: Parser tools: lex and yacc-style parsing (2011). http://docs.racket-lang.org/parser-tools/. Accessed 22 September 2014
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
Flatt, M.: Composable and compilable macros: you want it when? SIGPLAN Not. 37(9), 72–83 (2002)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)