Extending Little Languages into Big Systems
- 554 Downloads
Abstract
A classic layout for complex software applications usually involves a set of fine-tuned performance-optimized routines that are combined and controlled from a higher layer in a lightweight fashion. As the application grows, reliable operation, portability, and maintainability gets to be a real concern. However, this can be tamed by abstracting away from the platform-dependent details by modelling the components and their relation on a higher level. Using a functional programming language combined with the technique of language embedding may be an answer when implementation of such solution comes in question [1][2]. In this design, the component descriptions may be captured by an adequate embedded domain-specific language that compiles to a lower-level language but there also has to be a way for composition and therefore getting a complete working application out of them. In this paper, we propose a method for extending compiled embedded domain-specific languages into a stand-alone system with minimal effort.
Keywords
Target Language Open Node Functional Programming Language Data Dependency Graph Redundancy EliminationPreview
Unable to display preview. Download preview PDF.
References
- 1.Felleisen, M., Findler, B., Flatt, M., et al.: Building Little Languages With Macros, Dr. Dobb’s Journal (April 2004)Google Scholar
- 2.Elliott, C., Finne, S., de Moor, O.: Compiling Embedded Languages. In: Taha, W. (ed.) SAIG 2000. LNCS, vol. 1924, pp. 9–26. Springer, Heidelberg (2000)CrossRefGoogle Scholar
- 3.Axelsson, E., Claessen, K., Dévai, G., Horváth, Z., Keijzer, K., Lyckegård, B., Persson, A., Sheeran, M., Svenningsson, J., Vajda, A.: Feldspar: A Domain Specific Language for Digital Signal Processing algorithms. In: Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign, Grenoble, France, July 26–28 (2010)Google Scholar
- 4.Schüpbach, A., Peter, S., Baumann, A., et al.: Embracing Diversity in the Barrelfish Manycore Operating System. In: Proc. of the Workshop on Managed Many-Core Systems (MMCS 2008) (June 2008)Google Scholar
- 5.Gill, A., Launchbury, J., Peyton Jones, S.L.: A Short-Cut to Deforestation. In: Proc. Int. Conf. on Functional Programming Languages and Compiler Architecture, FPCA (1993)Google Scholar
- 6.Dagand, P.E., Baumann, A., Roscoe, T.: Filet-o-Fish: Practical and Dependable Domain-Specific Language for OS Development. ACM SIGOPS Operating Systems Review (2010)Google Scholar
- 7.Lee, E., Hylands, C., Janneck, J., et al.: Overview of the Ptolemy Project Technical Report UCB/ERL M01/11, EECS Department, University of California, Berkeley (2001)Google Scholar
- 8.Brorsson, M., Faxen, K.-F., Popov, K.: ArchiDeS: A Programming Framework for Multicore Chips. In: Swedish Workshop on Multicore Computing, MCC 2009 (2009)Google Scholar
- 9.Enea, A.B.: Enea OSE: Multicore Real-Time Operating System (2011), http://www.enea.com/
- 10.Marlow, S.: Parallel and Concurrent Programming in Haskell. In: Central European Functional Programming Summer School (CEFP), Eötvös Loránd University, Budapest, June 14–24 (2011)Google Scholar
- 11.Marlow, S., Newton, R., Peyton Jones, S.L.: A Monad for Deterministic Parallelism. In: Haskell 2011: Proc. of the 4th ACM SIGPLAN Symposium on Haskell, Tokyo, Japan. ACM (2011)Google Scholar
- 12.Paterson, R.: Arrows and Computation. In: The Fun of Programming, pp. 201–222, Palgrave (2003)Google Scholar