凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 47277
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

こんばんは。オブジェクト指向大好きな凪瀬です。

オブジェクト指向では「同じものを継承しているなら、一緒くたに扱う」という抽象化を行います。 個別ケースで対応するよりも、抽象化して同じものとして扱えるなら 同じものとして扱う方が余計な頭を使わずに済みます。

一方、ジェネリクスでは「型は違っても同じロジックを行っているなら、一緒くたに扱う」 という抽象化を行います。

このようないろんな抽象化で、同時に考えることを少なくしていくことで、 昨今の巨大なシステムが作られています。

戻り値を返さないイテレータ

繰返しを扱う概念として「イテレータ」というのがあります。GoFデザインパターンのIteratorパターンが有名ですね。

Javaでは java.lang.Iterableを 継承することで、for-each構文でループさせることができます。

C#では System.Collections.Generic.IEnumerator を継承することでforeachでループさせることができるようです。

いずれも、繰り返しの際に返す型をジェネリクスで指定できますね。

今ここに、内部ステータスの変更などのみを行う、繰り返し可能なイテレータを作ると仮定しましょう。

Javaでは ジェネリクスでVoidを扱う の稿で述べたとおり、voidのラッパークラスであるjava.lang.Void型を用いてVoidを返すイテレータを表現できます。

public class Hoge implements Iterable<Void>, Iterator<Void>{
    /** @see Iterable#iterator() */
    public Iterator<Void> iterator() {
        return this;
    }
    /** 繰り返し処理でさらに要素がある場合に true を返す */
    public boolean hasNext() {
        return true;
    }
    /** 繰り返し処理で次の要素を返す */
    public Void next() {
        return null;
    }
    /** 要素を削除 (任意のオペレーション) */
    public void remove() {
        throw new UnsupportedOperationException();
    }
}

戻り値はVoidですが、Iterableなのでfor-each構文で処理することができます。

Hoge hoge = new Hoge();
for (Void v : hoge) {
    // ...
}

Iterableなので繰り返しとして使うことができます。 これは「同じものを継承しているなら、一緒くたに扱う」ことができるオブジェクト指向の原則ですね。

型を継承するということは、その型としての機能を全うするべきです。 全うできないなら継承をしてはいけません。 このあたりはオブジェクト指向の設計手法でよく語られるis-a関係とhas-a関係ですね。

ゲームのロジックの実装にコルーチンを使うなら

あたりの話題なのですが、ゲームのロジックにコルーチンを用いようという試みです。 C#でIEnumeratorを実装してyield returnを用いることで実装されます。

議論のテーマはこのyield returnの戻り型は何であるべきか?というところです。

Javaにはコルーチンの機能がないので、かつのりさんが以前作っていたスレッドを用いた コルーチンもどき で表現してみましょう。

ContinuationIterator<Integer> iterator = new ContinuationIterator<Integer>(){
    protected void process(){
        for(int i = 0; i < 10; i++){
            this.yieldReturn(i);
        }
    }
};

for(int i: iterator){
    System.out.println(i);
}

通常はこのように、返す型が決まっており、for-eachでループして利用します。 返すべきデータがないのであれば、ジェネリクスの型パラメータにVoidを用いて、

ContinuationIterator<Void> iterator = new ContinuationIterator<Void>(){
    protected void process(){
        for(int i = 0; i < 10; i++){
            this.yieldReturn(null);
        }
    }
};

for(Void v: iterator){
    System.out.println("hoge");
}

となりますね。

さて、C#ではjava.lang.Voidのようなものが無いようです(私はC#については素人なので情報あれば指摘願います)。 となると、IEnumerator での戻り型のジェネリクス型パラメータに困ってしまいます。

コルーチンのyieldはDoEventsです で例に挙げられたのはこの戻り型のないイテレータの話でした。

コルーチンと運命の出会い では、コルーチンの内部で外部側のメンバ変数を変更するという作りになっていました。 これは、戻り型がないイテレータとは別の話題と考えるべきでしょう。

さて、ここからが本題、といきたいところですが、話が長くなってきたのでまた次回。

