MISRA C Presentation to IPA/SEC

Size: px
Start display at page:

Download "MISRA C Presentation to IPA/SEC"

Transcription

1 MISRA C Presentation to IPA/SEC Safety and Security... and future plans for MISRA C Andrew Banks BSc IEng MIET FBCS CITP Frazer-Nash Research Limited, and Chairman, MISRA C Working Group

2 MISRA C A Quick History 2

3 MISRA-C The Rationale Despite its popularity, there are several drawbacks with the C language, eg: The ISO Standard language definition is incomplete Behaviour that is Undefined Behaviour that is Unspecified Behaviour that is Implementation Defined Language misuse and obfuscation Language misunderstanding Run-time error checking MISRA C is one solution... 3

4 MISRA-C A Quick History MISRA-C:1998 (aka MISRA-C1) - Guidelines for the use of the C language in vehicle based software - Compatible with ISO/IEC 9899:1990 (aka C90) MISRA-C:2004 (aka MISRA-C2) - Guidelines for the use of the C language in critical systems - Remains compatible with ISO/IEC 9899:1990 (aka C90) MISRA C:2012 (aka MISRA-C3) - Guidelines for the use of the C language in critical systems - Adds compatibility with ISO/IEC 9899:1999 (aka C99) 4

5 MISRA-C The 2012 Edition Published early Guidelines in total - 16 Directives o 9 Required o 7 Advisory Rules o 10 Mandatory o 101 Required o 32 Advisory Includes a compliance and deviation policy 5

6 MISRA-C The Vision The vision of MISRA C is set out in the opening paragraph of the Guidelines: The MISRA C Guidelines define a subset of the C language in which the opportunity to make mistakes is either removed or reduced. Many standards for the development of safety-related software require, or recommend, the use of a language subset, and this can also be used to develop any application with high integrity or high reliability requirements. 6

7 MISRA-C Work In Progress MISRA C:2012 Technical Corrigendum 1 - Address typographical errors and guideline clarification MISRA Compliance - Enhances guidance for compliance guidance - Clarifies/tightens the Deviation process - Standalone document o Compatible with MISRA C:2012 (and any future versions) o Compatible with MISRA C++:20xx o No reason it cannot be applied to earlier versions of either document! And a few other things... - Security - C11 (etc) 7

8 MISRA C Directives Guidelines that are not Rules! 8

9 MISRA C Directives What is a Directive? From the MISRA C: A directive is a guideline for which it is not possible to provide the full description necessary to perform a check for compliance. - Additional information, such as might be provided in design documents or requirement specifications, is required in order to be able to perform the check. - Static analysis tools may be able to assist in checking compliance with directives, but different tools may place different interpretations on what constitutes non-compliance. Note: Compliance is still required just as for the Rules! 9

10 MISRA C Directives Directive 4.1 From the MISRA C:2012 headline - Run-time failures shall be minimized Rationale - The C language was designed to provide very limited built-in run-time checking. This places the burden on the programmer... What does this mean? - Techniques to avoid run-time failures should be planned and documented, for example in design standards, test plans and code review checklists. - Dynamic checks should be added where-ever there is a potential for errors to occur Problem areas - arithmetic errors, array bound errors, function parameters, pointer arithmetic/de-referencing 10

11 MISRA C Directives Directive 4.11 From the MISRA C:2012 headline - The validity of values passed to library functions shall be checked Rationale - The C standard does not require the standard library to check the validity of parameters passed to them. What does this mean? - Dynamic checks should be added where-ever there is a potential for errors to occur Problem areas - Libraries ctype.h math.h and string.h (and others!) 11

12 Standard Conformance Freestanding v Hosted 12

13 Strict Conformance Chapter 4 of the ISO Standard mandates the following: - A conforming program is one that is acceptable to a conforming implementation. - A strictly conforming program shall use only those features of the language and library specified in the International Standard. - It shall not produce output dependent on any unspecified, undefined, or implementation-defined behavior, and shall not exceed any minimum implementation limit. MISRA C:2012 enforces this by: - Rule 1.1 A standard C environment - Rule 1.3 No occurrence of undefined or unspecified behaviour - Dir 1.1 This permits the use of implementation-defined behaviour but requires that any such use is documented 13

14 Language Extensions Chapter 4 of the ISO Standard permits the following: - A conforming implementation may have extensions (including additional library functions), provided they do not alter the behaviour of any strictly conforming program. MISRA C:2012 advises against this by: - Rule 1.2 Language extensions should not be used Chapter 4 of the ISO Standard defines the following - The two forms of conforming implementation are hosted and freestanding. - A conforming hosted implementation shall accept any strictly conforming program. 14

15 Conformance: Freestanding v Hosted Chapter 4 of the ISO Standard defines the following: - A conforming freestanding implementation shall accept any strictly conforming program in which the use of the features specified in the library clause is confined to the contents of the standard headers: o <float.h> o <iso646.h> o <limits.h> o <stdarg.h> o <stdbool.h> o <stddef.h > o <stdint.h> MISRA C:2012 has no explicit library-specific restrictions on these headers 15

16 Conformance: Freestanding v Hosted MISRA C:2012 places major restrictions (including out-right prohibition) on many of the remaining standard headers: o <assert.h> Implicit restriction o <signal.h> Shall not be used o <complex.h> o <stdio.h> Shall not be used o <ctype.h> o <stdlib.h> Major restrictions o <errno.h> o <string.h> o <fenv.h> Major restrictions o <tgmath.h> Shall not be used o <inttypes.h> o <time.h> Shall not be used o <locale.h > o <wchar.h> Shall not be used o <math.h> o <wctype.h> o <setjmp.h> Shall not be used The restricts are due to the extent of the undefined, unspecified and/or implementation defined behaviour, and the functionality is mostly associated with accessing the external environment. 16

17 MISRA C Misunderstandings 17

18 Myth Busting #1 The Misunderstanding - MISRA C is only applicable to the automotive industry The History - MISRA C was originated by the automotive industry, for the automotive industry... and we are proud of our automotive heritage. The Reality - MISRA C is applicable to any industry that requires high-integrity software - MISRA C has been adopted by many industries, including medical, rail, aerospace, space and defence. eg:

19 Myth Busting #2 The Misunderstanding - MISRA C is only a safety coding standard, not a secure/security one The History - MISRA C suggests (in its vision) its use in safety-related software The Reality - MISRA C also suggests (in its vision) its applicability to any application with high integrity or high reliability requirements - The difference between safety and security are largely semantic - Unfortunately, a perception remains... 19

20 Safety v Security Comparison with other guidelines 20

