
プログラミング等専門用語解説7
REV23
ソフトウエア工房孫風雅です。
今回は既に引用している幾つかの言葉と新規の用語を先ず挙げてから、一つ一つの用語についてボリュームを確認しながら、確認・解説したいと思います。
引用済み&新規用語一覧(主にプログラミング系です)(紫色用語は取り上げ済みです)
プログラミング言語(コンパイラ型高級言語/インタプリタ型高級言語)(C/C++/C#/VB.NET/PHP/PowerShell/Excel VBA等)
高級言語/低級言語、(高水準言語/低水準言語)
ソースコード(ソース/ソースファィル)
実行ファィル
実行形式
レジスタ
ビルド
コミット/ロールバック
バグ(不具合)
シンボリック
シンボリックデバッカー
(ソフトウェア)テスト
デバッグ(デバック)
テキストエディタ
コーディング
コンパイル/リンク、コンパイラー/リンカー
インタプリタ型/コンパイラ型
(ファィル)パス
スタック
スクリプト言語
機械語/アセンブリ言語
オブジェクト指向
オーバーレイ
(ソフトウェア)インスペクション/コードレビュー
ロードモジュール(LM/EXEファィル)
バージョン/レビジョン
デプロイ/リリース
判定文
TBD
TBD(プログラムの文法関連は別途の予定です)
この中で、今回はデバッカー及びオーバーレイを取り上げてみたいと思います。
デバッカー(シンボリックデバッカー含む)
皆さんは、デバッカーを使用された事が有るでしょうか?
通常デバッカーを使用するのは、バグ・不具合を確認する、解決する為だと思います。
従って、デバッカーには解決する為の機能が必要になります。以下にその機能例・使用例を挙げてみようと思います。
ブレークポイント設定(BPと表されます)
その名の通り、動作・処理を止める場所・行を設定できます。
最終行まで実行(単に実行と言われている場合も有ります)
BP設定の無い時はプログラムのENDまで実行します。
BP設定が有れば、BP行で止まります。
一行実行(ワンステップ実行とも言われています)
一行ずつ処理を実行します。問題を見極めるための必須機能です。
変数等設定値手動表示
一行実行しながら、条件判定文などで引用している変数の値を確認する時に使用します。
都度都度、見たい変数が変わったり、と事前に特定できない為、手動で確認できる必要があります。
変数等設定値自動表示
自動で変数値を見る事が出来る意味は、手動で確認した内容を再確認する時や継続的に動作確認をする必要が有る時などは、手動では確認が進まない場合が有ります。
また、沢山の変数を次々に確認する必要が有る場合も、手動では限界が有ります。
そこで、自動確認で、多数の変数の確認や、ループ処理(所謂繰り返し処理というものがプログラムには存在します)等の継続確認の場合、自動確認が有利且つ必須です。
事前に変数を複数表示指定できるのが特徴です。
関数呼び元戻し/関数毎実行等、他にも機能はあると思いますが、通常は1から5の迄のアイテムを基本に組み合わせて使用すると思います。
講師は専用機で開発を経験した事が有り、そこで使用されていたデバッカーに以下の様な特殊な機能があった事を今でも記憶しています。
講師の知る特殊なデバッカー機能
リードフェッチ
ライトフェッチ
リード/ライトフェッチ
これらは、データ(変数など)に対して、読み込み(リード)、書き込み(ライト)及び読み込み(リード)・書き込み(ライト)どちらかの、何らかの操作が発生すると処理が止まるBP設定ができました。
特定のデータに起因すると判明した問題の場合、この機能を利用すると、立ちどころに、不具合を起こしている関数・箇所が判明します。
上記は非常に強力な機能ですが、PC上のデバッカーではこれらの機能を有しているものを見たことが現在までありません。
オーバーレイ
メモリ空間が現在の端末は追加出来たり、デフォルトで搭載しているメモリサイズが大量な場合が一般的になってきたので、殆どお目にかからなくなりましたが、メモリ量が小さいシステムで、如何に多くのアプリケーションを動作させるかという時に利用されていた、起動方法です。
但し、同時には動作せられず、一つ一つを同じメモリ空間で切り替えて起動して動作させる事で、並列では無く直列的に複数のアプリケーションを切り替えて同じメモリ空間で動作させる手法です。(OSが有している機能だったハズです)
インターネット上を検索すると、オーバーレイの言葉そのものの意味は、”重ねる”、”被せる”等の意味が有る様です。
皆さんは、プログラミングについて、どの様なご意見・イメージをお持ちでしょうか?
講師の経験が、皆様のお役に立てれば幸いです。