シンプルなオブジェクト指向プログラミング言語を設計しています。
これは、Javaと同様に、VMによって静的に型付け、コンパイル、および実行されます。
違いは、OOPをそれほど強調したくないということです。コード自体はほとんどC ++(ファイルスコープで許可されているクラス、関数、変数)に似ています。
必要なものの1つはモジュールシステムです。私は以下を理解しました:
- すべてのファイルはモジュールです(一度コンパイルすると)-Pythonのように
- プログラマーは
import
キーワードを使用してモジュールをインポートする必要があります。これにより、コンパイラーは標準ディレクトリーおよびファイル・ディレクトリーでモジュールを検索します(VMは実行時にもこれを行う必要があります)。
そして今、私はサブモジュールとモジュール階層の概念をどのように導入すればよいのか分かりません。
たとえば、1つのオプションは、ディレクトリ階層に依存することです。これによりimport engine.graphics.renderer
、作業ディレクトリ内、および「renderer」というモジュールを持つ「graphics」というディレクトリ内に「engine」というディレクトリが見つかるはずです。
そのようなデザインの欠点は何ですか?何か不足していますか?
foo.bar
foo / bar.fileであるかfoo
、メンバーを持つモジュール(これもモジュール)であるかのあいまいさが存在しますbar
。考慮すべきSOmething
@annotations
そのような情報を埋め込むために紹介するつもりでした。