21 ISO/IEC TS C Secure Coding Rules 21

22 ISO/IEC TS C Secure Coding Rules Produced by ISO/IEC JTC 1/SC 22/WG 14 the same people responsible for the C standard itself Originally proposed to be based on CERT-C (see later) but significantly rationalised From the document s Background: - In practice, security-critical and safety-critical code have the same requirements - The purpose of this Technical Specification is to specify analyzable secure coding rules that can be automatically enforced to detect security flaws in C-conforming applications 22

23 ISO/IEC TS C Secure Coding Coverage Coverage Method # Comments MISRA covers fully explicitly 22 Some rules are stricter than SecureC MISRA covers fully broad 12 Eg: bans dynamic memory, signal.h 5 Undefined/unspecified behaviour MISRA covers fully implicitly 3 Standard library MISRA covers partially broad 2 getenv() and related functions MISRA does not cover directly 2 sizeof(pointer), padding 46 23

24 ISO/IEC TS The Gaps The gaps (partial or not covered) can be grouped as follows: - Taintedness as a concept - The use of getenv(), localeconv(), setlocale() and strerror() 2 rules [or indeed other library functions relating to a hosted environment] - Use of sizeof() on a pointer function parameter 1 rule - Comparisons of padding data 1 rule Proposal - MISRA C:2012 be enhanced to address these gaps 24

25 ISO/IEC TS The Broad Approaches Some C Secure rules are implicitly fully covered by broad approaches - MISRA C:2012 prohibits the use of the restrict keyword 1 rule - MISRA C:2012 prohibits the use of dynamic memory allocation 3 rules - MISRA C:2012 prohibits the use of the features in <signal.h> 3 rules - MISRA C:2012 prohibits the use of the features in <stdio.h> 5 rules Rationale - MISRA C s scope was originally freestanding application, without an operating system and/or external environment Proposal - Keep these broad approaches under review - Establish more targeted rules where appropriate 25

26 ISO/IEC TS The Implicit? Many of the Secure C rules are implicitly covered by Directives - D4.1 Run-time failures shall be minimised - D4.11 The validity of values passed to library functions shall be checked Some of these may benefit from additional, focussed, rules - The use of errno 1 rule - The use of character handling functions 1 rules - Use of string copying functions 1 rule 26

27 The Gaps Taintedness C Secure - Many! MISRA C: No explicit coverage of taintedness - Directives D4.1 and D4.11 cover many of the consequences. - The undefined behaviours are also trapped by R1.3 - Some unwanted behaviour also trapped by broad rules o General prohibition in the use of stdio.h, signal.h etc Proposed way ahead - Add a new MISRA C directive to require validation of externally sourced data to protect against taintedness. - Additional explicit rules may be added as required. 27

28 ISO/IEC TS Revised C Secure Coverage Coverage Method # Comments MISRA covers fully explicitly 31 MISRA covers fully broad approach 7 Eg: bans dynamic memory, signals 3 Taint MISRA covers fully implicitly 5 Undefined/unspecified behaviour MISRA covers partially or not at all 0 46 # = Coverage assuming adoption of all proposals listed. 28

29 ISO/IEC TS The Next Steps Proposed Next Steps - MISRA C Working Group will finalise deliberations - Update to existing MISRA C:2012 document to be issued o Target late 2015 or early 2016 (TBC) o Timeline to coincide with release of Technical Corrigendum 1 o Propose to be issued as Amendment 1 - Update will include a coverage matrix against ISO/IEC TS

30 CERT-C C Secure Coding Rules 30

31 CERT-C Secure Coding Standard What is CERT-C - Produced by the Software Engineering Institute (SEI) at Carnegie Mellon University. - Sponsored by the U.S. Department of Defense - Originally proposed to be adopted as an ISO standard, but this was not progressed by WG14, who progressed a subset as ISO/IEC TS instead. The MISRA C Position - We view CERT-C as complementary to MISRA C o Most rules align with the MISRA C rules o Some small variance due to difference of focus (not just safety v security) o In particular, CERT-C considers the interface to the environment in hosted applications - We are reviewing CERT-C s rules and recommendations 31

32 CERT-C (April 2014) MISRA C:2012 Coverage Coverage Method #1 #2 Comments MISRA covers fully MISRA covers partially MISRA does not cover explicitly But many are covered by directives Possible Contradictions! 1 1? But see following slides #1 Assessment presented at escrypt. #2 MISRA C Working Group preliminary assessment (MISRA C:2012 against CERT-C:Apr14) 32

33 CERT-C v MISRA C:2012 Contradiction? Array bound specification on initialization with string literals - CERT-C Rule STR11-C o Do not specify the bound of a character array initialised with a string literal - MISRA C:2012 rule R9.5 (Required) o Where designated initializers are used to initialise an array object, the size of the array shall be specified explicitly. Example Cited - char test[] = { [0]= abc }; // Compliant to CERT-C but not MISRA C //... null-terminated string of three characters - char test[3] = { [0]= abc }; // Compliant to MISRA C but not CERT-C //... probably wrong size of array length Note: MISRA C rule R9.5 only applies to Designated Initializers 33

34 CERT-C v MISRA C:2012 Contradiction? Alternative example #1 - char test[] = { [0]= a }; // Compliant to CERT-C but not MISRA C //... but really only a single character array? - char test[10] = { [0]= a }; // Compliant to MISRA C but not CERT-C //... we really wanted 10 characters Alternative example #2 - char test[] = { [0]= abc }; // Compliant to CERT-C but not MISRA C //... how big should that array be? - char test[4] = { [0]= abc }; // Compliant to MISRA C but not CERT-C //... three characters plus null-terminator - char test[3] = { [0]= abc }; // Compliant to MISRA C but not CERT-C //... three characters without null-terminator - char test[3] = { [0]= abcd }; // Constraint error 34

35 CERT-C v MISRA C:2012 Contradiction? Let me repeat: MISRA C:2012 rule R9.5 only applies to Designated Initializers Compare with advisory MISRA C:2012 rule R The rule Headline seems to maintain the contradiction: o When an array with external linkage is declared, its size should be explicitly specified. - And the rule Rationale explains why o Providing size information for each declaration permits them to be checked for consistency. It may also permit a static checker to perform some array bounds analysis without needing to analyse more than one translation unit. - But the rule Amplification contains the following clarification: o It is possible to define an array and specify its size implicitly by means of initialization. No other MISRA C:2012 rule requires the array size to be explicitly specified. 35

36 What about C:11? 36

