問題タブ [eiffel]
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.
eiffel - Eiffel で奇妙な "Check_VIOLATION" が失敗したテスト ケース
下の図の主な問題は、「check Result end」ステートメントが追加されると、自動的に失敗し、デバッガーに「CHECK_VIOLATION」エラーが表示されることです。
また、HASH_TABLE はそれに与えられたすべてのアイテムを保存するわけではありませんが、現在の HASH_TABLE[INTEGER, G] を使用する代わりに HASH_TABLE[G, INTEGER] を切り替えることで修正しました
私の主な問題は、Check_violation が常にスローされ、「チェック結果の終了」ステートメントが表示されるたびに失敗するのはなぜですか? HAS[...]関数が悪いのでしょうか?
現在、「チェック結果の終了」を含むテストケース機能はすべてfalseになり、CHECK_VILOATIONがスローされます
コード:
テストコード:
eiffel - Eiffel ループをループの不変条件/変種をサポートしない言語に翻訳する
Eiffel のループは次の形式に従います。
上記の Eiffel 疑似コードを、ループの不変条件/不変条件をサポートしない言語にどのように翻訳しますか? assert
そのようなターゲット言語に、不変/変種をチェックする命令があると仮定しましょう。
eiffel - Eiffel の機能を使用した事後条件違反
これはクラスの一部です。このクラスは BAG[G -> {HASHABLE, COMPARABLE}] と呼ばれ、count、extend、remove、remove_all、add_all などの遅延機能、再実装されるドメインを持つ ADT_BAG から継承されます。
domain は、G のソートされた配列リストである ARRAY[G] を返します。
オブジェクト比較に関係する事後条件違反「value_semantics」が常に発生しますが、チェックしたところ、オブジェクト比較のコードがありません。これは非常に奇妙です。
ドメイン機能のコードを何度か作り直そうとしましたが、常に事後条件違反または失敗で終わります。
デバッガーをチェックすると、ドメインから返される配列 "a" のカウントは常に 0 ですが、キーをテーブルから "a" に移動してもカウントが 0 のままであるため、これは意味がありません。
キーを間違って配列に転送している可能性がありますか?
コード:
テストコード:
sockets - Eiffel net でクライアント サーバー モデルを開始する開発者例外
Eiffel プログラミング言語を使用して、同じ LAN 上の 2 台の PC 間でソケットを使用して接続を確立しようとしています。デフォルトで Eiffel Studio のインストール ディレクトリにあるサンプルを実行しようとしています。ただし、現在、ローカルホスト(127.0.0.1)にアドレス指定して、同じマシンで作成しようとしています。
Linux (Ubuntu 15.10) では完全に動作しますが、Windows 7 ではクライアント プログラムを実行しようとすると例外が発生します。例外のコードは 24 接続を確立できません。サーバー プログラムは正常に動作し、Linux 上のクライアントと Windows 上のサーバー間の接続は既に確立されています。ドキュメントでも他のサイトでも、この例外の解決策は見つかりませんでした。ここにスクリーンキャップがあります:
ドキュメントへのリンクは次のとおりです。
https://www.eiffel.org/doc/solutions/Two%20Machines
前もって感謝します。
void - エッフェルの添付ステートメントのローカル変数のポイントは何ですか?
Eiffel では、Void Safety は、初期化されていない (「null」) オブジェクトの逆参照を静的に防止する方法です。それが機能する方法は、最初にオブジェクトをdetachableとして宣言する必要があり、次に、オブジェクトを使用する前に、オブジェクトが実際にアタッチされている (つまり、何らかの値がある)かどうかを if ブロックで確認する必要があります。
これは私が今までそれを使用してきた方法です:
完全に正常に動作します。アタッチされたチェックがないと、コンパイルは「Object_call のターゲットが void である可能性があります」というエラーで失敗します。しかし、 Void Safetyに関するドキュメントを実際に読んだ後、これが実際には次のようになっていることがわかりました。
この形式では、と同じオブジェクトを指しているが非 void であることが静的に保証されている if ブロックにローカルl_some_object
な変数です。some_object
しかし、この as-clause が存在する理由がわかりません。上で指摘したように、どうやらオリジナルsome_object
はすでに if ブロック内で非 void であることが静的に保証されているようですが、別の変数を導入する意味は何ですか?
スコープ以外のsome_object
との違いは何ですか?l_some_object
macos - EiffelStudio を実行している互換性のないライブラリ バージョン
EiffelStudio を次のようにインストールしました。
1)公式ページからEiffel_15.12_gpl_98497-macosx-x86-64.tar.bz2 をダウンロードします。
2)
cd /usr/ローカル
tar xvfj /パス/Eiffel_15.12.tar.bz2
3)
ISE_EIFFEL=/usr/local/Eiffel_15.12 をエクスポートします。
ISE_PLATFORM=macosx-x86-64 をエクスポートします。
エクスポート PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
次に、「ec」と入力してコマンドライン コンパイラを実行すると、次の出力が表示されます。
dyld: ライブラリがロードされていません: /opt/local/lib/libiconv.2.dylib
参照元: /usr/local/Eiffel_15.12/studio/spec/macosx-x86-64/bin/ec
理由: 互換性のないライブラリ バージョン: ec にはバージョン 8.0.0 以降が必要ですが、libiconv.2.dylib はバージョン 7.0.0 を提供します
トレース/BPT トラップ: 5
解決策はありますか?
PS:OSX 10.11.4を使用しています
PPS:私が走るとき
otool -L $(どの ec)
私は得る
/usr/local/Eiffel_15.12/studio/spec/macosx-x86-64/bin/ec:
/opt/local/lib/libiconv.2.dylib (互換バージョン 8.0.0、現在のバージョン 8.1.0)
...
編集:私は私を助けるこのリンクを見つけました
https://stackoverflow.com/a/19016967/6273708
しかし、エラーメッセージが
dyld: ライブラリがロードされていません: /opt/local/lib/libgtk-x11-2.0.0.dylib
参照元: /usr/local/Eiffel_15.12/studio/spec/macosx-x86-64/bin/ec
理由: 画像が見つかりません
トレース/BPT トラップ: 5
syntax - Eiffel - 構文エラーがある理由がわからない
私は Eiffel を初めて使用し、「Monomio」という単純なクラスを作成しようとしています。属性である 3 つの機能と関数である機能があります。問題は、構文エラーが発生していることです。見つけた他のクラスと比較しましたが、ここでエラーを見つけることができません。これは私のコードです
そして、これは私が得ているエラーです:
誰でもこれで私を助けてくれることを願っています。ありがとう。
project-organization - エッフェル契約の疑い
私は Eiffel 言語でコーディングされた計画ソフトウェアに取り組んでいます。次のコードを作成しましたが、このクラスのルーチンに対してどの種類の事後条件および/または事前条件を指定する必要があるかよくわかりません。
私は Eiffel 言語のマスターではなく、そのキーワードはまだ少しトリッキーで、現在の知識レベルでは理解するのが難しいため、この構文のヒントを提供していただけると助かります。
linked-list - Eiffel - LINKED_LIST を初期化するにはどうすればよいですか?
私は Eiffel が初めてで、Linked_List のインスタンスを作成しようとしています。このクラスでこれを行う方法がよくわかりません。そのようにしようとすると常に構文エラーが発生するからです。これは私が持っているものです:
そして、私が得ているエラーは次のとおりです。
誰かがこれで私を助けてくれることを願っています、ありがとう。