A High-Performance Dylan ImplementationSkip other details (including permanent urls, DOI, citation information)
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 3.0 License. Please contact email@example.com to use this work in a way not covered by the license. :
For more information, read Michigan Publishing's access and usage policy.
Page 425 ï~~A High-Performance Dylan Implementation Jonathan Bachrach The programming language Dylan is the dream come true for high-performance real-time music applications. In this paper, an implementation of Dylan is described, the importance of Dylan for computer music is discussed, and finally a music class library in Dylan is presented. The real bottleneck in dramatic improvements in processor and compiler technology, it is becoming unnecessary to program in assembly language. With the advent of Dylan, programmers can have their cake and eat it too. On the surface, Dylan looks like Scheme augmented with the Common Lisp Object System (CLOS), but it also includes features that allow it to combine the power and expressiveness of LISP with the compactness and efficiency of C. Those features of Dylan and features of my implementation that address the issue of programmer productivity are discussed. Specifically, an extended class library, a high-level macro programming environment are presented. Next, it is demonstrated that one can gain programming efficiency while losing only negligible run-time efficiency. The implementation includes an optimizing translator to C. By choosing to translate to C, the system is easy port, it is easy to take advantage of high-performance C compiler technology, and it assures easy compatibility with other C code, while at the same time losing only minor compile-time efficiency. The efficiency of the translator is then demonstrated with a series of example DSP functions. For each function, the C code produced by the translator is compared with hand-coded C and their respective run-times are reported. The performance of the real-time garbage collector is then reported along with its impact on real-time performance. Several implementation ideas are discussed in order to provide even more convincing demonstrations of Dylan's efficiency. Next, a lass library architecture for musical applications is described including vector/matrix, signal processing, simulation, and neural network objects. Musical applications are shown to be easily constructed with these objects. (This paper will be provided as addenda upon receipt. (editor)) ICMC Proceedings 1993 425 7P.07