37 What about C:11 MISRA C Working Group has commenced a review of the deltas: - Atomic primitives - Multi-threading - Unicode characters - Appendix F/G ISO/IEC floating point - Appendix K new bounds-checking functions should allow some existing rules to be revised, with pre-c11 unsecure functions deprecated. However, though, it is possible that this section may be deleted from the standard! - Appendix L Analyzability More information in due course... 37

38 In Summary 38

39 MISRA C In Summary MISRA C is - widely respected as a safety-related coding standard - equally applicable as a security-related coding standard MISRA C has - evolved from an automotive standard into a pan-industry standard MISRA C will - continue to evolve as new editions of the C standard are produced - seek to address other constraints as they become identified 39

40 MISRA C In Summary Planned Way Ahead - Consider additional rules and/or rule revisions to address: o the gaps identified between MISRA C:2012 and ISO/IEC TS 17961:2013 o issues in the new features introduced by C11 o issues in accessing the operating environment, within hosted programs - Continue the review activity against o CERT-C o Common Weakness Enumeration o... and any other sources that may become known The MISRA C Working Group welcomes feedback from all users 40

41 Any Questions? 41

42 Arigatou gozaimasu! Thank You! I would like to acknowledge the support of the members of the MISRA C Working Group for their assistance in preparing this presentation. 42

43 References MISRA C: Embedded Security in Cars (November 2014, Hamburg) ISO/IEC TS 17961:2013 C secure coding rules CERT-C ISO/IEC 9899 CD2 comments and decisions

44 About the speaker Biography - Chairman of MISRA-C since June working group member since Over 25 years experience in developing real-time embedded software systems, across a number of industries - Chartered Fellow of the British Computer Society - Member of the Institution of Engineering & Technology Social Media 44

45 Extra Material 45

46 The Gaps Use of stdlib.h environment functions C Secure - Rule 5.29 and Rule 5.42 MISRA C: Rule R21.8 prohibits the use of getenv() but does not mention the use of localeconv(), setlocale() and strerror() Ideal Solution - Ideally, the C Standard should defines these functions as returning const char * rather than straight char * - Note: additional thread-safe functions added in C11 Proposed way ahead - Permit use of getenv(); Add MISRA C rule(s) to enforce read-only nature, and to prevent wrong data being used after multiple calls. - Also applies to asctime() and ctime(), and setlocale() in locale.h 46

47 The Gaps Use of sizeof() on a pointer parameter C Secure - Rule 5.38 The Problem - Testing the sizeof a pointer passed as a parameter to a function will always return sizeof(pointer) not sizeof(underlying structure) MISRA C: No explicit coverage - Could tenuously claim D4.1 and D4.11 covers, but... Proposed way ahead - Add an appropriate MISRA C rule to detect this. 47

48 The Gaps Comparison of padding data C Secure - Rule 5.9 The Problem - Unused fields in structures and/or extra characters in strings may trigger incorrect comparison results which may lead to unpredictable behaviour MISRA C: No explicit coverage - Could tenuously claim D4.1 and D4.11 covers, but... Proposed way ahead - Add appropriate MISRA C rule(s) to prevent use of memcmp() with structures or unions. - Add appropriate MISRA C rule(s) to prevent use of memcmp() with character strings use strcmp() or strncmp() instead. 48

49 The Implicit Use of errno C Secure - Rule 5.25 The Problem - The C standard lays down certain requirements for the setting, checking and resetting of errno without which unpredictable behaviour can occur MISRA C: No explicit coverage... permitted without restrictions - Directive D1.1 mentions errno in passing - Directives D4.1, D4.11 and D4.7 all apply - Note: MISRA C:2004 and earlier simply banned the use of errno Possible way ahead - Add appropriate MISRA C rules to protect against tainted values and inappropriate use. 49

50 The Implicit string copying functions C Secure - Rule 5.37 MISRA C: No explicit coverage... - Directives D4.1 and D4.11 do apply Possible way ahead - Add explicit MISRA C rule(s) - Also applies to strncpy and strncat() 50

51 The Broad string formatting functions C Secure - Rule 5.24 and Rule 5.45 MISRA C: Use of <stdio.h> generally prohibited by Advisory R Some undefined behaviour generally trapped by R1.3 - Directives D4.1 and D4.11 also apply Possible way ahead - No change exiting undefined behaviour is caught - Add catchall taint directive? - Add explicit MISRA C rule(s) - Avoid interaction by existing Rule R

52 The Broad The use of EOF C Secure - Rule 5.16 and Rule 5.43 MISRA C: Use of <stdio.h> generally prohibited by Advisory R Directives D4.1 and D4.11 apply Ideal Solution - Ideally, the C Standard should be fixed. But given the response, when this was raised at the C99 CD2 ballot, that is not likely to happen! Has been like this for at least 10 years, no need to change. Already known problem with too much existing practice. Possible way ahead - Add appropriate MISRA C rule(s) to protect against tainted values around EOF 52

This document is a preview generated by EVS

This document is a preview generated by EVS INTERNATIONAL STANDARD ISO/IEC 9899 Fourth edition 2018-07 Information technology Programming languages C Technologies de l'information Langages de programmation C Reference number ISO/IEC 9899:2018(E)

More information

Axivion Bauhaus Suite Technical Factsheet MISRA

Axivion Bauhaus Suite Technical Factsheet MISRA MISRA Contents 1. C... 2 1. Misra C 2004... 2 2. Misra C 2012 (including Amendment 1). 10 3. Misra C 2012 Directives... 18 2. C++... 19 4. Misra C++ 2008... 19 1 / 31 1. C 1. Misra C 2004 MISRA Rule Severity

More information

MISRA C:2012 Technical Corrigendum 1

MISRA C:2012 Technical Corrigendum 1 MISRA C:2012 Technical Corrigendum 1 Technical clarification of MISRA C:2012 June 2017 First published June 2017 by HORIBA MIRA Limited Watling Street Nuneaton Warwickshire CV10 0TU UK www.misra.org.uk

More information

MISRA C:2012 Addendum 2

MISRA C:2012 Addendum 2 Permit / Example / C:2012 / R.10.6.A.1 MISRA C:2012 Addendum 2 Coverage of MISRA C:2012 (including Amendment 1) against ISO/IEC TS 17961:2013 C Secure 2 nd Edition, January 2018 First published January

More information

Motor Industry Software Reliability Association (MISRA) C:2012 Standard Mapping of MISRA C:2012 items to Goanna checks

