Skip to main content

Faustine: A Vector Faust Interpreter Test Bed for Multimedia Signal Processing

System Description

  • Conference paper
Book cover Functional and Logic Programming (FLOPS 2014)

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

Included in the following conference series:

Abstract

Faustine is the first interpreter for the digital audio signal processing language Faust and its vector extension. This domain-specific language for sample-based audio is highly expressive and can be efficiently compiled. Faustine has been designed and implemented, in OCaml, to validate the Faust multirate vector extension proposed in the literature, without having to modify the sophisticated Faust scalar compiler. Moving to frame-based algorithms such as FFT is of paramount importance in the audio field and, more broadly, in the multimedia signal processing domain. Via the actual implementation of multidimensional FFT and morphological image processing operations, Faustine, although unable to process data in real time, illustrates the possible advantages and shortcomings of this vector extension as a language design proposal. More generally, our paper provides a new use case for the vision of interpreters as lightweight software platforms within which language design and implementation issues can be easily assessed without incurring the high costs of modifying large compiler platforms.

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. Armand, M., Faure, G., Grégoire, B., Keller, C., Théry, L., Werner, B.: A modular integration of SAT/SMT solvers to Coq through proof witnesses. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 135–150. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  2. Asanovic, K., Bodik, R., Demmel, J., Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D., Sen, K., Wawrzynek, J., Wessel, D., Yelick, K.: A view of the parallel computing landscape. Commun. ACM 52(10), 56–67 (2009)

    Article  Google Scholar 

  3. Barkati, K., Jouvelot, P.: Synchronous programming in audio processing: A lookup table oscillator case study. ACM Computing Surveys 46(2) (2014)

    Google Scholar 

  4. Bouton, T., de Oliveira, D.C.B., Déharbe, D., Fontaine, P.: veriT: An open, trustable and efficient SMT-solver. In: Schmidt, R.A. (ed.) CADE-22. LNCS, vol. 5663, pp. 151–156. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  5. Brunthaler, S.: Why interpreters matter (at least for high level programming languages) (2012), http://www.ics.uci.edu/~sbruntha/why-interpreters-matter.html

  6. Cuoq, P., Signoles, J., Baudin, P., Bonichon, R., Canet, G., Correnson, L., Monate, B., Prevosto, V., Puccetti, A.: Experience report: Ocaml for an industrial-strength static analysis framework. In: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming, ICFP 2009, pp. 281–286. ACM, New York (2009)

    Google Scholar 

  7. Ellison, C., Rosu, G.: An executable formal semantics of C with applications. In: Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, pp. 533–544. ACM, New York (2012)

    Google Scholar 

  8. Fontaine, P., Marion, J.-Y., Merz, S., Nieto, L.P., Tiu, A.F.: Expressiveness + automation + soundness: Towards combining SMT solvers and interactive proof assistants. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 167–181. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  9. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education (1994)

    Google Scholar 

  10. Ghosh, D.: DSLs in Action, 1st edn. Manning Publications Co., Greenwich (2010)

    Google Scholar 

  11. Gordon, A.D., Fournet, C.: Principles and applications of refinement types. Logics and Languages for Reliability and Security 25, 73–104 (2010)

    Google Scholar 

  12. Guillou, P.: Portage et optimisation d’applications de traitement d’images sur architecture many-core. Technical report, Centre de recherche en informatique, MINES ParisTech (2013)

    Google Scholar 

  13. Herrmann, C.A., Langhammer, T.: Combining partial evaluation and staged interpretation in the implementation of domain-specific languages. Science of Computer Programming 62(1), 47–65 (2006), Special Issue on the First MetaOCaml Workshop 2004

    Google Scholar 

  14. Hsieh, J.-W., Yu, S.-H., Chen, Y.-S.: Morphology-based license plate detection from complex scenes. In: Proceedings of the 16th International Conference on Pattern Recognition, vol. 3, pp. 176–179. IEEE (2002)

    Google Scholar 

  15. Hudak, P.: Building domain-specific embedded languages. ACM Computing Surveys 28(4es), 196 (1996)

    Article  Google Scholar 

  16. Jouvelot, P.: ML: Un langage de maquettage? In: AFCET Workshop on New Languages for Software Engineering, Evry (1985)

    Google Scholar 

  17. Jouvelot, P., Orlarey, Y.: Dependent vector types for data structuring in multirate Faust. Comput. Lang. Syst. Struct. 37, 113–131 (2011)

    MATH  Google Scholar 

  18. Leroy, X., Doligez, D., Frisch, A., Garrigue, J., Rémy, D., Vouillon, J.: The OCaml system (1998)

    Google Scholar 

  19. Nguyen, Q.H., Kirchner, C., Kirchner, H.: External rewriting for skeptical proof assistants. Journal of Automated Reasoning 29(3-4), 309–336 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  20. Orlarey, Y., Fober, D., Letz, S.: An algebra for block diagram languages. In: Proceedings of International Computer Music Conference, pp. 542–547 (2002)

    Google Scholar 

  21. Orlarey, Y., Fober, D., Letz, S.: Faust: an efficient functional approach to DSP programming. In: New Computational Paradigms for Computer Music (2009)

    Google Scholar 

  22. Ortiz, A.: Language design and implementation using Ruby and the interpreter. In: ACM SIGCSE Bulletin, vol. 40, pp. 48–52. ACM (2008)

    Google Scholar 

  23. Rémy, D.: Using, understanding, and unraveling the OCaml language from practice to theory and vice versa. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 413–536. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  24. Rondon, P.M., Kawaguci, M., Jhala, R.: Liquid types. In: Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2008, pp. 159–169. ACM, New York (2008)

    Chapter  Google Scholar 

  25. Serra, J., Soille, P. (eds.): Mathematical morphology and its applications to image processing. Computational Imaging and Vision. Kluwer Academic Publishers (1994)

    Google Scholar 

  26. Steele, G.L., Sussman, G.J.: The art of the interpreter or, the modularity complex (parts zero, one, and two). Technical report, Cambridge, MA, USA (1978)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Barkati, K., Wang, H., Jouvelot, P. (2014). Faustine: A Vector Faust Interpreter Test Bed for Multimedia Signal Processing. In: Codish, M., Sumii, E. (eds) Functional and Logic Programming. FLOPS 2014. Lecture Notes in Computer Science, vol 8475. Springer, Cham. https://doi.org/10.1007/978-3-319-07151-0_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-07151-0_5

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-07150-3

  • Online ISBN: 978-3-319-07151-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics