QUICK REVIEW
[論文レビュー] Programming in Alma-0, or Imperative and Declarative Programming Reconciled
Krzysztof R. Apt, Andrea Schaerf|ArXiv.org|Apr 5, 2000
Scheduling and Timetabling Solutions参考文献 8被引用数 3
ひとこと要約
この論文では、'知らない'非決定的動作と代入を統合することで、論理プログラミング風の問題(8クイーン問題やナップサック問題など)を自然に記述できる、ハイブリッド命令型・宣言型プログラミング言語Alma-0を提示する。主な貢献は、命令型構文と宣言型論理プログラミング技法が効果的に共存する統一されたプログラミングスタイルを示したことであり、これは純粋な命令型または論理プログラミング手法よりも読みやすく、簡潔なプログラムを実現する。
ABSTRACT
In (Apt et al, TOPLAS 1998) we introduced the imperative programming language Alma-0 that supports declarative programming. In this paper we illustrate the hybrid programming style of Alma-0 by means of various examples that complement those presented in (Apt et al, TOPLAS 1998). The presented Alma-0 programs illustrate the versatility of the language and show that ``don't know'' nondeterminism can be naturally combined with assignment.
研究の動機と目的
- 命令型と宣言型プログラミングパラダイムが単一の言語内で効果的に調和できることを示すこと。
- '知らない'非決定的動作と代入の組み合わせが、純粋な論理プログラミングよりも古典的問題に対してより自然な解決策を可能にすることを示すこと。
- グラフ走査、失敗による否定、実行可能仕様、スケジューリングなどを含む実用的例を通じて、Alma-0の多様性を示すこと。
- Alma-0のハイブリッドスタイルによって可能になる新しいプログラミング技法、特に制約充足問題や探索問題における応用を検討すること。
提案手法
- 9つの論理プログラミングにインspiredされた機能(論理式をステートメントとして使用、失敗の意味論など)をModula-2のサブセットに拡張する。
- ORELSEとSOMEを導入し、'知らない'非決定的動作をサポートする選択ポイントを生成し、代替計算のバックトラックを可能にする。
- COMMITとFORALLを用いて選択ポイントを管理する — COMMITは選択ポイントを破棄し、FORALLはすべての成功した分岐を反復処理する。
- 値と初期化されていない変数の両方を実引数としてサポートする混合パラメータ伝達メカニズム(MIX)を採用する。
- KNOWN関係を用いて変数の初期化状態をテストし、変数が代入済みかどうかに基づく条件付き論理を可能にする。
- プログラムに代入が含まれない場合、論理式として読めるように混合実行モデルを採用し、宣言的解釈を可能にする。
実験結果
リサーチクエスチョン
- RQ1命令型プログラミング構文を、非決定的動作やユニフィケーションといった論理プログラミング技法を自然にサポートするように拡張できるか?
- RQ2実用的なプログラミング言語において、'知らない'非決定的動作と代入を効果的に組み合わせられるか?
- RQ3古典的論理プログラミング問題が、宣言的機能を備えた命令型言語でどれほど自然に解けるか?
- RQ4Alma-0が支えるハイブリッド命令型・宣言型スタイルからどのような新しいプログラミング技法が生じるか?
- RQ5このような言語において、制約の緩和と解の列挙を効率的に実装する方法は何か?
主な発見
- 8クイーン問題の解決において、代入とバックトラックの統合のおかげで、純粋な論理プログラミングよりもAlma-0のほうがより自然な記述が可能である。
- ナップサック問題は、非決定的動作と代入の両方を用いてAlma-0で自然に表現可能であり、言語の表現力の高さを示している。
- FORALLとCOMMITの使用により、タイムテーブル例で示されるように、複数の解の体系的探索と管理が可能である。
- KNOWNテストにより、変数の初期化状態に基づく条件付き論理が可能となり、解の列挙における緩和制約の検出に不可欠である。
- 実行可能仕様を直接Alma-0で記述可能であり、タイムテーブル問題の例で示されるように、プログラム自体が仕様として機能する。
- ハイブリッドスタイルのおかげで、純粋な命令型または論理プログラミングパラダイムにおける同等の実装よりも、短く読みやすいプログラムが得られる。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。