Motor Industry Software Reliability Association (MISRA) C:2012 Standard Mapping of MISRA C:2012 items to Goanna checks Goanna 3.3.2 Standards Data Sheet for MISRA C:2012 misrac2012-datasheet.pdf Motor Industry Software Reliability Association (MISRA) C:2012 Standard Mapping of MISRA C:2012 items to Goanna checks The following

More information

Language Design COMS W4115. Prof. Stephen A. Edwards Spring 2003 Columbia University Department of Computer Science

Language Design COMS W4115. Prof. Stephen A. Edwards Spring 2003 Columbia University Department of Computer Science Language Design COMS W4115 Prof. Stephen A. Edwards Spring 2003 Columbia University Department of Computer Science Language Design Issues Syntax: how programs look Names and reserved words Instruction

More information

MISRA-C:2012 Standards Model Summary for C / C++

MISRA-C:2012 Standards Model Summary for C / C++ Version 9.7.1 Copyright 2017 Ltd. MISRA-C:2012 s Model Summary for C / C++ The tool suite is developed and certified to BS EN ISO 9001:2000 and SGS-TÜV Saar. This information is applicable to version 9.7.1

More information

C Libraries. Bart Childs Complementary to the text(s)

C Libraries. Bart Childs Complementary to the text(s) C Libraries Bart Childs Complementary to the text(s) 2006 C was designed to make extensive use of a number of libraries. A great reference for student purposes is appendix B of the K&R book. This list

More information

IAR Embedded Workbench MISRA C:2004. Reference Guide

IAR Embedded Workbench MISRA C:2004. Reference Guide IAR Embedded Workbench MISRA C:2004 Reference Guide COPYRIGHT NOTICE Copyright 2004 2008 IAR Systems. All rights reserved. No part of this document may be reproduced without the prior written consent of

More information

SOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE

SOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE Software Quality Objectives Page 1/21 Version 2.0 SOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE The MathWorks 2 rue de Paris 92196 Meudon France 01 41 14 87 00 http://www.mathworks.fr Revision table Index

More information

CODE TIME TECHNOLOGIES. Abassi RTOS MISRA-C:2004. Compliance Report

CODE TIME TECHNOLOGIES. Abassi RTOS MISRA-C:2004. Compliance Report CODE TIME TECHNOLOGIES Abassi RTOS MISRA-C:2004 Compliance Report Copyright Information This document is copyright Code Time Technologies Inc. 2012. All rights reserved. No part of this document may be

More information

Frequently Asked Questions. AUTOSAR C++14 Coding Guidelines

Frequently Asked Questions. AUTOSAR C++14 Coding Guidelines Frequently Asked Questions AUTOSAR C++14 Coding Guidelines General Q: What is AUTOSAR? A: AUTOSAR (AUTomotive Open System ARchitecture) is a partnership of over 180 automotive manufacturers, automotive

More information

MISRA C Technical Clarification 25 th July 2000 Introduction

MISRA C Technical Clarification 25 th July 2000 Introduction MISRA C Technical Clarification 25 th July 2000 Introduction This document clarifies issues raised on the interpretation of the MISRA document Guidelines For The Use Of The C Language In Vehicle Based

More information

ECE 2400 Computer Systems Programming Fall 2017 Topic 12: Transition from C to C++

ECE 2400 Computer Systems Programming Fall 2017 Topic 12: Transition from C to C++ ECE 2400 Computer Systems Programming Fall 2017 Topic 12: Transition from C to C++ School of Electrical and Computer Engineering Cornell University revision: 2017-10-23-01-13 1 C++ Namespaces 2 2 C++ Functions

More information

This is a preview - click here to buy the full publication INTERNATIONAL STANDARD. Programming languages - C. Langages de programmation - C

