2020年4月の記事一覧
コンパイラ言語とインタプリタ言語
という、特定のプログラミング言語があるわけではありません。
どちらもコンピュータが直接実行できる機械語に翻訳されますが、プログラムの実行形態として機械語で記述された実行ファイルにしてから実行させるコンパイラ言語と、そのプログラミング言語で書かれた(ソース)ファイルを1ステップごと翻訳実行するインタプリタ言語に大別されます。
他にも○○言語といいながら特定のプログラミング言語ではない呼び名がありますので注意しましょう。
コメント
プログラムのコーディングをするとき、見返したり他の人が理解しやすくするためにもコードの説明を加えておくことが望ましいです。コード中に日本語でも英語でもいきなり説明文を書くとエラーになってしまうのでそれぞれのプログラミング言語には処理と関係なくするための記述方法があります。
C言語であれば //2つのスラッシュ以降の改行まで部分はコメント
または /*スラッシュとアスタリスクで囲んだ部分がコメント*/
説明だけでなく、試行錯誤しているとき元コードを残すためにも使えます。(コメントアウト)
たたいて直る?
最近は、家電製品の調子が悪いときに「たたくと直る」ことは少なくなったような気がしますが、まだ慣れていない生徒の製作物はたたくと動作が変わることがよくあります。基本的にこれはすべてはんだ付け不良によるものです。
よいはんだ付けのためには、汚れや錆に気をつけて接合部が馴染むための十分な熱しが重要です。
(※はんだ作業のときは安全のため眼鏡かゴーグルをしていることが望ましいです)
スタック
stackという言葉には積み重ねられた干草などありますが、コンピュータ分野では最後に入れたものから取り出せる(LIFO:Last-In First-Out)データ構造のことを指します。
身近な例ではブラウザ履歴で戻る進むことや画像編集時などのUndo機能の記録構造はスタックです。
MTTF
ものが故障するまで正常に使えている時間をMTTF(Mean Time To Failure)と呼び、「故障までの稼働時間の合計÷故障件数」で算出できます。 例:故障3件、稼働時間各120時間、100時間、140時間 ならば MTTFは120時間となります。
電球などの製品に寿命として示される時間はそれぞれ算出方法も異なり、さらに実際には電球スタンドなどに組み込まれて使用されるので他の箇所の故障も考えられ、指標としてもあいまいになりがちです。
基本情報処理技術者試験等ではMTTR:平均修理時間、MTBF:正常稼動から故障までの平均故障間隔 が主に用いられ、システムの稼働率を求めます。
マザーボード
パソコンはCPUやメモリ、各種ドライブ、拡張カード、電源、入出力装置で構成されます。各種装置はマザーボード(メインボードまたはロジックボードとも呼ぶ)のスロットやソケット、コネクタに接続されます。最近はCPUが直接制御する部分も出てきましたが、多くの場合マザーボード上の「チップセット」が装置間の管理・制御をしています。
形状は違えど、ノートパソコンやスマホも同様の仕組みです。
統合開発環境(IDE)
システム開発は、エディタやコンパイラ、リンカ、デバッガなど様々なソフトウェアが必要で、さらに動作対象のマイコンやOS、プラットフォームによって対応したものが必要になる。これらがまとめられて提供されているものをIDE(Integrated Development Environment):統合開発環境 といいます。
開発環境の準備や開発自体が容易になりますが、IDEによっては独自のデータ形式になることも多いので作業ファイルの取り扱いに注意が必要です。
命令とオペランド
コンピュータの処理を司るCPUでは、常に様々な命令が実行されています。
CPU ← プログラム
基本的にはCPUの種類ごとに命令の内容は異なりますが、どのような処理や制御をさせるかという「命令」と、どんなデータを指定するかという「オペランド」がセットで構成されます。
オペランドは基本的にCPUが高速にアクセスできるレジスタか、多くの作業データを置けるメインメモリのアドレスになります。
POS
販売時点情報管理(Point of sales - system)を意味します。
コンビニやスーパーでは支払いする所にレジ端末を置いて、バックヤードのコンピュータが商品価格などの情報を蓄積しています。今では様々な機能が連携されたり、アプリとしてスマホをPOSレジとして活用することもできるようです。
商品コードから価格を求めて、販売した記録をつけ、必要に応じ集計情報を出すことが基本です。基礎的なプログラミングができればもう作れますね。データ管理をより本格的に扱うならばSQLなども必要になります。
論理回路(基本論理回路)
実現させたい機能などを、実際の電子回路の設計のために0/1のような論理的動作で考えることができます。
入力がすべて1のとき1を出力するAND回路
入力がひとつでも1のとき1を出力するOR回路
入力が1なら0、0なら1を出力するNOT回路
論理的には上記3つを組み合わせたNAND,NOR,EXORがあります。
たとえば異なるデータを切り替えたい場合、次のように論理回路を組み合わせることで実現できることが考えられます。(論理回路に付く白丸はNOTの意味)さらに電子部品や電気的な事象を勘案して製作に至ります。
RAID(レイド)
RAID(Redundant Array of Independent Disk)は複数の記憶媒体を用いて、基本的にはディスクの故障に対してもデータを守るための仕組みです。※もともとのⅠは「Inexpensive」のⅠです。
RAIDは仕組みによりレベル番号がついています。データを2つの記憶媒体どちらにも同じく書き込むミラーリング。データを複数の記憶媒体に分けて並列で読書きするストライピング。データ復元のためのパリティ算出。これらが組み合わされて実現されてます。
例えばRAID-5は3台以上のディスクで構成され、ストライピングとパリティを組み合わせて1台の故障ならデータが守られます。※ストライピングのみのRAID-0は故障率も上がり、データを守れません。
家庭用コンセントは何ボルト
家電や充電器などをつなげて日々使っていると思いますが、家庭用コンセントはどんな電源でしょうか。さらに直接機器にセットする乾電池はどんな電源ですか。
スマホをはじめコンピュータの電子回路は基本的に数[V]の一定電圧で動作します。
直流・交流、電圧が異なる電源で動作させるためにはどうしたらよいか、詳しくは工業技術基礎の教科書を見てみましょう。
進数変換の基本的な考え方(小数)
コンピュータは電気的なON/OFFで動くため、1/0で数を表す2進数が基本となります。
2の乗数の組み合わせで表すので、小数も2進数で表現できます。小数点以下の場合は、2分の1(2の-1乗)、4分の1(2の-2乗)、8分の1(2の-3乗)・・・といった重みの値になります。
では、2進数の(101.0101)は10進数ではいくつでしょう。
進数変換の基本的な考え方
コンピュータは電気的なON/OFFで動くため、1/0で数を表す2進数が基本となります。
2の乗数の組み合わせで表すので、実際には1(2の0乗)から始まり、2(2の1乗)、4(2の2乗)、8(2の3乗)・・・という値の組み合わせになります。
では10進数の100(ひゃく)は2進数で表すとどうなるでしょう。