Latest from Embedded

Dreamstime_Monsit-Jangariyawong_117103442
dreamstime_monsitjangariyawong_117103442
Tony Vitolo/Electronic Design
promo1920x1080
ID 83317721 © Igor Zakharevich | Dreamstime.com
supplychain_dreamstime_l_83317721
ID 144516710 © vladimir timofeev | Dreamstime.com
Data Center
ID 5549870 © Artistar | Dreamstime.com
hard_drive_dreamstime_l_5549870
ID 144516710 © vladimir timofeev | Dreamstime.com
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.