This is a preview - click here to buy the full publication INTERNATIONAL STANDARD. Programming languages - C. Langages de programmation - C INTERNATIONAL STANDARD ISOIIEC 9899 First edition 1990-12-15 Programming languages - C Langages de programmation - C E - w - E = z 2 z 3 = = = = - = s E- E Z C - Reference number ISOAEC 9899 : 1990 (El

More information

MISRA C:2012 WHITE PAPER

MISRA C:2012 WHITE PAPER WHITE PAPER MISRA C:2012 Since its launch in 1998, MISRA C has become established as the most widely used set of coding guidelines for the C language throughout the world. Originally developed within the

More information

Synopsys Static Analysis Support for SEI CERT C Coding Standard

Synopsys Static Analysis Support for SEI CERT C Coding Standard Synopsys Static Analysis Support for SEI CERT C Coding Standard Fully ensure the safety, reliability, and security of software written in C The SEI CERT C Coding Standard is a list of rules for writing

More information

Language Design COMS W4115. Prof. Stephen A. Edwards Fall 2006 Columbia University Department of Computer Science

Language Design COMS W4115. Prof. Stephen A. Edwards Fall 2006 Columbia University Department of Computer Science Language Design COMS W4115 Katsushika Hokusai, In the Hollow of a Wave off the Coast at Kanagawa, 1827 Prof. Stephen A. Edwards Fall 2006 Columbia University Department of Computer Science Language Design

More information

Coverity Static Analysis Support for MISRA Coding Standards

Coverity Static Analysis Support for MISRA Coding Standards Coverity Static Analysis Support for MISRA Coding Standards Fully ensure the safety, reliability, and security of software written in C and C++ Overview Software is eating the world. Industries that have

More information

Computer Programming

Computer Programming Computer Programming Make everything as simple as possible, but not simpler. Albert Einstein T.U. Cluj-Napoca - Computer Programming - lecture 4 - M. Joldoş 1 Outline Functions Structure of a function

More information

Holtek C and ANSI C Feature Comparison User s Guide

Holtek C and ANSI C Feature Comparison User s Guide Holtek C and ANSI C Feature Comparison User s Guide July 2009 Copyright 2009 by HOLTEK SEMICONDUCTOR INC. All rights reserved. Printed in Taiwan. No part of this publication may be reproduced, stored in

More information

Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and

Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and #include The Use of printf() and scanf() The Use of printf()

More information

Review: Constants. Modules and Interfaces. Modules. Clients, Interfaces, Implementations. Client. Interface. Implementation

Review: Constants. Modules and Interfaces. Modules. Clients, Interfaces, Implementations. Client. Interface. Implementation Review: Constants Modules and s CS 217 C has several ways to define a constant Use #define #define MAX_VALUE 10000 Substitution by preprocessing (will talk about this later) Use const const double x =

More information

Introduction. Background. Document: WG 14/N1619. Text for comment WFW-1 of N1618

Introduction. Background. Document: WG 14/N1619. Text for comment WFW-1 of N1618 Document: WG 14/N1619 Text for comment WFW-1 of N1618 Introduction Background An essential element of secure coding in the C programming language is a set of well-documented and enforceable coding rules.

More information

Programming languages, their environments and system software interfaces

Programming languages, their environments and system software interfaces ISO/IEC JTC1 SC22 WG14 N1146 Date: 2005-10-25 Reference number of document: ISO/IEC TR 24731 Committee identification: ISO/IEC JTC1 SC22 WG14 SC22 Secretariat: ANSI Information Technology Programming languages,

More information

The C Language Reference Manual

The C Language Reference Manual The C Language Reference Manual Stephen A. Edwards Columbia University Summer 2014 Katsushika Hokusai, In the Hollow of a Wave off the Coast at Kanagawa, 1827 Part I The History of C C History Developed

More information

Introduction. Introduction 1

Introduction. Introduction 1 Introduction 1 Traditionally, the C Library has contained many functions that trust the programmer to provide output character arrays big enough to hold the result being produced. Not only do these functions

More information

This lists all known errors in The C Programming Language, Second Edition, by Brian Kernighan and Dennis Ritchie (Prentice-Hall, 1988).

This lists all known errors in The C Programming Language, Second Edition, by Brian Kernighan and Dennis Ritchie (Prentice-Hall, 1988). Errata for The C Programming Language, Second Edition This lists all known errors in The C Programming Language, Second Edition, by Brian Kernighan and Dennis Ritchie (Prentice-Hall, 1988). The pagination

More information

Introduction to C Programming (Part A) Copyright 2008 W. W. Norton & Company. All rights Reserved

Introduction to C Programming (Part A) Copyright 2008 W. W. Norton & Company. All rights Reserved Introduction to C Programming (Part A) Copyright 2008 W. W. Norton & Company. All rights Reserved Overview (King Ch. 1-7) Introducing C (Ch. 1) C Fundamentals (Ch. 2) Formatted Input/Output (Ch. 3) Expressions

More information

ISO/IEC JTC 1/SC 22/WG 14 N 1555

ISO/IEC JTC 1/SC 22/WG 14 N 1555 ISO/IEC JTC 1/SC 22/WG 14 N 1555 Date 11 April 2011 Contributed by Original file name Barry Hedquist and John Benito N1553 Notes Based on WG 14/N1553 and SC 22/N4578 N1553 Balloted document: SC22 N 4578

More information

CSE2301. Functions. Functions and Compiler Directives

CSE2301. Functions. Functions and Compiler Directives Warning: These notes are not complete, it is a Skelton that will be modified/add-to in the class. If you want to us them for studying, either attend the class or get the completed notes from someone who

More information

정형기법을활용한 AUTOSAR SWC 의구현확인및정적분석

정형기법을활용한 AUTOSAR SWC 의구현확인및정적분석 정형기법을활용한 AUTOSAR SWC 의구현확인및정적분석 Develop high quality embedded software 이영준 Principal Application Engineer 2015 The MathWorks, Inc. 1 Agendas Unit-proving of AUTOSAR Component and Runtime error Secure Coding

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4 BIL 104E Introduction to Scientific and Engineering Computing Lecture 4 Introduction Divide and Conquer Construct a program from smaller pieces or components These smaller pieces are called modules Functions

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

Programming languages - C

Programming languages - C INTERNATIONAL STANDARD ISO/IEC 9899:1990 TECHNICAL CORRIGENDUM 1 Published 1994-09-15 Corrected and reprinted 1995-09-I 5 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION*ME~~YHAPO~HAfl OPTAHM3ALWlfl I-IO

More information

The New C Standard (Excerpted material)

The New C Standard (Excerpted material) The New C Standard (Excerpted material) An Economic and Cultural Derek M. Jones derek@knosof.co.uk Copyright 2002-2008 Derek M. Jones. All rights reserved. 1456 6.7.2.3 Tags 6.7.2.3 Tags type contents

More information

Introduction to Programming Systems

Introduction to Programming Systems Introduction to Programming Systems CS 217 Thomas Funkhouser & Bob Dondero Princeton University Goals Master the art of programming Learn how to be good programmers Introduction to software engineering

More information

Programming Language Vulnerabilities within the ISO/IEC Standardization Community

Programming Language Vulnerabilities within the ISO/IEC Standardization Community Programming Language Vulnerabilities within the ISO/IEC Standardization Community Stephen Michell International Convenor JTC 1/SC 22 WG 23 Programming Language Vulnerabilities stephen.michell@maurya.on.ca

More information

MISRA C:2012. by Paul Burden Member of MISRA C Working Group and co-author of MISRA C:2012. February 2013

MISRA C:2012. by Paul Burden Member of MISRA C Working Group and co-author of MISRA C:2012. February 2013 WHITEPAPER MISRA C:2012 by Paul Burden Member of MISRA C Working Group and co-author of MISRA C:2012 February 2013 Since its launch in 1998, MISRA C has become established as the most widely used set of

More information

Technical Report on further interoperability with C

Technical Report on further interoperability with C Technical Report on further interoperability with C John Reid, ISO Fortran Convener, JKR Associates and Rutherford Appleton Laboratory Fortran 2003 (or 2008) provides for interoperability of procedures

More information

Category (see the category tab) Comment and rationale Proposed new text Record of Response. Initials #

Category (see the category tab) Comment and rationale Proposed new text Record of Response. Initials # ISO/IEC JTC 1/SC 22/WG 14 N1662 - Commenting Template To submit your comments, submit this spreadsheet using a filename with the following format: FML-yymmdd.xls where "FML" is your Commen Com Rule Subsectio

More information

ECE 2400 Computer Systems Programming Fall 2018 Topic 11: Transition to C++

ECE 2400 Computer Systems Programming Fall 2018 Topic 11: Transition to C++ ECE 2400 Computer Systems Programming Fall 2018 Topic 11: Transition to C++ School of Electrical and Computer Engineering Cornell University revision: 2018-10-19-09-50 1 Why C++? 3 1.1. Procedural Programming........................

More information

Introduction to N1031. Components of N1031. Guiding Principles. Walk through, issues, and rationale

Introduction to N1031. Components of N1031. Guiding Principles. Walk through, issues, and rationale Introduction to N1031 Walk through, issues, and rationale Components of N1031 New functions that protect against buffer overflow and always produce null terminated strings New reentrant versions of old

More information

CERT C++ COMPLIANCE ENFORCEMENT

CERT C++ COMPLIANCE ENFORCEMENT CERT C++ COMPLIANCE ENFORCEMENT AUTOMATED SOURCE CODE ANALYSIS TO MAINTAIN COMPLIANCE SIMPLIFY AND STREAMLINE CERT C++ COMPLIANCE The CERT C++ compliance module reports on dataflow problems, software defects,

More information

Addressing Future Challenges in the Development of Safe and Secure Software Components The MathWorks, Inc. 1

Addressing Future Challenges in the Development of Safe and Secure Software Components The MathWorks, Inc. 1 Addressing Future Challenges in the Development of Safe and Secure Software Components 2016 The MathWorks, Inc. 1 Cybersecurity Emerging Topic in the Auto Industry Vehicle-to-Infrastructure Wifi Hotspot

More information

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson)

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson) Lecture 9 Functions Dr M Kasim A Jalil Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson) Objectives In this chapter, you will learn: To understand how to construct programs modularly

