ID 217230663 © Christian Offenberg - Dreamstime.com | electronica.de
promo_messe_munich__id_217230663__christian_offenb
Dreamstime_simongreig_17639917 and ATEK Access Technologies
dreamstime_simongreig_promo_17639917
ID 315101587 © Irinayeryomina | Dreamstime.com
AI energy consumption in high-tech data center

Assessing the Ada Language for Audio Applications (.PDF Download)

Nov. 10, 2017
Assessing the Ada Language for Audio Applications (.PDF Download)

C and C++ are well-known programming languages for implementing audio applications—both languages can be used to build embedded or PC applications. Traditionally, though, C is the language of choice when programming for embedded devices, while C++ is mainly used in the PC market.

However, programming in these languages can lead to a higher number of bugs and security issues (Zeigler, 1995)  (Szekeres, Payer, Wei, & Song, 2013). Also, due to the increasing complexity of audio applications, the choice of programming language may have a direct impact on time-to-market. Therefore, it’s reasonable to evaluate alternative programming languages.

In a discussion about alternative programming languages, many languages could be considered for audio applications. However, digital-signal-processing (DSP) applications have a number of constraints that narrow the field of potential programming languages:

  • Soft real-time computing ability: The applications must be able to operate under real-time conditions. This greatly constrains the use of most languages with automatic memory management, such as Java, as well as languages that use just-in-time compilation.
  • Performance: The code must compile to predictable and fast machine code.
  • Portability: The code must be able to run on dedicated DSP platforms and processors.
  • Reliability: While not specific to DSP applications, the code must operate reliably, sometimes on invalid input.

Since the Ada language meets all of the above requirements, we decided to investigate it. Moreover, we analyzed the language features that allow software developers to accurately design applications and catch errors in an early stage.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!