コンテンツにスキップ

MISRA C

Xuất xứ: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』

MISRA CMISRA(Motor Industry Software Reliability Association,ミスラ) が khai phát したC ngôn ngữの ため の ソフトウェア thiết kế tiêu chuẩn quy cách である.ANSI/ISO/IEC quy cách の C ngôn ngữ で ghi lại するTổ み込みシステムで, an toàn tính と nhưng dọn tính (ポータビリティ,Nhổ trồng tính) と tin lại tính を bảo đảm することを mục đích としている.

Cソフトウェアにおける đầu đề

[Biên tập]

Nhưng dọn tính と nhổ trồng tính

[Biên tập]

C ngôn ngữ quy cách では, ソフトウェアをCPUオペレーティングシステム(OS) の chủng loại にかかわらず nhổ trồng できるようにするために, ngôn ngữ quy cách ではあえて nghiêm mật に sĩ dạng を định めず, 処 lý hệ định nghĩa (implementation-defined), chưa định nghĩa (undefined), chưa quy định (unspecified) の động tác (behavior) など, CPU/OSおよびコンパイラごとに lấy り quyết めをする hạng mục công việc があり, hắn の ngôn ngữ と so べると phi thường に nhiều い. たとえば đại biểu なも の として tổ み込み số nguyên hình の サイズ の quy định や, quan số dẫn số の bình 価 trình tự などが hàm まれる. そ の ため, nhổ trồng tính を suy xét せずにプログラムを ghi lại した trường hợp, あるCPU/OS hướng け の C ngôn ngữ プログラムが, hắn の CPU/OSでは dị なる kết quả を ra すことがしばしばある. “The C Puzzle Book[1](Cパズルブック)[2],“C Traps and Pitfalls[3](Cプログラミング の lạc とし huyệt )[4]というベル viện nghiên cứu(Bell nghiên ) の tác giả が thư いた bổn に yết tái の プログラムを thật hành してみるとよくわかる.

An toàn tính と tin lại tính

[Biên tập]

C ngôn ngữ quy cách で quy định されている thật hành hoàn cảnh として, OS の tồn tại を tiền đề としたホスト hoàn cảnh(hosted environment) と, OSを lợi dụng しないこと ( もしくはOSそ の も の を ghi lại すること ) を tiền đề としたフリースタンディング hoàn cảnh(freestanding environment) とがある. Tổ み込み hoàn cảnh は người sau に phải làm する. C ngôn ngữ はCao cấp ngôn ngữの da をかぶったアセンブラ( cao cấp アセンブラ[5],Phiếm dùng アセンブラ[6]) とも ngôn われるように, ハードウェア の trực tiếp な chế ngự も khả năng でありながら nhổ trồng tính の cao い ngôn ngữ であり, それゆえにリソースChế hạn および tính năng yêu cầu の nghiêm しい tổ み込み hoàn cảnh やデバイスドライバーKhai phát における chủ lưu ngôn ngữ であり続けている. Tổ み込みプロセッサなど の チップベンダーが, tự xã chế ハードウェア の buôn bán khi にCコンパイラを phó thuộc させることもある. カーネルモード の ドライバーはC ngôn ngữ でしか ghi lại できない hoàn cảnh もある[7].しかし, sau phát のJavaおよびC#といった cao tiêu chuẩn な仮 tưởng マシンベース の プログラミング ngôn ngữ と tương đối して, C ngôn ngữ は an toàn tính に quan して xứng lự されているとはいいがたい.Pascalなど の đồng thời đại あるいはそれ trước kia に lên sân khấu した hắn ngôn ngữ と so べても, văn tự liệt の tráp いなどで an toàn tính に kém る bộ phận がある. Đặc にバッファオーバーランスタックオーバーフローによるメモリアクセス trái với や, メモリ の giải phóng quên れによるメモリリークなど, C ngôn ngữ ではシステム の đình chỉ や chưa định nghĩa động tác を dẫn き khởi こす thủ phạm となる trí mạng なソフトウェア の không thấu đáo hợp に đối する cuối cùng phòng vách tường はなく, これらはプログラマー sườn の gánh nặng や trách nhiệm となってしまう. C ngôn ngữ から trực tiếp phát triển したC++Ngôn ngữ についても, ある trình độ cải thiện ・ cải tiến されている bộ phận はあるも の の, vẫn như cũ としてC ngôn ngữ と cùng dạng の vấn đề điểm を ôm えている bộ phận がある.

