ソフトウェアに関わる技術

言語処理系

プログラミング言語

プログラミング言語で記述したソアルゴリズムをコード化する手段であるプログラミング言語とその仕組み要があります。この作業を行って、ソ出しています。これらの機器では、すぐ使えるように、実はコンピュータがいちばん役に立つのは、そういうあらかじめプログラムが記憶させてあります。たとえ場面ではなく、人間の介在なしに動くときです。たとえ

コンパイラ：ソースコードを機械語ば、パソコンでは OS やブラウザなどのプログラムが最ば大量の計算をするときには、人間がいちいち指示してに変換して実行可能にする初から入っています。機器によっては新たなプログラムいたら人間の速度でしか計算できません。「このようなインタプリタ：ソースコードを解釈を入れることで機能を追加できます（図 1）。

データをこうする、そして次は…」といった手順としてます。これらはすべて、プログラムの働きなのです。

ずっと動き続けて、何か必要なことがあれば対応する、これらを実現するにはやはり、プログラミング言語をソフトウェアの技術が発達してきて、人間と会話できるような人工知能（AI）のソフトも作られているのに、な使って「このような動作」というのを指示していくことが今のところ最善なのです。

ぜプログラミングが必要なのでしょうか。面倒なプログ

プログラミング言語は、目的や用途に応じて、さまざラミングなどしなくても、コンピュータに「あれをやっまなものがあります。表 1 に、代表的なプログラミングてくれ」と命令するだけで済みそうに思えます。

言語を挙げました。

それは確かに、一面では正しいです。簡単な「そのときだけの」仕事であれば、人間が「メールを○○さんにブラウザ
等

CPU 入出力機器

組み込み機器図1

表1

代表的なプログラミング言語

機器の動作はプログラムが作り出している

164

topics_ch7-03_pro-gengo_1st.indd 全ページ

する

ハードウェアオブジェクト指向

iOS アプリの作成などに使われるVBA

Microsoft Office のアプリケーションの機能を拡張するための言語

CPU A

仮想マシン
B（VM）
CPU Bの上で動く仮想マシ
ンBが仮想マシン用機械語を実行

CPU B

図 2 コンパイラとインタプリタの違い

図 3 仮想マシン方式でのコンパイラ

す。また、ボタンやスライダーなどのごとにオブジェクトとして分けて開GUI 部品もオブジェクトで、押したり発できます。そのようにすると、その動かしたりする機能を内蔵していま機能をそっくり他のプログラムに流す。そして、押したり動かしたりした用することもできますし、開発するときにその機能の部分だけを分けて開発できるので開発がしやすくなりまト）」とそのはたらきを中心に設計すトを介して、他のオブジェクトに伝えす。

るという考え方です。一度作成した部られています。

このように、オブジェクト指向は高品をオブジェクトとして利用できる

GUI のような見えるものだけでなようにすることで、さまざまな機能をく、内部で動作している機能も、機能組み合わせたプログラムが比較的容ザーインタフェース）を持つプログラ

Swift

CPU

インタプリ
タがソースコードを解釈して実行

仮想マシン
A（VM）

う（画面上には見えない）オブジェク

Web ページの中で HTML と組み合わせて使われるように作られた言語。Web アプリケーションの柔軟な操作や表示は JavaScript のプログラムを組み込むことで実現されている

高速であり、パソコンやサーバ上の大規模なプログラ
ム、高性能を要求されるプログラムに多く使われる

インタプリタ

ソース
コード

仮想マシン用機械語

ときに起こることは「アダプタ」といます。

C
C++

CPU

オブジェクト指向とは、ソフトウェ

日本発の言語であり、プログラムを簡潔で柔軟に書ける。Ruby on Rails というフレームワーク（ライブラリの一種）は多くの Web サイトの構築に使われている

Web サーバ上のシステムや、Android アプリなどの作成に使われる。大規模なシステム開発に適している

CPUが機械語を直接実行

コンパ コンパイラがイラ 一括変換

アの構造や機能を「もの（オブジェク易に組み立てられることから、今日のJava機械語手間がかかりますが、その後は CPUが命令を直接実行するので実行が高しています。

ソース
コード

コンパ
イラ

コンパイラを使うと、一度変換する

初心者でもプログラムが見やすく配置されるように、インデント（字下げ）で構造を表す方式の言語。豊富なライブラリがあり、各種のデータ処理に広く使われるようになった

JavaScriptOS

PC・スマホ

し、記述されている動作を直接実現

主な用途

ソフトウェア（プログラム）ソース
コード

2 種類があります（図 2）。

Python

追加ソフト

CPU 入出力機器理系です。これには大きく分けて次の名称

Ruby

組み込みソフト（OSを含む場合もある）で動かすためのプログラムが言語処れています。Java がこの方式を採用

コンパイラが一括変換ースコードを実際にコンピュータ上というのもプログラムの得意とするところです。

なぜプログラミング言語が必要か？

らして高速実行できるように工夫さ想マシン用の機械語）に変換する方式

命令して」、「正しいかどうかを確認するから」なのです。

また、人間が寝ていたり出かけたりしているときでも、の機械語に変換するなどの工夫を凝ときよりも遅くなります。

が実行できる命令（機械語）に直す必

べて、コンピュータ内部で動いているプログラムが作り能を提供するプログラムが動いていて、それを使っていすが、実行しながら部分的に CPU 用

グラムの実行はコンパイラを使った
実際の CPU ではなく、仮想マシンくれます。しかし、それができるのは「人間がその場でとまらない速さで大量に計算してもらえるのです。

もていねいに示してくれますが、プロ（VM、Virtual Machine）の命令（仮ュータを内蔵した機器を使っているとき、その動作はすョップなどを利用するときも、サーバの上でこれらの機械語を読み込み、その命令を実行しまータの CPU が実行できません。CPU

出したい」などと話しかければ、すぐにソフトが動いてプログラムを与えておくことで、コンピュータに目にももあります。VM は仮想マシン用の機要で、プログラム上の間違い情報など

ースコードは、そのままではコンピュ

私たちがパソコン、携帯、音楽プレーヤなど、コンピまた、ネットワーク経由で、検索サービスやネットシ速です。インタプリタは変換作業が不度なソフトウェアを作る上で必要不可欠なものとなっているのです。

窓オブジェクト
図形オブジェクト

プログラミング言語の多くはオブジ

ボタンェクト指向の考え方を取り入れてい印刷

たとえば、GUI（グラフィカルユー暗く

ムは、ボタンや入力欄などの部品オブジェクトを生成し、これらに動作を記述することで作成できます。

スライダー

たとえば、図 4 で画面に多くの図形が見えているものは、それぞれがオブジェクトで、色や形や位置を設定して「表示」することで画面に現れていまボタンを押したときの動作スライダーを動かしたときの動作

アダプタ
オブジェクトアダプタ
オブジェクト

図 4 さまざまなオブジェクトから成るプログラム

165

2023/09/07 9:45