処理系の簡素化とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 処理系の簡素化の意味・解説 

処理系の簡素化

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/04 02:05 UTC 版)

C言語」の記事における「処理系の簡素化」の解説

処理系の簡素化のため、以下のように安全性犠牲にした仕様が多い。なお、ホスト環境プログラムの内容によっては、以下に対して脆弱性対策施したとしても実行速度低下無視できる程度であることも多く言語仕様側の欠点みなされることも少なくない配列参照時の自動的な添字のチェックをしない これを要因とする代表的なバグが、固定長バッファ領域はみだしデータ書き込みが行われてしまう「バッファオーバーフロー」(バッファオーバーラン)である。範囲外アクセスは、書き込みだけでなく読み取り場合未定義動作引き起こす標準ライブラリにはバッファオーバーフロー範囲外アクセス考慮していない関数あり、か多用されがちなため、しばしば脆弱性原因となる。また、Cではプログラムにより明示的に制御動的メモリ確保)することで可変長配列実現可能にしているが、確保した領域範囲外アクセスしても自動的な伸長行なわれない後継言語では、標準ライブラリまたは組み込み型により可変長配列サポートしていたり、範囲外アクセス時には例外実行時エラー)を送出するなどして安全性優先していたりすることが多い。 文字列を格納するための特別な型が存在しない 文字列にはchar型の配列利用する言語仕様上に特別な扱いはないが、ヌル文字('\0')を終端とする文字列表現使い、その操作をする標準ライブラリ関数がある。これは実質的にメモリ領域のポインタアクセスそのもので、固定長バッファに対してそれより長い可変長文字列書き込んでしまうことがあり、バッファオーバーラン元凶1つとなっている。 後継言語は文字列処理を特に強化している場合多く標準ライブラリあるいは言語仕様による組み込み文字列型提供している。 自動変数の自動的な初期化をしない 自動変数静的でないローカル変数)は変数中でも最も頻繁に用いられる初期化されていない変数参照した場合、値は不定となるが、不定な値へのアクセス未定義の動作英語版)であるので、コンパイラ最適化過程想定しない形に改変することもある。変数宣言初期化仕様による制限から、変数宣言時点初期化せず後で代入することで初期化代えることが日常的で、誤って不定の値の変数読み出すバグ作り込みやすい。なお自動変数自動とは変数領域確保解放自動であるという意味であり、自動的に初期化されるという意味ではない。 後継言語では、明示的な初期化記述されていない変数は、不定値ではなくその変数の型の既定値ゼロあるいはゼロ当の値)で初期化される仕様になっていることが多い。

※この「処理系の簡素化」の解説は、「C言語」の解説の一部です。
「処理系の簡素化」を含む「C言語」の記事については、「C言語」の概要を参照ください。

ウィキペディア小見出し辞書の「処理系の簡素化」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「処理系の簡素化」の関連用語

1
6% |||||

処理系の簡素化のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



処理系の簡素化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのC言語 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS