下図のようにメニューに追加しました。
SC2との互換を取るために前の言語制約はそのまま残しています(deprecated)が、SC3では、Pythonによる言語制約を使ってください。
Pythonの日本語変数
日本語の全てが
使える訳ではないようです。
とりあえず、不具合が出ると分かっているものは、次のようにプロジェクト読み込み時に修正するようにしました。
SC2 | SC3 Replaced |
制約開始日ー1 | 制約開始日一日前 |
制約開始日ー2 | 制約開始日二日前 |
制約開始日ー3 | 制約開始日三日前 |
制約開始日ー4 | 制約開始日四日前 |
制約開始日ー5 | 制約開始日五日前 |
制約開始日ー6 | 制約開始日六日前 |
制約開始日ー7 | 制約開始日七日前 |
制約開始日+1 | 制約開始日一日後 |
制約開始日+2 | 制約開始日二日後 |
制約開始日+3 | 制約開始日三日後 |
制約開始日+4 | 制約開始日四日後 |
制約開始日+5 | 制約開始日五日後 |
制約開始日+6 | 制約開始日六日後 |
制約終了日ー1 | 制約終了日一日前 |
制約終了日ー2 | 制約終了日二日前 |
制約終了日ー3 | 制約終了日三日前 |
制約終了日ー4 | 制約終了日四日前 |
制約終了日ー5 | 制約終了日五日前 |
制約終了日ー6 | 制約終了日六日前 |
お決まりのHello World!からです。
import sc3
sc3.print("Hi\n")
<Pythonインタープリタは?>
pythonインタープリタは、制約ソルバ上に組み込まれて(embedded)います。インタープリタのpathは、制約ソルバーと同じパス上にあります。プロジェクトファイル上にはないのでご注意ください。
<制約ソルバーとのインターフェースは?>
python上からは、全てsc3を介してインターフェースされます。sc3は、暗黙moduleでありユーザは実体を見ることはできません。
sc3は、pybind11でバインドしたc++moduleです。
sc3がないと、何もすることは出来ません。従い、まずプログラムの最初に、
import sc3
と書く必要があります。
<コンソールの出力方法は?>
ありません。GUIへの出力は、sc3.print(string,string...) としてください。
実行の様子です。
コンパイルの最初の方で、GUIが設定した集合情報ファイルを生成しています。
(後述)その後、インタープリタの実行に移り、Hiが出力されています。その後、制約の最終コンパイル経てソルバーの実行に移って行きます。
<Pythonの役目>
Pythonの役目は、集合情報ファイルを利用して、ソルバー内の変数に自由にアクセスし、制約を付加することです。GUI設定で、行き届かない部分について、Pythonでプログラムすることになります。
SC2言語とあまり変わるところはないのですが、SC3では、公式にPythonによる制約をサポートします。ハード制約のみならず、ソフト制約もサポートします。一般のユーザが使うことは想定していません。十分にGUIによる制約について慣れている方々を想定します。(プログラム上級の方でも、制約プログラムには、慣れが必要だと思います。)
GUIの全てを置き換えることも理論的には可能ですが、Pythonを使っても骨が折れる作業ですので、小さなシステムを除いてあまり現実的ではないと思います。総じて、GUI制約を補間することが、Pythonの役目になります。
0 件のコメント:
コメントを投稿