投稿日時 : 2008年3月11日 21:33
コメント
  • # re: 型を継承する以上はis-aであるべき
    myugaru
    Posted @ 2008/03/11 22:37
    今回の一連の話というのは「同時に2つ以上の仕事をこなしているが片方にばかりかかっていられないので、ある状態を保存し一旦仕事を打ち切る→別の仕事を少しだけ進める→一つ前の仕事を続きから再開する」だとか言うのはあたりまえに人間の日常にあらわれる行為です。

    コメントで指摘をいただいたのですが例えばこれはWindowsWorkFlowなどという名前で技術的にはちゃんと用意されていたりするんですね。

    人間の行う行為には、それなりにパターンがあって、それがデザインパターンなりに分類されていると思います。
    私はそういう技術的な勉強が不足していてちゃんとした用語で説明ができていないのでとても悔しい思いをしています。
    わんくま同盟と出会ってとても今勉強になっています。
    凪瀬さんからもどんどん色々吸収させてもらいたいと思っています。
  • # re: 型を継承する以上はis-aであるべき
    かつのり
    Posted @ 2008/03/11 23:07
    IEnumeratorでyield returnみたいなことをやろうと思っても、
    スレッドのコンテキストスイッチのオーバーヘッドが大きいので、
    Javaだとぶっちゃけ重くて困っているのですね。
    こういうことも力技でできる程度・・・。

    なんかいいアイデアないすかね。
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/12 1:02
    > 同時に2つ以上の仕事をこなしているが~

    片方から見たもう片方がどのような姿で見えていれば良いか、ということなのかな、と。
    総体としての動きにとらわれすぎなんじゃないかなぁ。
    C#のコルーチンってコルーチンになってようがなっていまいが、
    使う側からすれば同じIEnumeratorなんですよね。

    > IEnumeratorでyield returnみたいなことをやろうと思っても、
    > スレッドのコンテキストスイッチのオーバーヘッドが大きい

    うーむ。
    パフォーマンス測っていないのですが、どのぐらい重いのだろう…。
    状態を保存しておきたいだけなら、オブジェクトのフィールドを利用する手もありますが。
    言語のサポートなしにはコードはすっきりはしないでしょうね。
  • # タスクシステムにコルーチンを組み込むには
    凪瀬 Blog
    Posted @ 2008/03/12 23:31
    タスクシステムにコルーチンを組み込むには
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 10:28
    なんか、最近、継承に懐疑的になってきました。
    あるクラスがIterableなりIEnumerableなりを実装していることは、そのクラスに対してどの程度の強制力を持つのでしょうね?
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 12:42
    親がIterable/IEnumerrableであるということは、
    実装型が親の型の変数に代入した上でループさせられる可能性があるということです。
    このような利用法がすでにされている環境で矛盾なく動くためには実装クラスは全てIterable/IEnumerrableでなくてはなりません。

    場合によっては、継承階層のうち、そのクラスにだけ特定のインターフェースをつけたいかもしれません。
    でも、その場合、型への代入互換性の部分から手を入れないと、
    静的に型の安全性を保証できなくなってしまいます。
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 12:46
    下位のクラスが、上位のクラスの機能すべてを含有するというルールに則ることで
    静的型付けの言語で型の安全性が保証できるわけです。

    これに乗っ取らないケースでは型の安全性が保証できませんが、
    継承階層の一定の階層だけに特定のインターフェースを実装させる(下位に波及しない)としても矛盾はありません。
    JavaScriptのようなプロトタイプベースのオブジェクト指向とかだと問題ないでしょう?型安全ではないけども。

    このあたりはトレードオフでしょうね。
    JavaやC#のオブジェクト指向は静的な型安全なオブジェクト指向ですから
    そのためにはis-a関係は外せない原則になっていますね。
  • # re: 型を継承する以上はis-aであるべき
    NyaRuRu
    Posted @ 2008/03/13 13:35
    >なんか、最近、継承に懐疑的になってきました。

    .NET での IEnumerable< > は,interface<T> -> interface<U> という変換を連鎖させて何か有益な構造ができるか? という最小単位としての意味もあります.
    LINQ では,特にこの性質が表に出てきているのではないでしょうか.
    http://d.hatena.ne.jp/NyaRuRu/20080313/p1

    というわけで,処理の構造を考えて,その構造を形成するための必要十分な interface< > を導出するというアプローチもあるんじゃないかと思います.
    もちろんこれができる構造はそう沢山はないと思いますけど.

    >型安全ではないけども。

    凪瀬さんの言われている「型安全でない」は,「静的型付けか?」という意味じゃないかという気がします.
    http://www.kmc.gr.jp/~ohai/diary/?date=20050517#p02
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 15:26
    指摘されて気になったので「型安全(type-safe)」を調べてみましたが
    定義があいまいな言葉のようですね。
    キャストの際に型の違いを検出できるのであれば「型安全」とされるようなので
    私の用い方は誤っているように思います。

    先の私のコメントで「型の安全性」というのは実行時のキャストに失敗しないという意味合いで使っています。
    それは静的型付けと等値かもしれません。

    > 処理の構造を考えて,その構造を形成するための必要十分な interface< > を導出するというアプローチもあるんじゃないかと思います.

    機械にやらせてしまうのですか。
    これって、どのようなロジックでも型の導出が可能なのでしょうか…?
    実用できるぐらいのコストで機械的な型の抽象化ができるなら面白いと思いますね。
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 16:03
    疑問に思っているのは、IterableなりIEnumerableなりの意味を、どこまで曖昧なく定義できるか、ということです。
    例えば、foreachに食わせたときにコンパイルエラーにならなければ十分でしょうか?
    凪瀬さん自ら例に出されているVoidのIteratorが、Iterableの要件を満たしているかということには、議論の余地があると思います(Sunでもなければ答えは出せないでしょうけど)。
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 16:21
    > VoidのIteratorが、Iterableの要件を満たしているかということには、議論の余地があると思います

    どのような議論の余地を想定されていますか?

    VoidのItaratorは確かにVoidを返すItaratorですよ。
    もっともVoid型は有効な値を持たないのでVoid vは常にnullですが、
    このvはIteratorの結果としてfor-eachループ内で取り扱うことができます。

    余地があるとだけ言われても、具体的な論点の提示がない以上は議論することはできませんねぇ…。
  • # re: 型を継承する以上はis-aであるべき
    NyaRuRu
    Posted @ 2008/03/13 16:33
    >処理の構造を考えて,その構造を形成するための必要十分な interface< > を導出するというアプローチもあるんじゃないかと思います.

    いえ,これは人ががんばってチューニングしてライブラリ化している気がします.周りを見る限り.
    んで,人手によるモデル化がうまく行っていて,かつコードがコンパイラの型検査を検査をパスすれば,そのコードは意図したモデルの上でうまく行くことが分かる,と私は理解しています.

    ちなみに IEnumerable< > でうまく行くのは Haskell などが先に体系化してくれていて,うまくいくのが実は分かっていた話かなと.
    Haskell では他にも IO,Maybe,Error,State などがライブラリとして提供されていますが,他の言語で全てが有用かどうかというとちょっと微妙なところもあります.
    .NET Framework に含まれている大量の interface の数に比べれば,そういう計算モデルは沢山は見つからないんじゃないでしょうかね.

    結果として,C# 3.0 では LINQ を通じて List monad の強力さが前面に押し出されることとなっていますが,実際あれは強力ですし特別扱いしちゃってもいいのかもしれませんね.
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 16:49
    Void 型は有効な値を持たないと、自らおっしゃいましたね。
    では、Iterator.next が有効な値を返さないにもかかわらず、hasNext が true を返すとはどういうことでしょうか。
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 17:19
    > Iterator.next が有効な値を返さないにもかかわらず、hasNext が true を返すとはどういうことでしょうか。

    空集合を返せるという意味のtrueと思えばよいのではないでしょうか。
    hasNext()ってメソッド名が悪いのかもしれませんが、「まだ繰り返せる」場合にtrueなわけです。
    まだ空集合を返せる(つまるところvoidで値を返さない)ときにtrueを返しているというのは妥当に思います。
    空集合を返せなくなったら(といってもこれも値を返さないのだけど)falseを返すわけですね。

    > interface< > を導出
    うーむ。自分はどうもこの議論の前提が理解できていないようだ orz
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 17:28
    Voidは空集合ですか?
    nullは空集合ですか?
    # もうちょっと小出しにしてみよう。
  • # re: 型を継承する以上はis-aであるべき
    NyaRuRu
    Posted @ 2008/03/13 17:47
    個人的には集合論が大好きそうなシャノンさんの意見も聞いてみたいかも.

    シャノンさんは関数を考えるときにunit型とvoid型を区別していますか?
    http://d.hatena.ne.jp/sumii/20051210/1134175822
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 18:15
    > Voidは空集合ですか?
    「void」は空集合と思えばいいと思いますね。
    「Void」は空集合のラッパー型ですね。
    正確には空集合を返すには
    return;
    とする必要があります。
    ジェネリクスを用いた際に
    return T;
    となってしまうのは言語仕様の問題でしょうね。
    return;と等価のreturn void;という記述ができればよかったのですが。
    このあたりが、「ジェネリクスでVoidを扱う」で言っていた
    「voidを表す定数がないので、実装ではreturn nullとしなければいけないところが滑稽ではあるのですが。」
    という部分。

    > nullは空集合ですか?
    nullは空集合ではなく無効ポインタですね。
    voidのラッパー型(Void)は有効な値を持たないので、
    Void型の変数は常にnullであるわけです。
    このあたりは言語上のやむを得ない部分と私は妥協せざるを得ないと思っていますね。
    Javaはプリミティブ型の存在する不完全なオブジェクト指向言語ですから、そのほつれの一端とも言えるのではないでしょうか。
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 18:41
    null は空集合ではありません。
    従って、next が例外を投げずに null を返し、hasNext が true を返すことは、「空集合を返せるから true」ではありません。
    Void は有効な値を持たないから null ということは、null は有効な値ではないということです。
    hasNext が true を返すということは、next が有効な値を返すということです。
    しかし next は有効な値でない null を返すのです。
    矛盾です。どうしましょうか。

    問題は、next が null を返してよいか否かということを、Iterator が規定していないことにあるのです。
    Iterator の意味が明確でないのに、Iterator を実装するクラスが is-a であるかどうかなど、どうして判断できましょうか。

    ちなみに、メソッドは集合を返しませんから、return void; は妥当とは思えません。
    それが妥当なら、return int; も妥当であるべきです。
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 18:48
    # IE6 にこのスキンではコピペができないので引用しません。

    俺は好き好んで集合論大好きなわけではありません。集合論しか好むものがないから仕方がないのです。
    群論大好きとか圏論大好きとか言えるものなら言ってみたいですよ。

    unit型というのがある言語を使ったことがないので、意識したことはありません。
    リンク先の内容には大いに疑問がありますけど、書いてあるコードの言語が何なのかさえ知らないので意図が汲めません。
    # Haskell かな?

    型理論的には間違いと言われても、型理論なるものを知らないので納得できません。
    教養がなく、素朴集合論程度しか知らないので、どういう道を歩めば型理論に辿り着けるのかもわからないのです。
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 19:06
    Iteratorのnext()がnullを返すことは別に問題ではありません。
    nullはあらゆる型にキャスト可能ですから、ある型の変数に代入するには至極正当な値です。
    nullは無効ポインタという有効な値です。ですから、その矛盾の前提は成り立ちません。

    > それが妥当なら、return int; も妥当であるべきです。

    この点は私の誤りですね。

    voidというものは存在しないからこそ、その参照は存在しえず、
    voidへの参照を格納するためのVoid型は無効ポインタであるnull値を持つということです。
    voidとvoidへの参照型は別物なんですよ。

    つまり、欠けていたのはIntegerに対するintのように、Voidに対するvoidという型での変数ですね。

    Iterable<void> voidIterable;
    for (void v : voidIterable) {
    // ...
    }

    というのが正しいのか。
    ただし、Javaではプリミティブ型に対するジェネリクスがないため、
    ラッパー型とオートボクシングで対応しているから、こういうややこしい話になるんだな。

    そしてreturn void;というのはvoidがVoidにオートボクシングされる際にどのような値にされるのかという話で。

    return int;がダメなのは"int"はint型の値ではないからで、
    return void;を許すためには"void"を空集合を表すリテラル(booleanに対するtrueなどのような)という存在としなければならない。
    そうなると、void型変数が取りうる値はリテラルvoidのみで、
    void v = void;
    以外を一切受け付けないという型になる。
    そしてBoolean.TRUEのようなVoid.VOIDがないのはなぜか―という話になって、
    数学でいう空集合の集合と同じことを悩むことになる、と。
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 19:19
    nullが有効な値ならば、nullの型は何でしょうか?
    Javaは不完全な言語であるからnullは唯一の型を持たない値であるなどと言うのはやめてくださいな。

    あと、キーワードvoidがvoid型とvoidリテラルの両方を表すのは紛らわしいのでやめていただきたいです。

    で、型は集合、インスタンスは集合の要素であるとすれば、boolean は集合、true は要素で、boolean b = true; は 集合 変数 = 要素; という形を取ります。
    一方、void v = void; は、集合 変数 = 集合; になってますけど。変じゃないですか?
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/13 19:28
    キャスト可能性の根拠を部分集合に求めるならば、あらゆる型にキャスト可能な値の型は、あらゆる型の部分集合でなければなりません。
    そのような集合は空集合ですが、空集合が値 null を持つのは空集合の定義に反しますので、あらゆる型にキャスト可能な値というものは存在しません。

    これを論破するには、「キャスト可能性の根拠を部分集合に求めません」と言えばいいのですが、「じゃあ何?」ってことになるですたい。
  • # re: 型を継承する以上はis-aであるべき
    凪瀬
    Posted @ 2008/03/13 19:59
    > nullが有効な値ならば、nullの型は何でしょうか?
    > Javaは不完全な言語であるからnullは唯一の型を持たない値であるなどと言うのはやめてくださいな。

    nullの実際についてはJavaの言語仕様に定められているのでその引用(言語仕様4版3.4.1)ですが

    「nullオブジェクト参照は特別な場合であり、すべての配列型を含む参照型と代入互換性があります。つまり、どの型の参照変数へもnullを代入できます。」

    nullは参照していない状態を表すことからすれば、空集合と捉えるのが妥当ですね。
    ここは私の考えの修正を迫られるポイントですね。

    voidもnullも空集合ではあるものの、
    nullは変数が参照されていない状態を表現した空集合で、
    voidは型が定義されないという状態を表現した空集合なのですね。

    そうするとやはり、void型の変数というものが定義できてはいけないことになるのか。
  • # re: 型を継承する以上はis-aであるべき
    シャノン
    Posted @ 2008/03/15 9:03
    > nullは参照していない状態を表すことからすれば、空集合と捉えるのが妥当ですね。

    全然妥当じゃないと思いますというか、どうして参照していない状態=空集合なのかわかりません。

    が、まぁいいか。そろそろ面倒臭くなってきました。話が通じないので。
  • # writers resources from paragraph to essay j84trb
    Charlosmox
    Posted @ 2022/09/08 16:33
    You suggested that very well! https://definitionessays.com/ custom writings discount code
  • # writing your dissertation proposal f312sy
    Robertsaids
    Posted @ 2023/02/27 9:20

    Superb facts. Appreciate it!
    write my research proposal https://dissertationwritingtops.com/ online dissertation writing service
  • # analytic thesis y37jjd
    Josephbried
    Posted @ 2023/03/03 7:00

    Kudos, Numerous facts.
    choose the best thesis statement https://writingthesistops.com/ argument thesis statement
  • # best college application essay service e85hoa
    Gregorysaipt
    Posted @ 2023/03/07 10:27
    You actually mentioned this effectively!
    academic essay service https://custompaperwritingservices.com how to write a nonfiction essay https://hireawriterforanessay.com
  • # doctoral dissertation writing d84vix
    Gregorysaipt
    Posted @ 2023/03/09 6:56

    With thanks, An abundance of knowledge!
    how to write an autobiography essay for college https://writinganessaycollegeservice.com how to write a simple essay https://writingthesistops.com
  • # write my thesis p17see
    EugeneSib
    Posted @ 2023/03/09 18:22
    You actually mentioned it very well.
    how to write a memoir essay https://argumentativethesis.com dissertation analysis https://quality-essays.com
  • # online essay writers b417my
    Gregorysaipt
    Posted @ 2023/03/10 4:19

    Good material, With thanks!
    websites that write essays for you https://englishessayhelp.com essay writing service cheap https://dissertationwritingtops.com
  • # what is the meaning of dissertation s71kqh
    Gregorysaipt
    Posted @ 2023/03/11 23:42

    Amazing info. Many thanks.
    technical writing help https://writingpaperforme.com pay people to write essays https://bestmasterthesiswritingservice.com
  • # cover letter writing services e727vz
    EugeneSib
    Posted @ 2023/03/12 5:28

    Nicely voiced indeed. !
    a thesis is____. https://hireawriterforanessay.com report writing services https://writingresearchtermpaperservice.com
  • # custom writer w44lrv
    EugeneSib
    Posted @ 2023/03/12 19:57

    Many thanks, Terrific information!
    how to write dialogue in an essay https://helpmedomyxyzhomework.com compare and contrast college essay https://writingthesistops.com
  • # i need help writing a compare and contrast essay i57tah
    Gregorysaipt
    Posted @ 2023/03/12 21:25
    You revealed this exceptionally well!
    buy essay papers online https://bestpaperwritingservice.com best thesis writing services https://studentessaywriting.com
  • # executive resume writing services y29lje
    EugeneSib
    Posted @ 2023/03/13 10:33

    Cheers, I value this!
    buy custom essays online https://domycollegehomeworkforme.com how to write an essay on poetry https://custompaperwritingservices.com
  • # how to write a good essay about yourself l184hd
    Gregorysaipt
    Posted @ 2023/03/13 19:13

    With thanks! Valuable stuff!
    college application essays https://service-essay.com 100 successful college application essays https://buycheapessaysonline.com
  • # how to write the conclusion of an essay n39zje
    EugeneSib
    Posted @ 2023/03/14 1:21
    You suggested that perfectly.
    how to write a good essay conclusion https://essaywriting4you.com essay writing scholarships https://hireawriterforanessay.com
  • # The plugins developed for WordPress
    Justas
    Posted @ 2023/05/09 23:55
    The plugins developed for WordPress serve to enhance the features and functions of a WordPress website, allowing you to build your awesome and functional site https://t.me/wpigaming/648 Customise WordPress with powerful, professional and intuitive fields.
  • # thesis submitted in rguhs
    Alicemeace
    Posted @ 2024/07/29 7:28
    Jeanette Basa from Torrance was trying to find thesis submitted in rguhs Athene Bresemann located the reply to a search question thesis submitted in rguhs university lost my courseworkmarketing writer and editor proposal dissertationpay someone to write my college essayresume writing servicessomeone to do my homework best resumes writing services 058a830
  • # thesis for argumentative essay yahoo answers
    Alicemeace
    Posted @ 2024/07/29 12:45
    Terry Neidiger from Phoenix was on the hunt for thesis for argumentative essay yahoo answers Augustina Crochet stumbled upon the resolution to a research question thesis for argumentative essay yahoo answers mla thesis statement generatoraktuelle stunde dissertation verteidigungsministersbachelor thesis acknowledgment example community service thesis statementcheap essay writing servicetop dissertation writing servicesessay rewriter need help my art coursework 8a830f7
  • # coursework login qq
    Alicemeace
    Posted @ 2024/07/30 7:37
    Letty Robinsons from Honolulu was seeking coursework login qq Meade Blossom located the reply to a search question coursework login qq coursework columbia edu science telescopeprinceton thesis latex templatemasters thesis on accreditationarchitecture thesis abstract example dissertation help ukessay orderdissertation proofreading servicescoursework help uk thesis on retailing 5854990
  • # list of words to start a thesis statement
    Alicemeace
    Posted @ 2024/07/30 13:46
    Lavinie Guercio from Antioch was searching for list of words to start a thesis statement Coriss Dartez came across the answer to a search query list of words to start a thesis statement comparing thesis examplestentative thesis statementwriting service plans research paperpay for essay papers council for european studies pre-dissertation fellowships c1e778c
  • # levys historical thesis
    Alicemeace
    Posted @ 2024/08/02 14:32
    Atalanta Kretlow from Jackson was on the hunt for levys historical thesis Carleen Rapa came across the answer to a search query levys historical thesis discount code for custom essay meisteruf dissertation search buying papers online collegewriting paper 3 parts of thesis statement 1e778c2
  • # university of guelph writing help
    Alicemeace
    Posted @ 2024/08/07 18:38
    Katherina Watte from Bel Air was in search of university of guelph writing help Lyda Kressler located the reply to a search question university of guelph writing help list of anthropology master thesislist of topics for thesis in economicshelp finding dissertation topic custom writingessay helper freeessay rewriterpay to do my homework how to finish a dissertation cc02dba
  • # the right to fail william zinsser thesis
    Alicemeace
    Posted @ 2024/08/08 4:14
    Moira Morss from High Point was seeking the right to fail william zinsser thesis Julita Botterbusch stumbled upon the resolution to a research question the right to fail william zinsser thesis help with thesis statisticsle diable au corps dissertation essay writing servicepaper writing definition for dissertation 8549905
  • # the help book essay topics
    Alicemeace
    Posted @ 2024/08/08 13:45
    Vina Melle from Costa Mesa was searching for the help book essay topics Bernette Manoni came across the answer to a search query the help book essay topics writing dedication page thesisbuy a paper for school subjectwrite my paper legitimatephd thesis in agriculture extension dissertation servicescoursework writing servicemake an essay for meargumentative essay past dissertations on education 58a830f
  • # nclb quantitative research unpublished thesis
    Alicemeace
    Posted @ 2024/08/08 21:12
    Giulietta Harpel from Santa Clara was searching for nclb quantitative research unpublished thesis Perl Eade located the reply to a search question nclb quantitative research unpublished thesis writing help wanted adsmaths gcse statistics coursework help writing servicewriting paperprofessional resume writing servicewriting paper admission essay writing service king san antonio 2dba7_f
  • # motivation in phd thesis
    Alicemeace
    Posted @ 2024/08/09 11:25
    Candice Kirkpatric from Normal was on the hunt for motivation in phd thesis Rosaleen Melser uncovered the response to an inquiry motivation in phd thesis change management master thesiselements of dissertation chapter 1dissertationmaster of educationthesis college dropouts help writing essaysessay writing servicepay for an essay the thesis is c1e778c
  • # can someone write my assignment for me
    Alicemeace
    Posted @ 2024/08/09 15:02
    Laure Sak from Richland was trying to find can someone write my assignment for me Maris Scafuri came across the answer to a search query can someone write my assignment for me format of dissertation reportperformance analysis dissertationhamlets love for ophelia thesis courseworkhow to write a reaction paperthesis editing services college admissions essay help group 8549905
  • # thesis for technologies essay
    Alicemeace
    Posted @ 2024/08/10 0:13
    Luelle Belone from Ocala was seeking thesis for technologies essay Yasmeen Defosse located the reply to a search question thesis for technologies essay dissertation topics in industrial/organizational psychologyideas for gcse english media courseworkwriting a critique of a dissertationproquest thesis binding essay writingspapers writing serviceeditor for dissertationcpm homework help essay writers 10 per page essay writers 10 per page 8c25854
  • # examples of a thesis statement for a essay
    Alicemeace
    Posted @ 2024/08/10 7:35
    Wenonah Cremeens from Lake Charles was seeking examples of a thesis statement for a essay Nananne Luckner located the reply to a search question examples of a thesis statement for a essay argumentative writing thesis statementsdsu thesis committee formucla graduate dissertation fellowship write my paperbest essay writing services annotated bibliography essay writer 9cc02db
  • # good readers and good writers thesis
    Alicemeace
    Posted @ 2024/08/10 9:44
    Maria Guyette from Houma was in search of good readers and good writers thesis Nixie Contrenas came across the answer to a search query good readers and good writers thesis topics for history thesiswhat are thesis statements write my paperwriting paper essay service eurip 2585499
  • # banking and finance dissertations
    Alicemeace
    Posted @ 2024/08/10 18:51
    Cara Zell from Mesquite was on the hunt for banking and finance dissertations Dyna Juve discovered the solution to a search question banking and finance dissertations thesis about inventory systemthesis in law schoolexample of thesis statement for critical analysis pay for essay papercheap dissertation writingthesis yorku dissertation proposal 02dba3_
  • # project and thesis
    Alicemeace
    Posted @ 2024/08/11 4:55
    Glynnis Flaxman from Leominster was on the hunt for project and thesis Brigitta Polvino came across the answer to a search query project and thesis critical essay thesisadmission essay service dog tagsamcas entering coursework essay botmy homeworkbuy college paper onlinewrite my paper how to start a dissertation proposal 7_0b689
  • # oxbridge essays writers
    Alicemeace
    Posted @ 2024/08/12 0:00
    Shana Kloss from Boise was on the hunt for oxbridge essays writers Carly Broadstone discovered the solution to a search question oxbridge essays writers thesis on solar energy pdfdescriptive topics for courseworkthesis uthm 2012immigration thesis examples custom writingsessay rewriterwrite my paper temple university doctoral dissertation completion grant 058a830
  • # professional writing service north carolina
    Alicemeace
    Posted @ 2024/08/12 0:09
    Madelle Sturino from Panama City was seeking professional writing service north carolina Jada Winarski discovered the solution to a search question professional writing service north carolina is it possible to write a dissertation in 2 weekssupply chain master thesis topicsbjoern hartmann dissertation essays writercpm homework helpdo my french homework for me freewrite paper child abuse identification and reporting coursework online e778c25
  • # buy essay college herman melville by melville stories
    Alicemeace
    Posted @ 2024/08/12 19:27
    Candy Mcelligott from Grayslake was on the hunt for buy essay college herman melville by melville stories Anatola Burlett came across the answer to a search query buy essay college herman melville by melville stories intuit statement writer troubleshootingwhat is the difference between proposal and dissertationcustom paper to go bags uk dissertation helppay for an essaywriting websites embedded systems thesis report 5854990
  • # qualitative dissertation proposal examples
    Alicemeace
    Posted @ 2024/08/13 23:05
    Dallas Amauty from Hayward was in search of qualitative dissertation proposal examples Sella Elgert located the reply to a search question qualitative dissertation proposal examples fine motor activities to help with handwritingboeing case study dissertationduke program ii thesisphd thesis commerce topics coursework infowrite my papercollege essaysessay writing helper laboratory management dataflow thesis 5499058
  • # thesis statement on freedom writers
    Alicemeace
    Posted @ 2024/08/14 4:21
    Deloria Boger from Bryan was searching for thesis statement on freedom writers Prue Debenham came across the answer to a search query thesis statement on freedom writers dissertation wurde abgelehntdo compare and contrast essays have a thesiswriting a thesis statement for a comparison essay do my homework for moneytentative thesis statement master dissertation in computer science 39cc02d
  • # dissertation chapter 3 methodology
    Alicemeace
    Posted @ 2024/08/14 13:53
    Caresse Schirpke from Lancaster was in search of dissertation chapter 3 methodology Adria Sidell discovered the solution to a search question dissertation chapter 3 methodology a level math courseworkthesis statements examples for high schoolbest professional resume writing services canberra buy an essay onlinecoursework marketing dissertation ideas advertising 30f739c
  • # admission essay writing service solutions
    Alicemeace
    Posted @ 2024/08/16 13:03
    Britt Brumback from Colorado Springs was in search of admission essay writing service solutions Kriste Dahline came across the answer to a search query admission essay writing service solutions college admissions essay help kidscornell university thesis advisorchoosing thesis topic essays orderbuy an essay onlinewrite papers ocr english literature a level coursework mark scheme c1e778c
  • # critical essay thesis examples
    Alicemeace
    Posted @ 2024/08/16 21:59
    Josi Ananias from Springdale was seeking critical essay thesis examples Gabriela Winzelberg stumbled upon the resolution to a research question critical essay thesis examples places to buy research paperswriting msc thesis proposalcompendium writing service canadalaw dissertation hypothesis help me do my homeworkcustom paper doing research for dissertation cc02dba
  • # anu physics honours thesis
    Alicemeace
    Posted @ 2024/08/17 11:41
    Ivett Reisdorf from Fort Worth was trying to find anu physics honours thesis Anastasia Hintz discovered the solution to a search question anu physics honours thesis thesis statement on racism and discriminationcustom paper gift cardsfinal year dissertation computing project ideas pay for an essaycheap paper writers what why how essay writing helper 2dba6_3
  • # queen mary thesis
    Alicemeace
    Posted @ 2024/08/17 20:28
    Masha Hedin from Honolulu was searching for queen mary thesis Jobina Starritt stumbled upon the resolution to a research question queen mary thesis language learning strategies thesisenglish creative writing gcse courseworksample masters thesis apa formatdid women have a renaissance thesis buy essay online cheapprofessional resume writing service writing a justification for a dissertation 99058a8
  • # write dissertation index
    Alicemeace
    Posted @ 2024/08/18 5:39
    Joell Grebs from Scottsdale was searching for write dissertation index Dorri Mennen came across the answer to a search query write dissertation index thesis statement macbeth appearance vs realityresume writing services miami fldissertation training developmentgood comparison contrast essay thesis help with writing an essaybuy essays onlinemake an essay for me collection assessment thesis collections a3_5be9
  • # masters dissertation ethics
    Alicemeace
    Posted @ 2024/08/18 23:26
    Annabel Dellaratta from Atlantic City was in search of masters dissertation ethics Analise Homen located the reply to a search question masters dissertation ethics phd thesis writershelp in writing my thesisaqa statistics coursework grade boundaries paper writingwrite my papers thesis statement objective essay 8549905
  • # frederick douglass essay thesis
    Alicemeace
    Posted @ 2024/08/20 2:32
    Ameline Bilansky from Odessa was seeking frederick douglass essay thesis Adara Routzahn located the reply to a search question frederick douglass essay thesis blithedale romance thesiswriting custom linq providerdissertation speech abr pay to write essaycustom writingwrite my essay paperessays writing service apa annotated bibliography examples thesis statement a7_04d8
  • # writing a non profit business plan writing service
    Alicemeace
    Posted @ 2024/08/20 12:04
    Jacklin Troglen from Charlotte was on the hunt for writing a non profit business plan writing service Harrietta Salasar located the reply to a search question writing a non profit business plan writing service what are the sections of a dissertationthesis and conclusionbest place to buy essays essays writing serviceessayphd dissertationbuy cheap essay dissertation topics in plant biotechnology 99058a8
  • # search dissertations online z48yeq
    NathinSat
    Posted @ 2024/11/08 1:00
    You reported this effectively cheap essays writing service essay writing on nursing professional essay writing service how to write compare and contrast essay write a paper for me essay writing help
  • # writing an essay for scholarship i33ydp
    NathinSat
    Posted @ 2024/11/08 7:30
    Thanks. I appreciate it college essay assignment pay someone to write my paper cheap how to write a good transfer essay creative college essay prompts dissertation writing services illegal how to write essays in college
  • # fit college essay g57uix
    NathinSat
    Posted @ 2024/11/09 5:44
    With thanks Useful stuff. uk dissertation online proofread reasons for going to college essay fsu college application essay personal statement for scholarship dissertation assistance service
  • # how to write an mba essay v904tv
    NathinSat
    Posted @ 2024/11/09 11:06
    You actually reported that very well essay writing for high school students order essay writing company essay writing styles movie review sample essay how to write an essay about a quote
  • # essay about community service l585iw
    NathinSat
    Posted @ 2024/11/09 21:48
    Regards I appreciate it. thesis and dissertation writing do my research paper for me what is dissertation research thesis page order an essay how to write the best college essay
  • # buy pre written essays i321ow
    NathinSat
    Posted @ 2024/11/10 9:44
    Amazing advice. With thanks how to write an academic essay paper proposal meaning of theses writers needed coursework on a resume how to write a law essay
  • # ghostwriters for hire u14wrb
    NathinSat
    Posted @ 2024/11/10 23:32
    You actually mentioned it superbly methodology dissertation what types of essays are there college essay writing prompts help for essay writing report creator how to write an essay for college
  • # find a ghostwriter f734yw
    NathinSat
    Posted @ 2024/11/11 7:54
    Superb write ups. Kudos. write an essay about your life experience write and essay for me thesis writing executive resume writing services nyc case study assignment how to write a similarities and differences essay
  • # ghostwriter needed k80xap
    NathinSat
    Posted @ 2024/11/11 14:36
    You stated it wonderfully write my essay custom writing best rated resume writing services essay customer service how to write argumentative essays write an annotated bibliography dissertation for phd
  • # writing a conclusion for an essay t43phg
    NathinSat
    Posted @ 2024/11/11 21:26
    Thanks a lot Quite a lot of advice. hire a ghostwriter online proofreading service writing a descriptive essay about a person how to write a better essay essay writing on nursing cheapest essays writing services
  • # essay writing prompts for high school f60gue
    NathinSat
    Posted @ 2024/11/12 4:35
    Truly plenty of valuable information writing research proposal dissertation writing guide writing prompts for college essays how to write a good history essay how to proofread an essay press release writing services
  • # how to write a research essay e72oiq
    NathinSat
    Posted @ 2024/11/13 7:52
    Reliable forum posts. Regards postgraduate dissertation harvard mba essay paying college athletes essay great essay writers dissertation writing services essay introduction help
  • # buy dissertations n400ut
    NathinSat
    Posted @ 2024/11/13 20:57
    Truly tons of excellent knowledge. executive resume writing services nyc write my essays write my essays personal statement essay help coursework writing services writing essays
  • # good quotes for college essays g15eaf
    NathinSat
    Posted @ 2024/11/14 4:09
    You actually stated this really well writing a phd dissertation college essay review free define dissertion dissertation fellowships education scientific literature review leadership college essay
  • # how to writing an essay o338gc
    NathinSat
    Posted @ 2024/11/15 7:43
    Kudos I enjoy this. cheapest custom essay writing literature review business dissertation topics successful college essay college essay proofreader dissertation for masters degree
  • # how to write a concluding paragraph for an essay j13huq
    NathinSat
    Posted @ 2024/11/16 9:59
    Truly many of amazing facts writing a scholarship essay paraphrasing in mla essay help online write essays online essay writing contest custom essay meister review
  • # how to write an essay about your goals x606rp
    NathinSat
    Posted @ 2024/11/16 16:10
    Very good advice. Thanks a lot online letter writing help literature review writer college essays on diversity professional writing help pay to write a paper how to write persuasive essay
  • #  Welcome to our store
    Sandrarhima
    Posted @ 2025/02/22 17:53
    We specialize in in manufacturing and supply of high-quality gabions which are ideal for various landscaping projects. More detailed information on the links габионы купить в спб Our gabions are manufactured are made of durable galvanized steel and have a durable coating which ensures their high resistance to corrosion and environmental influences.
タイトル
名前
Url
コメント