モダンな sau phát ngôn ngữ は nhổ trồng tính の ないプログラムや nguy 険なプログラムを ghi lại しにくい ( あるいは ghi lại できない ) sĩ dạng になっている の に đối し, C/C++ ngôn ngữ はもともとプログラマーを tin lại し, プログラマーにできることを chế hạn しない thiết kế tư tưởng である. したがって, C/C++ ngôn ngữ で nhổ trồng tính や an toàn tính を bảo đảm しつつプログラムを ghi lại するためには, gì らか の コーディング quy ước を chỉnh đốn và sắp đặt ・ chuẩn hoá して, vận dụng khi に chế hạn をかける tất yếu がある.

Quan liền công văn と kinh vĩ

[Biên tập]

Matlabから tự động sinh thành (autocode) したプログラムに đối するMisra AutoCode,C++Ngôn ngữ に đối ứng するMISRA C++の tay dẫn きもある. “Safer C[8]の ようなCPUに sống nhờ vào nhau しないCプログラム の thư き phương と, “Cプログラミング の lạc とし huyệt” の ような gian vi い dễ い cơ năng を lảng tránh した thư き phương を đẩy thưởng している. MISRA Cはもともと tự động xe nghiệp giới hướng けツールの ベンダーなどが quy định したも の ではあるが, hiện tại は hắn nghiệp giới にも quảng く phổ cập している.

MISRA C quy cách の sơ bản “Guidelines for the use of the C language in vehicle based software”を1998 năm に xuất bản し,MISRA-C:1998と hô ぶ[9].

2004 năm に đệ 2 bản “Guidelines for the use of the C language in critical systems”(クリティカルシステムでC ngôn ngữ を lợi dụng するため の tay dẫn き) をMISRA-C:2004として xuất bản し, 2つ の quy tắc gian の mâu thuẫn, quy tắc phiên hiệu を thấy thẳng すなど tay dẫn きに bản chất な変 càng をした.

MISRA Cは quy tắc を thủ ることだけが mục đích ではなく, dật thoát した phương が tin lại tính が cao い trường hợp には công văn hóa することを đẩy thưởng している. Dật thoát の tay 続きをど の ようにとるとよいかについて の công văn として, Approved Deviation Compliance (ADC) を tác thành している. ADC version 1.0は MISRA Forum[10]からダウンロードできる.

C99を lấy り tráp うように tay dẫn きを sửa định し, MISRA-C:2012を phát hành した. MISRAはC ngôn ngữ tiêu chuẩn の chưa quy định, chưa định nghĩa, 処 lý hệ định nghĩa などに cơ づいている. C ngôn ngữ tiêu chuẩn は có liêu で buôn bán しているが, xem xét dùng の công văn はISO/IEC JTC2 SC22 WG14で công khai しており, nội dung を kiểm thảo する の には thập phần である[11].

MISRA C công văn は có liêu で buôn bán している[12].MISRA C の Nhật Bản ngữ bản はTự động kỹ thuật lái xe thuật sẽから, JASO テクニカルペーパー "Tự động xe dùng C ngôn ngữ lợi dụng の ガイドライン" として buôn bán されている.

また, quy tắc を hàm む giải thích thư をSESSAME の MISRA C nghiên cứu sẽ が tác thành し, Nhật Bản quy cách hiệp hội から phát hành している. なお, giải thích thư の lầm thực はSESSAME の WEBに yết tái している[13].

Quy tắc (rule)

[Biên tập]

MISRA-C:1998は127 kiện の quy tắc があり, うち93 kiện が cần thiết hạng mục công việc, 34 kiện が đẩy thưởng hạng mục công việc となっている. Quy tắc には1から127まで の luân phiên が cắt り chấn られている.

MISRA-C:2004は141 kiện の quy tắc があり, うち121 kiện が cần thiết hạng mục công việc, 20 kiện が đẩy thưởng hạng mục công việc となっている. これらは “Hoàn cảnh” や “ランタイム cơ năng” など21 hạng mục に phân loại されている.

MISRA-C:2012は143 kiện の quy tắc があり, うち10 kiện が nghĩa vụ, 101 kiện が cần thiết, 32 kiện が đẩy thưởng hạng mục công việc となっている.

ツール (tool)

[Biên tập]

“MISRA quy cách に thích hợp している” ことを bán りにしているコード kiểm tra ツールが số nhiều く tồn tại するが, MISRAは kẻ thứ ba による hứa tán thành の sĩ tổ みを cầm っていないため chính mình tuyên ngôn である[14].

MISRAツールを lợi dụng giả が bình 価して tương đối できるようにするMISRA-C:2004 cập びMISRA-C:2012 の ví dụ mẫu プログラムをMISRA yết kỳ bản[15]でダウンロードできる.

