プログラミング言語の解説文において「宣言」と「定義」という用語はどのように使い分ければよいでしょうか?


C言語においては、明確にこれらの用語の意味は違うのですが、JavaやVB.NET、C#においては曖昧であるように思います。
例えば、Javaにおいて、「class Hoge{}」というコードを書いたとき、これを「クラスの宣言」と呼べばよいのか、「クラスの定義」と呼べばよいのか、どちらが適当でしょうか?

回答の条件
  • 1人2回まで
  • 登録:2006/03/17 17:11:00
  • 終了:2006/03/17 18:24:05

ベストアンサー

id:practicalscheme No.2

practicalscheme回答回数157ベストアンサー獲得回数422006/03/17 17:54:58

ポイント60pt

一般的な使い分けとしては、「宣言 (declaration)」はある識別子を言語処理系が認識できるようにすること(*)、「定義(definition)」はその識別子に正確な意味を与えること、となると思います。言語によってこれらは別々であることもありますし、同時に行われることもあります。同じ言語内でも識別子の種類によって、宣言と定義が常に一緒のものと別々でも良いものが混在していたりします。

複数の言語に渡って一般的な説明をする場合は、どちらの動作を説明しているかによって使い分ければ良いと思います。

一方、Javaの文法の説明をしている場合は「宣言」とするのが良いでしょう。なぜなら言語仕様でDeclarationとなっているからです。

http://java.sun.com/docs/books/jls/third_edition/html/j3TOC....

VB.NET, C#等でも仕様に当たれば良いと思います。


(*)これについては例えば Fischer & Grodzinsky:"The Anatomy of Programming Languages", section7.1.2等。

id:witt

明確な回答ありがとうございました。

2006/03/17 18:22:10

その他の回答(1件)

id:meshy No.1

meshy回答回数24ベストアンサー獲得回数02006/03/17 17:21:03

ポイント10pt

私はクラスをコードコーディングする時は「定義」、実際にインスタンスを作成する時を「宣言」って使ってます。

id:witt

その根拠が知りたいです。

2006/03/17 18:21:04
id:practicalscheme No.2

practicalscheme回答回数157ベストアンサー獲得回数422006/03/17 17:54:58ここでベストアンサー

ポイント60pt

一般的な使い分けとしては、「宣言 (declaration)」はある識別子を言語処理系が認識できるようにすること(*)、「定義(definition)」はその識別子に正確な意味を与えること、となると思います。言語によってこれらは別々であることもありますし、同時に行われることもあります。同じ言語内でも識別子の種類によって、宣言と定義が常に一緒のものと別々でも良いものが混在していたりします。

複数の言語に渡って一般的な説明をする場合は、どちらの動作を説明しているかによって使い分ければ良いと思います。

一方、Javaの文法の説明をしている場合は「宣言」とするのが良いでしょう。なぜなら言語仕様でDeclarationとなっているからです。

http://java.sun.com/docs/books/jls/third_edition/html/j3TOC....

VB.NET, C#等でも仕様に当たれば良いと思います。


(*)これについては例えば Fischer & Grodzinsky:"The Anatomy of Programming Languages", section7.1.2等。

id:witt

明確な回答ありがとうございました。

2006/03/17 18:22:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません