JavaA2Z

KAB-studio > プログラミング > JavaA2Z > セマンティクスとは

セマンティクス

日本語 意味
英語 semantics
ふりがな せまんてぃくす
フリガナ セマンティクス

解説

プログラムが持つ「意味」。
通常は「シンタックス」と対にして使用し、「プログラムシンタックス上~だが、セマンティクスとしては~だ」といった使い方をする。
 
プログラムは「言語」であるため、様々な機能を持つ予約語や記号の組み合わせによって作られる。
これらの予約語や記号の機能は「シンタックス」、つまり言語仕様上の機能でしかない。
だが、こういった単なる機能の組み合わせによって、プログラマーは「意図」をプログラムの中に含めることができる。この「意図」がセマンティクスである。
 
たとえば、あるメソッドサブクラスから呼んでもらいたい、という意図を表現したいとする。
コメントに書くこともできるが、できればプログラム上で表現すべきである。なぜなら、コメントには強制力はないが、プログラムによって表現することができれば言語仕様により強制力を持たせることができるからである。
この例なら、protectedメソッドにすることがいいだろう。publicメソッドでもサブクラスから呼び出すことができるが、一般にpublicメソッドはどこからでも呼び出せるため、publicメソッドより制限のきついprotectedメソッドにすることで「どこからでも呼び出して欲しいわけじゃない」というセマンティクスを持たせることができる。
つまり、protectedメソッドの文法的機能(シンタックス)は、そこから発展してプログラマーの意図(セマンティクス)も表現しているわけである。
 
ただし、protectedメソッドは「同パッケージであれば別クラスからでも呼び出せる」ため、完全にはこのセマンティクスを表現しきれていない。
そのため、セマンティクスには少なからず「共通知識」が必要である。つまり、「こういった場合にはこういう意図がある」というイディオムが存在し、それを知っていなければセマンティクスは伝わらないのである。
このセマンティクスのイディオムは「デザインパターン」等によって共通認識化されており、J2SE等にふんだんに使われている。セマンティクスのイディオムを数多く知り、それらを使用してライブラリを読み解き、また自分のプログラムに反映させることが重要である。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
    }

    /**
    *   たとえばこのprotectedメソッド。
    *   protectedメソッドは、文法的(シンタックス)には
    *   「他パッケージから呼ばれない」といったものですが、
    *   privateメソッドやpublicメソッド、abstractメソッドではない
    *   ことを考えると「サブクラスから呼んで欲しい」
    *   ということが読み取れます。これが「protectedメソッド」に
    *   していることに「意味(セマンティクス)」を持たせる、
    *   ということです。
    */
    protected void method()
    {
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
    }

    /**
    *   たとえばこのprotectedメソッド。
    *   protectedメソッドは、文法的(シンタックス)には
    *   「他パッケージから呼ばれない」といったものですが、
    *   privateメソッドやpublicメソッド、abstractメソッドではない
    *   ことを考えると「サブクラスから呼んで欲しい」
    *   ということが読み取れます。これが「protectedメソッド」に
    *   していることに「意味(セマンティクス)」を持たせる、
    *   ということです。
    */
    protected void method()
    {
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/05/06
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。