Hơn phân nửa の tay dẫn きはTĩnh コード phân tíchDùng ツールによって kiểm tra できる. Một bộ の tay dẫn きについては động なコード phân tích の cơ năng が tất yếu になる.

Quan liền công văn

[Biên tập]

セキュリティ giới hạn では, CERT C, CERT C++がコーディング tiêu chuẩn として phổ cập している[Chú 釈 1].また, ISO/IEC TS 17961[18]として quốc tế quy cách でコーディング tiêu chuẩn の cơ bản công văn を phát hành している. これら の công văn は, đi trước kỹ thuật であるMISRA Cを tham chiếu している. CERT C, CERT C++では, đối ứng するツール の một lãm, MISRA Cと の quan hệ がある.

Thư tịch

[Biên tập]
  • Tự động xe dùng C ngôn ngữ lợi dụng の ガイドライン ( đệ 2 bản ),Tự động kỹ thuật lái xe thuật sẽ,JASO TP-01002-06
  • Tổ 込み khai phát giả におくるMISRA‐C― tổ 込みプログラミング の cao tin lại hóa ガイド(MISRA-C:1998 đối ứng ), Nhật Bản quy cách hiệp hội,ISBN 978-4542503342
  • Tổ 込み khai phát giả におくるMISRA‐C:2004―C ngôn ngữ lợi dụng の cao tin lại hóa ガイド, Nhật Bản quy cách hiệp hội,ISBN 978-4542503465
  • MISRA C 2012 - tổ み込みプログラミング の cao tin lại tính ガイド, Nhật Bản quy cách hiệp hội, 2022,ISBN 9784542940017

Chú thích

[Biên tập]

Chú 釈

[Biên tập]
  1. ^CERT C/C++はSoftware Engineering Institute(Tiếng Anh bản)(SEI) によって quản lý されている[16][17].

Xuất xứ

[Biên tập]
  1. ^Alan R. Feuer (1998-10-15).The C Puzzle Book.Addison-Wesley Professional. p.[Muốn ページ phiên hiệu].ISBN0201604612
  2. ^Alan R. Feuer ( ), điền trung hoà minh ( 訳 ), tay trủng trung tắc ( 訳 ) 『Cパズルブック』カットシステム,2000 năm 12 nguyệt,[Muốn ページ phiên hiệu]Trang.ISBN4877830294.
  3. ^Andrew Koenig (1989-01-01).C Traps and Pitfalls.Addison-Wesley Professional. p.[Muốn ページ phiên hiệu].ISBN0201179288
  4. ^Andrew Koenig ( ), trung thôn minh ( 訳 ) 『Cプログラミング の lạc とし huyệt 』Kỷ nguyên mới xã,2004 năm 1 nguyệt,[Muốn ページ phiên hiệu]Trang.ISBN4775302558.
  5. ^もう một lần cơ sở からC ngôn ngữ đệ 19 hồi いろいろな tính toán tử ~ビット tính toán tử Cは cao cấp アセンブラ?
  6. ^Đệ 1 hồi Chapter 1 C ngôn ngữ の điểm chính ( 1 ): Cプログラミング nhập môn |gihyo.jp… Kỹ thuật bình luận xã
  7. ^Portable drivers - Windows drivers | Microsoft Learn
  8. ^Les Hatton (1995).Safer C: Developing Software for High-Integrity and Safety-Critical Systems (The Mcgraw-Hill International Series in Software Engineering).Mcgraw-Hill. p.[Muốn ページ phiên hiệu].ISBN0077076400
  9. ^INDEX → Introduction( 2006 năm ngày 18 tháng 10 khi điểm のアーカイブ)
  10. ^MISRA Bulletin Board - Index page[リンク thiết れ]
  11. ^ISO/IEC JTC1/SC22/WG14 - C: Approved standards
  12. ^INDEX → Buy MISRA C( 2006 năm ngày 18 tháng 10 khi điểm のアーカイブ)
  13. ^SESSAME Working Group 3
  14. ^INDEX → FAQ( 2006 năm ngày 18 tháng 10 khi điểm のアーカイブ)
  15. ^MISRA Bulletin Board - Index page[リンク thiết れ]
  16. ^SEI CERT C Coding Standard - SEI CERT C Coding Standard - Confluence
  17. ^SEI CERT C++ Coding Standard - SEI CERT C++ Coding Standard - Confluence
  18. ^C Secure Coding Rules(PDF)

Quan liền hạng mục

[Biên tập]