More information

Pointers (continued), arrays and strings

Pointers (continued), arrays and strings Pointers (continued), arrays and strings 1 Last week We have seen pointers, e.g. of type char *p with the operators * and & These are tricky to understand, unless you draw pictures 2 Pointer arithmetic

More information

Programming languages, their environments and system software interfaces. Specification for Secure C Library Functions

Programming languages, their environments and system software interfaces. Specification for Secure C Library Functions ISO/IEC JTC1 SC22 WG14 N1093 Date: 2004-12-09 Reference number of document: ISO/IEC WDTR 24731 Committee identification: ISO/IEC JTC1 SC22 WG14 SC22 Secretariat: ANSI Information Technology Programming

More information

Guidelines for development of ISO conformant devices

Guidelines for development of ISO conformant devices Guidelines for development of ISO 28560-3 conformant devices Author : Tommy Schomacker, contact TS@dbc.dk Identifier: http://biblstandard.dk/rfid/docs/conformance_28560-3.pdf Status : For information Published

More information

Tutorial 5. PDS Lab Section 16 Autumn Functions The C language is termed as function-oriented programming

Tutorial 5. PDS Lab Section 16 Autumn Functions The C language is termed as function-oriented programming PDS Lab Section 16 Autumn-2018 Tutorial 5 Functions The C language is termed as function-oriented programming Every C program consists of one or more functions. The concept is based on the divide-and conquer

More information

Pointers (continued), arrays and strings

Pointers (continued), arrays and strings Pointers (continued), arrays and strings 1 Last week We have seen pointers, e.g. of type char *p with the operators * and & These are tricky to understand, unless you draw pictures 2 Pointer arithmetic

More information

Security TR Editor's Report

Security TR Editor's Report Security TR Editor's Report December 1, 2004 Randy Meyers 1. Introduction Let me apologize for the latest draft of the Security TR (N1088) being a week and a half late. I developed a nasty respiratory

More information

CS 137 Part 6. ASCII, Characters, Strings and Unicode. November 3rd, 2017

CS 137 Part 6. ASCII, Characters, Strings and Unicode. November 3rd, 2017 CS 137 Part 6 ASCII, Characters, Strings and Unicode November 3rd, 2017 Characters Syntax char c; We ve already seen this briefly earlier in the term. In C, this is an 8-bit integer. The integer can be

More information

ZiLOG Z8 Encore! Compiler Compliance With ANSI STANDARD C

ZiLOG Z8 Encore! Compiler Compliance With ANSI STANDARD C ZiLOG Z8 Encore! Compiler Compliance With ANSI STANDARD C ZiLOG Worldwide Headquarters 532 Race Street San Jose, CA 95126 Telephone: 408.558.8500 Fax: 408.558.8300 www.zilog.com 2 Abstract The purpose

More information

Programming in C. Rex Jaeschke

Programming in C. Rex Jaeschke Programming in C Rex Jaeschke Programming in C 1984 1996, 2001 2004, 2007, 2009, 2018 Rex Jaeschke. All rights reserved. Edition: 5.0 All rights reserved. No part of this publication may be reproduced,

More information

Information technology Programming languages, their environments and system software interfaces C secure coding rules

Information technology Programming languages, their environments and system software interfaces C secure coding rules TECHNICAL SPECIFICATION ISO/IEC TS 17961 First edition 2013-11-15 Information technology Programming languages, their environments and system software interfaces C secure coding rules Technologies de l

More information

Primer Plus. Fourth Edition. Stephen Prata. 800 East 96th St., Indianapolis, Indiana, USA

Primer Plus. Fourth Edition. Stephen Prata. 800 East 96th St., Indianapolis, Indiana, USA C Primer Plus Fourth Edition Stephen Prata 800 East 96th St., Indianapolis, Indiana, 46240 USA C Primer Plus, Fourth Edition Copyright 2002 by Sams Publishing All rights reserved. No part of this book

More information

Advanced Programming in C. Rex Jaeschke

Advanced Programming in C. Rex Jaeschke Advanced Programming in C Rex Jaeschke Advanced Programming in C 1988 1991, 2018 Rex Jaeschke. All rights reserved. Edition: 3.0 All rights reserved. No part of this publication may be reproduced, stored

More information

ISO/IEC Software Engineering Lifecycle profiles for Very Small Entities (VSEs) Part 2-1: Framework and taxonomy

ISO/IEC Software Engineering Lifecycle profiles for Very Small Entities (VSEs) Part 2-1: Framework and taxonomy INTERNATIONAL STANDARD ISO/IEC 29110-2-1 First edition 2015-11-01 Software Engineering Lifecycle profiles for Very Small Entities (VSEs) Part 2-1: Framework and taxonomy Ingénierie du logiciel Profil de

More information

Programming vulnerabilities for C++ (part of WG23 N0746)

Programming vulnerabilities for C++ (part of WG23 N0746) Document number:p0799r0 Date: 20171016 (pre-albuquerque) Project: Programming Language C++, WG21, SG12 Authors: Stephen Michel, Chris Szalwinski, Michael Wong, Hubert Tong, Email: stephen.michell@maurya.on.ca,

More information

Axivion Bauhaus Suite Technical Factsheet AUTOSAR

