.. include:: ./../../macros.txt .. include:: ./../../units.txt .. _PROGRAMMING_LANGUAGE: Programming Language ==================== .. _system_programming_language_and_standards: System Programming Language and Standards ----------------------------------------- Special care has to be taken for coding C-code as the core functions of the BMS software rely on this language. This project uses the ISO C11 standard (a working document is for example available in :cite:`ISO-9899:2011`) as a language basis. The C programming language is very flexible. This flexibility has to be reduced to a safe language sub-set which is done by additional coding standards. Code contributed to this project **MUST** be compatible with MISRA C:2012 which is described in :cite:`MISRA-C:2012`. .. admonition:: Abstract of System Programming Language and Standards - The programming language of the embedded system software **MUST** be ISO C. - The programming language standard version of the embedded system software **MUST** be C11. - The source code **SHOULD** not make use of language extensions. - The source code **MUST** be compiled in the strictest standards way the compiler supports. - The source code **MUST** compile without any error or warning messages.