問題タブ [modula-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
292 参照

types - Pascal に似た言語での型の等価性

Oberon-2 言語レポート「The Programming Language Oberon-2」の付録 A には、次の定義があります。

型がT aT bの2 つの変数abは、次の場合に同じ型です。

  1. T aT bの両方が同じ型識別子で示されている、または
  2. T aが、 T a = T bの形式の型宣言でT bと等しいと宣言されている、または
  3. abは、変数、レコード フィールド、または仮パラメーター宣言の同じ識別子リストにあり、オープン配列ではありません。

型宣言が与えられた場合

上記の定義のパラグラフ 2 は、次のことを示唆しています。

  • TaTbは異なる型 ( Ta = Tbの宣言なし)、
  • TaTcは異なる型 ( Ta = Tcの宣言なし) であり、
  • Tcと INTEGER は異なる型です ( Tc = INTEGER の宣言はありません)。

これは、Oberon-2の同じタイプの正しい解釈ですか? 私が理解している限りでは、Oberon-2 は名前の等価性に関して非常に厳密であり、この文脈では解釈は実際に理にかなっています。Standard Pascal と ISO Modula-2 はどうですか?

0 投票する
2 に答える
141 参照

language-design - 本体の後にモジュール名とプロシージャ名が繰り返されるのはなぜですか?

Modula-2 と Oberon では、各モジュールとプロシージャの宣言は、モジュールまたはプロシージャの名前で終わる必要があります。Pascal では必要ありません。私はこれの動機を本当に理解したことがありません。誰かが私を啓発できますか?