Axivion Bauhaus Suite Technical Factsheet AUTOSAR Version 6.9.1 upwards Axivion Bauhaus Suite Technical Factsheet AUTOSAR Version 6.9.1 upwards Contents 1. C++... 2 1. Autosar C++14 Guidelines (AUTOSAR 17.03)... 2 2. Autosar C++14 Guidelines (AUTOSAR

More information

ISO/IEC INTERNATIONAL STANDARD. Software engineering Lifecycle profiles for Very Small Entities (VSEs) Part 2: Framework and taxonomy

ISO/IEC INTERNATIONAL STANDARD. Software engineering Lifecycle profiles for Very Small Entities (VSEs) Part 2: Framework and taxonomy INTERNATIONAL STANDARD ISO/IEC 29110-2 First edition 2011-01-15 Software engineering Lifecycle profiles for Very Small Entities (VSEs) Part 2: Framework and taxonomy Ingénierie du logiciel Profils de cycle

More information

Best Practices Process & Technology. Sachin Dhiman, Senior Technical Consultant, LDRA

Best Practices Process & Technology. Sachin Dhiman, Senior Technical Consultant, LDRA Best Practices Process & Technology Sachin Dhiman, Senior Technical Consultant, LDRA Best Quality Software Product Requirements Design Coding Testing 2 Product Requirement Feature Requirement Security

More information

Rationale for TR Extension to the programming language C. Decimal Floating-Point Arithmetic

Rationale for TR Extension to the programming language C. Decimal Floating-Point Arithmetic WG14 N1161 Rationale for TR 24732 Extension to the programming language C Decimal Floating-Point Arithmetic Contents 1 Introduction... 1 1.1 Background... 1 1.2 The Arithmetic Model... 3 1.3 The Encodings...

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

Functions. Angela Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan.

Functions. Angela Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan. Functions Angela Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan 2009 Fall Outline 5.1 Introduction 5.3 Math Library Functions 5.4 Functions 5.5

More information

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process UK MathWorks Aerospace & Defence Industry Working Group Guidelines for deployment of MathWorks R2010a toolset within

More information

CSC209H Lecture 4. Dan Zingaro. January 28, 2015

CSC209H Lecture 4. Dan Zingaro. January 28, 2015 CSC209H Lecture 4 Dan Zingaro January 28, 2015 Strings (King Ch 13) String literals are enclosed in double quotes A string literal of n characters is represented as a n+1-character char array C adds a

More information

Possible Defects in TR Randy Meyers N1261

Possible Defects in TR Randy Meyers N1261 1. Possible Defects in TR 24731-1 Since the last meeting, I have received email pointing out possible defects in the Boundschecking TR. This paper summarizes those issues. 2. Typos 2.1 scanf family 6.5.3.*,

More information

nptr = new int; // assigns valid address_of_int value to nptr std::cin >> n; // assigns valid int value to n

nptr = new int; // assigns valid address_of_int value to nptr std::cin >> n; // assigns valid int value to n Static and Dynamic Memory Allocation In this chapter we review the concepts of array and pointer and the use of the bracket operator for both arrays and pointers. We also review (or introduce) pointer

More information

ANSI C Changes. Jonathan Hoyle Eastman Kodak 10/5/00

ANSI C Changes. Jonathan Hoyle Eastman Kodak 10/5/00 ANSI C Changes Jonathan Hoyle Eastman Kodak 10/5/00 ANSI C Changes Introduction Changes to C in conformance to C++ New additions to C friendly to C++ New additions to C unfriendly to C++ What has not changed

More information

Conformance Requirements Guideline Version 0.1

Conformance Requirements Guideline Version 0.1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Editors: Conformance Requirements Guideline Version 0.1 Aug 22, 2001 Lynne Rosenthal (lynne.rosenthal@nist.gov)

More information

HP C Language Reference Manual

HP C Language Reference Manual HP C Language Reference Manual Order Number: AA PUNDJ TK January 2005 This document is the language reference manual for HP C. Revision Update Information: Software Version: This manual supersedes the

More information

MISRA-C Compliance Matrix _ Using PC Lint

MISRA-C Compliance Matrix _ Using PC Lint MISRA-C Compliance Matrix _ Using PC Lint by Chris Hills Revision 0.2 15 April 2002 Part of the QuEST series:- QA4 chris@phaedsys.org quest.phaedsys.org quest.phaedsys.org page 2 of 26 15/04/2002 MISRA-C

More information

The New C Standard (Excerpted material)

The New C Standard (Excerpted material) The New C Standard (Excerpted material) An Economic and Cultural Derek M. Jones derek@knosof.co.uk Copyright 2002-2008 Derek M. Jones. All rights reserved. 1103 6.5.3.3 Unary arithmetic operators 6.5.3.3

More information

CS61C Machine Structures. Lecture 4 C Pointers and Arrays. 1/25/2006 John Wawrzynek. www-inst.eecs.berkeley.edu/~cs61c/

CS61C Machine Structures. Lecture 4 C Pointers and Arrays. 1/25/2006 John Wawrzynek. www-inst.eecs.berkeley.edu/~cs61c/ CS61C Machine Structures Lecture 4 C Pointers and Arrays 1/25/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L04 C Pointers (1) Common C Error There is a difference

More information

6th Working Draft of ISO/IEC Introduction from the Convenor

6th Working Draft of ISO/IEC Introduction from the Convenor May 2009 6th Working Draft of ISO/IEC 17065 3 rd meeting of WG 29 on June 29-30 - July 1 Introduction from the Convenor April 30th, 2009 Mario O. Wittner The Drafting Group prepared the WD 6 of ISO/IEC

More information

N1793: Stability of indeterminate values in C11

N1793: Stability of indeterminate values in C11 N1793: Stability of indeterminate values in C11 Robbert Krebbers and Freek Wiedijk Radboud University Nijmegen, The Netherlands Abstract. This paper document N1793 of WG 14 proposes and argues for a specific

More information

Rationale for International Standard - Programming Language - C

Rationale for International Standard - Programming Language - C Rationale for International Standard - Programming Language - C UNIX is a trademark of X/Open Co., Ltd.. DEC and PDP-11 are trademarks of Digital Equipment Corporation. POSIX is a trademark of IEEE. CONTENTS

More information

ISO/IEC INTERNATIONAL STANDARD

ISO/IEC INTERNATIONAL STANDARD INTERNATIONAL STANDARD ISO/IEC 14143-2 First edition 2002-11-15 Information technology Software measurement Functional size measurement Part 2: Conformity evaluation of software size measurement methods

More information

Hacking in C. The C programming language. Radboud University, Nijmegen, The Netherlands. Spring 2018

Hacking in C. The C programming language. Radboud University, Nijmegen, The Netherlands. Spring 2018 Hacking in C The C programming language Radboud University, Nijmegen, The Netherlands Spring 2018 The C programming language Invented by Dennis Ritchie in the early 70s First Hello World program written

More information

Week 1 / Lecture 2 8 March 2017 NWEN 241 C Fundamentals. Alvin Valera. School of Engineering and Computer Science Victoria University of Wellington

Week 1 / Lecture 2 8 March 2017 NWEN 241 C Fundamentals. Alvin Valera. School of Engineering and Computer Science Victoria University of Wellington Week 1 / Lecture 2 8 March 2017 NWEN 241 C Fundamentals Alvin Valera School of Engineering and Computer Science Victoria University of Wellington Admin stuff People Course Coordinator Lecturer Alvin Valera

More information

Secure Coding Initiative

Secure Coding Initiative Secure Coding Initiative Robert C. Seacord 2010 Carnegie Mellon University NO WARRANTY THIS MATERIAL OF CARNEGIE MELLON UNIVERSITY AND ITS SOFTWARE ENGINEERING INSTITUTE IS FURNISHED ON AN AS-IS" BASIS.

More information

Specification for TRAN Layer Services

Specification for TRAN Layer Services Specification for TRAN Layer Services Version 1.0 November 3, 1995 Sponsored by: Architecture Working Group of the 1394 Trade Association Approved for Release by: 1394 Trade Association Steering Committee

More information

Extended friend Declarations

Extended friend Declarations Document number: Date: 19 September, 2003 Reply to: William M. Miller The MathWorks, Inc. wmm@world.std.com Extended friend Declarations I. The Problem According to the current Standard, 11.4 2, An elaborated-type-specifier

More information

TECH 3381 CARRIAGE OF EBU-TT-D IN ISOBMFF VERSION: 1.0 SOURCE: SP/MIM XML SUBTITLES

TECH 3381 CARRIAGE OF EBU-TT-D IN ISOBMFF VERSION: 1.0 SOURCE: SP/MIM XML SUBTITLES TECH 3381 CARRIAGE OF EBU-TT-D IN ISOBMFF VERSION: 1.0 SOURCE: SP/MIM XML SUBTITLES Geneva October 2014 Tech 3381 Conformance Notation This document contains both normative text and informative text.

More information

Rationale for American National Standard for Information Systems Programming Language C

Rationale for American National Standard for Information Systems Programming Language C Rationale for American National Standard for Information Systems Programming Language C UNIX is a registered trademark of AT&T. DEC and PDP-11 are trademarks of Digital Equipment Corporation. POSIX is

More information

Specifications for Managed Strings

Specifications for Managed Strings Specifications for Managed Strings Hal Burch CERT/CC Software Engineering Institute Fred Long Department of Computer Science University of Wales, Aberystwyth Robert Seacord CERT/CC Software Engineering

More information

Release Management Process and Implementation Guidelines

Release Management Process and Implementation Guidelines Release Management Process and Implementation Guidelines Adopted by the IAIABC EDI Council on March 9, 2017 and revised on November 9, 2017 Introduction This document is intended to ensure greater stability,

More information

There is now a new standard (ISO/IEC 9899:1999, or C99) adding some new features. These are pointed out where appropriate.

There is now a new standard (ISO/IEC 9899:1999, or C99) adding some new features. These are pointed out where appropriate. Learning C from Java Java is a soft cushion at the bottom of the sea; C is a stony floor at the bottom of a cliff. Differences This is a list of differences between Java and C, and assumes that the reader

More information

C - The C1X Charter. Introduction. Original Principles. Document: WG14 N1250 Author: John Benito, Convener Date: 2007/06/29

C - The C1X Charter. Introduction. Original Principles. Document: WG14 N1250 Author: John Benito, Convener Date: 2007/06/29 C - The C1X Charter Document: WG14 N1250 Author: John Benito, Convener Date: 2007/06/29 Introduction At the WG14/INCITS J11 meeting in London, UK, April 2007 there was general agreement the committee should

More information

The New C Standard (Excerpted material)

The New C Standard (Excerpted material) The New C Standard (Excerpted material) An Economic and Cultural Derek M. Jones derek@knosof.co.uk Copyright 2002-2008 Derek M. Jones. All rights reserved. 1378 type specifier type-specifier: void char

More information

Sector Vision for the Future of Reference Standards

Sector Vision for the Future of Reference Standards The Group of Representative Bodies (GRB) The Sector Forum Rail (SFR) Sector Vision for the Future of s Brussels, 13 th July 2018 Sector Vision for Future of s 13 th July 2018 Page 1 of 6 Scope of position

More information

ISO/IEC JTC 1/SC 22/OWGV N 0220

ISO/IEC JTC 1/SC 22/OWGV N 0220 ISO/IEC JTC 1/SC 22/OWGV N 0220 Draft Fortran Annex Date 24 August 2009 Contributed by Dan Nagle Original file name 09-258r1.txt Notes Replaces N0216 To: WG23 09-258r1 Subject: Draft Fortran Annex From:

More information

ISO TC46/SC11 Archives/records management

ISO TC46/SC11 Archives/records management ISO TC46/SC11 Archives/records management GUIDANCE FOR IMPLEMENTING DOCUMENTED INFORMATION CLAUSE USING PROCESSES AND CONTROLS OF ISO 30301:2011 Management system for records EXPLANATORY PAPER NOVEMBER

More information

Rationale for TR Extension to the programming language C. Decimal Floating-Point Arithmetic

Rationale for TR Extension to the programming language C. Decimal Floating-Point Arithmetic Rationale for TR 24732 Extension to the programming language C Decimal Floating-Point Arithmetic Contents 1 Introduction... 1 1.1 Background... 1 1.2 The Arithmetic Model...3 1.3 The Encodings... 3 2 General...

More information

On 17 June 2006, the editor provided the following list via an to the convener:

On 17 June 2006, the editor provided the following list via an  to the convener: ISO/IEC JTC 1/SC 22/WG 9 N 471 List of AIs Approved per Resolution 50-8 James W. Moore, Convener 23 June 2006 Resolution 50-8 reads as follows: "Noting WG9's approval of the amendment to ISO/IEC 8652 and

More information

CERTIFICATION ISSUES IN AUTOMOTIVE SOFTWARE

CERTIFICATION ISSUES IN AUTOMOTIVE SOFTWARE CERTIFICATION ISSUES IN AUTOMOTIVE SOFTWARE Speaker: Mario Fusani Systems and Software Evaluation Centre ISTI CNR, Pisa, Italy mario.fusani@isti.cnr.it 1 CONTENTS Certification What is certification? Definitions

More information

Automating Best Practices to Improve Design Quality

Automating Best Practices to Improve Design Quality Automating Best Practices to Improve Design Quality 임베디드 SW 개발에서의품질확보방안 이제훈차장 2015 The MathWorks, Inc. 1 Key Takeaways Author, manage requirements in Simulink Early verification to find defects sooner

More information