構文上の違い
プログラミング言語間を移動する際の最も明白な変更は、構文の変更です。
3 つの異なる言語で宣言されているように、EnhEvents オブジェクトの Add メソッドについて考えてみましょう。
object.Add(Time As Double, Name As String) As Variant
HRESULT Add(
double Time,
BSTR Name,
VARIANT* pVal
);
public com.ms.com.Variant Add(
double Time,
java.lang.String Name
);
各言語の構文ではメソッドの表現が異なりますが、機能は同じです。 各言語では、Add メソッドはパラメーター Time と Name を受け取り、EnhEvent オブジェクトを返します。 C++ の例では、メソッドは 3 番目の出力パラメーター pVal を使用してオブジェクトを返します。
通常、COM オブジェクトの機能はプログラミング言語全体で同じです。 このため、COM オブジェクトのドキュメントは、使用しているプログラミング言語とは別のプログラミング言語でオブジェクトが文書化されている場合でも便利です。 オブジェクトの機能、パラメーター、戻り値の説明は、例外はほとんどありませんが、すべての言語で有効です。
COM オブジェクトの構文を別のプログラミング言語に変換する方法については、「プログラミング言語の COM オブジェクト構文の変換」を参照してください。
スクリプト言語 JavaScript、JScript、VBScript の構文の違いは、前に示したプログラミング言語の構文の違いよりも顕著ではありません。 たとえば、次の 3 つのスクリプト言語のそれぞれに実装されている 2 乗関数を考えてみましょう。
Function square(x)
square = x*x
End Function
function square(x){ return x*x; }
function square(x){ return x*x; }
プログラミング言語とは異なり、スクリプト言語が弱く型指定されていることに注意してください。 つまり、関数を宣言するときに、パラメーターまたは戻り値のデータ型を指定する必要はありません。 代わりに、変数は自動的に適切なデータ型にキャストされます。 VBScript の場合、すべての変数は同じデータ型である Variant です。
正方形の JavaScript と JScript の構文は同じです。 JScript は、主に JavaScript と互換性があります。 ただし、JScript には、 ActiveXObject、 Enumerator、 Error、 Global、 VBArray など、JavaScript で現在サポートされていない一部のオブジェクトが含まれています。 これらのオブジェクトの詳細については、「JScript 言語リファレンス」を参照してください。
表面的には、JavaScript と JScript の構文は Java 構文に似ています。 この類似性は表面的にすぎません。 Java 言語は JavaScript と JScript の両方から独立して開発されており、どちらの言語にも関連していません。
一方、VBScript は Visual Basic プログラミング言語のサブセットです。 このため、VBScript 構文は Visual Basic 構文のサブセットであり、多くの場合、Visual Basic 構文と互換性があります。
スクリプト言語での COM オブジェクトの使用については、「COM オブジェクトを使用したスクリプト作成」を参照してください。