(toppers-users 3007) Re: TECSでのCellTypeの継承

Makoto.Shirahata @ jp.yokogawa.com Makoto.Shirahata @ jp.yokogawa.com
2009年 7月 17日 (金) 16:11:13 JST


大山様

メールありがとうございます。

celltypeに継承という考えはないということですね。

以下の文読ませていただき、Cのプログラムをコンポーネント化するというところから
インターフェースを中心としたコンポーネントということかと考えました。

TECSでいうコンポーネントとは、純粋な部品というところでしょうか。

もっと勉強したいと思います。

ありがとうございました。

以上

-----Original Message-----
From: hiro22022 @ ybb.ne.jp [mailto:hiro22022 @ ybb.ne.jp]
Sent: Friday, July 17, 2009 11:22 AM
To: users @ toppers.jp
Subject: (toppers-users 3006) Re: TECSでのCellTypeの継承

白畑さん

大山です

--- Makoto.Shirahata @ jp.yokogawa.com  wrote:
> celltypeとcellがC++の
> クラス定義とそのインスタンスに近いということは、
> ドキュメントにも書いてあったように思いますが、
> 実際に動かしてみてなんとなく感じが掴めてきた気がします。
>
> ここで突然なのですが、C++でいうクラスの継承という
> 考え方、またはテクニックは、celltypeにもあるのでしょうか?

TECS には実装継承に相当する概念はありません。
celltype が受け口を持つことは、インタフェース(純粋仮想クラス)継承に相当するものになります(TECS は非オブジェクト指向を標榜しているので、あまり深く追求しても仕方ないのですが)。

以下は、余談です。

例えば MS の COM では、脆弱な親クラスの問題を避けて再利用性の高いコンポーネントを提供するために、コンポーネントレベルでの実装継承はなく、インタフェース継承のみをサポートしています(CDL レベルで扱えないだけで、コンポーネント実装では実装継承可能です)
TECS のレベルでは、(将来 C++ での実装に対応したとしても)やはり実装継承までは扱わないと考えています。

COM の場合、インタフェース継承に限定されるのは、異なるコンパイラベンダによって作られたモジュールを組合わせても問題がないようにすることも一つの目的だったようです。

TECS の現在の実装では、すべてソースコードが揃っている前提になっています(なので異なるコンパイラベンダによって作られたモジュールを組合わて使うことは想定されません)
つまり、バイナリ供給されるコンポーネントに対応できません(部分的に、最適化を切る必要があります。それでも、ラッピングすればバイナリ供給でも扱えなくはありません)