MachiKania BASICのオブジェクト指向化について
2019年3月25日
MachiKania ver 1.2以降では、BASICでのコーディングに於いて、オブジェクト指向プログラミングが行えるようになった。ここでは、その実装方法について、メモを残しておきたい。
MachiKania BASICでは、クラスベースのオブジェクト指向プログラミングを採用している。その文法などについては、ダウンロードファイルの「class.txt」ファイルを参照して頂きたい。
MachiKania BASICにおけるオブジェクト指向プログラミングには、次の特徴がある。
1)オブジェクトは、フィールド(public もしくは private)とメソッド(public のみ)を持つ。
2)クラスの記述は別ファイルに於いて行ない、1ファイルに1クラスの記述とする。
3)複数のクラスを利用出来る。また、クラス中で別のクラスを利用出来る。
4)クラスの継承は、未実装。
5)フィールド名とメソッド名には、2文字以上6文字以内の英数字が指定出来る。
これらの特徴は、クラスライブラリーを供給してそれを使用可能にしようという目的ゆえんである。
Wikipediaによると、クラスベースのオブジェクト指向プログラミング言語には、一般的に以下の特徴があるらしい。
1)カプセル化
2)継承
3)多様性
MachiKania BASICでどの様に対応出来ているか、それぞれ順を追って検討してみたい。
カプセル化
「カプセル化」は、MachiKania BASICで厳密に実装されている。それぞれのクラスはメインプログラムとは別のファイル上に書かれる。ここで、長い名前の変数とサブルーチン用のラベルは、完全に内部隠蔽されている(これはclass.c内のdelete_cmpdata_for_class()の働きと、linker.cによるリンクが当該ファイル内でのみ成される事による)。また、フィールド及びメソッドの両方に於いて、パブリック・プライベートの区別が出来るように実装した(プライベートメソッドは、LABEL/GOSUBを用いて表現出来る)。
従来のバージョンのMachiKania BASICを大きく変更することなく、このカプセル化を実装した。まず、コンパイルとリンクは、ソースファイルごとに行なうようにした(file.cを参照)。これにより、ラベルの内部隠蔽が可能となった。次に、クラスファイル内におけるフィールド値へのアクセスは、長い名前の変数を介して行なうようにした。長い変数名のデーターを、クラスファイルのコンパイル後に破棄することにより、内部隠蔽が可能となった。スタティックフィールドの扱いは、この仕様のままで実装出来る。スタティックではないフィールドについては、オブジェクトごとにその値が設定されている。そこで、クラス内のメソッドを呼び指す際、まずオブジェクトのフィールド値を長い名前の変数に代入し(class.c内、lib_pre_method()を参照)、メソッドの実行を終えてメインプログラムに戻る際に、長い名前の変数値をオブジェクトのフィールドに戻すようにした(class.c内、lib_post_method()を参照)。この様な仕様にしたため、新たに追加した機能(METHODステートメントなど)でのみオブジェクト指向化を意識すれば良く、従来の実行エンジンがそのまま利用出来る形となった。
継承
初期のバージョンでは、まだ継承機能は実装されていない。MachiKaniaで作成可能なプログラムの規模で継承機能が有用になるケースが考えにくかったからである。また、VBScriptなど、オブジェクト指向でも継承機能が実装されていないプログラミング言語は、他にもある。将来的に、継承機能も実装されるようになる可能性はあり、どの様に実装するかについてのアルゴリズムは検討が始まっている。
多様性
多重定義(オーバーロード)は、実装されていない。これは、MachiKaniaにおける型の定義がそれほど厳密でないことに依る。ただし、メソッドに引き渡される引数をARGS(0)で調べることが出来るようになったため、引数の数によって異なる実行内容を選択することは可能になった。将来的には、引数が整数型か文字列型か実数型かを判断して多重定義するような実装が可能になる可能性が無くはないが、積極的には考えていない。
ポリモーフィズムに付いては、それぞれの変数が様々なクラスのオブジェクトとなりうる様な形で、実装しているとも言える(あまり、意識はしていない)。例えば、「A.METHOD1()」と記述した際、変数AがCLASS1クラスのオブジェクトの場合はCLASS1クラスのMETHOD1()が、CLASS2クラスのオブジェクトの場合はCLASS2クラスのMETHOD1()が呼び出される。これは、メソッド呼び出しの解決が実行時になされるからである(class.c内のlib_pre_method()関数による)。
クラスベース
MachiKania BASICは、クラスベースのオブジェクト指向言語である。Wikipediaでは、「多くのオブジェクト指向プログラミング言語ではクラスをデータメンバとメソッドの集まりとして記述する」とされている。MachiKaniaでは、データメンバを「フィールド」と呼んでいるが、やはり、フィールドとメソッドの集まりとしてクラスを記述する仕様である。フィールド・メソッド共にアクセス権の設定が、パブリックもしくはプライベートとして設定可能である。各オブジェクトは、パブリックフィールドに加えてプライベートフィールドの値も保持している。また、フィールド・メソッド共に、スタティックな物(クラスフィールド・クラスメソッド)とそうでない物(インスタンスフィールド・インスタンスメソッド)が区別出来る様にした。
MachiKania BASICの特徴とプログラミング時の注意点
MachiKania BASICは以上のように、必要最小限と思われるオブジェクト指向プログラミングの特徴を備えた、プログラミング言語である。その実装の方法としては、上で述べた、メソッド実行前にフィールド値が変数へ代入され、実行後に変数値がフィールドへ戻される点が、大きな特徴といえる。この動作を行なうのに一定の時間が必要であるので、速度が要求されるようなプログラムでは、少し注意が必要である。ただし、コンパイラーなので、ここで「一定の時間が必要である」と言っても、ほとんどのケースでは無視出来るような短い時間だと思われる。
フィールドの数は、少なければ少ないほど、オブジェクトのサイズも小さくなるし、実行速度も上がる。従って、必須ではないプライベートフィールドは避けるべきである。もし、スタティック変数で良ければ「STATIC PRIVATE」とする。
メソッド呼び出しは、オブジェクトのメソッドを呼び出すよりもスタティックメソッドを呼び出す方が、圧倒的に速い。従って、オブジェクトが一つだけの設計(シングルトン)の場合は、オブジェクトを作製するのではなく、スタティックフィールドとスタティックメソッドによる実装にしたほうが良い。ただし、これは速度のみを考えてのことなので、余り速度を意識しなくても良いようなケースでは、シングルトンの実装の方がコードがすっきりする様なケースはあり得る。
ローカル変数について。これは、クラスメソッドに限った話ではなく、普通のサブルーチンをGOSUBで呼び出した際にも言えることであるが、「VAR」ステートメントを用いてローカル変数を利用する場合、「VAR」ステートメントの実行にある一定の時間がかかる。従って、速度を重視するクラスの場合、「VAR」は使用せず、変わりにスタティックフィールドを用いた方が良い。
MachiKania BASICでは、クラスベースのオブジェクト指向プログラミングを採用している。その文法などについては、ダウンロードファイルの「class.txt」ファイルを参照して頂きたい。
MachiKania BASICにおけるオブジェクト指向プログラミングには、次の特徴がある。
1)オブジェクトは、フィールド(public もしくは private)とメソッド(public のみ)を持つ。
2)クラスの記述は別ファイルに於いて行ない、1ファイルに1クラスの記述とする。
3)複数のクラスを利用出来る。また、クラス中で別のクラスを利用出来る。
4)クラスの継承は、未実装。
5)フィールド名とメソッド名には、2文字以上6文字以内の英数字が指定出来る。
これらの特徴は、クラスライブラリーを供給してそれを使用可能にしようという目的ゆえんである。
Wikipediaによると、クラスベースのオブジェクト指向プログラミング言語には、一般的に以下の特徴があるらしい。
1)カプセル化
2)継承
3)多様性
MachiKania BASICでどの様に対応出来ているか、それぞれ順を追って検討してみたい。
カプセル化
「カプセル化」は、MachiKania BASICで厳密に実装されている。それぞれのクラスはメインプログラムとは別のファイル上に書かれる。ここで、長い名前の変数とサブルーチン用のラベルは、完全に内部隠蔽されている(これはclass.c内のdelete_cmpdata_for_class()の働きと、linker.cによるリンクが当該ファイル内でのみ成される事による)。また、フィールド及びメソッドの両方に於いて、パブリック・プライベートの区別が出来るように実装した(プライベートメソッドは、LABEL/GOSUBを用いて表現出来る)。
従来のバージョンのMachiKania BASICを大きく変更することなく、このカプセル化を実装した。まず、コンパイルとリンクは、ソースファイルごとに行なうようにした(file.cを参照)。これにより、ラベルの内部隠蔽が可能となった。次に、クラスファイル内におけるフィールド値へのアクセスは、長い名前の変数を介して行なうようにした。長い変数名のデーターを、クラスファイルのコンパイル後に破棄することにより、内部隠蔽が可能となった。スタティックフィールドの扱いは、この仕様のままで実装出来る。スタティックではないフィールドについては、オブジェクトごとにその値が設定されている。そこで、クラス内のメソッドを呼び指す際、まずオブジェクトのフィールド値を長い名前の変数に代入し(class.c内、lib_pre_method()を参照)、メソッドの実行を終えてメインプログラムに戻る際に、長い名前の変数値をオブジェクトのフィールドに戻すようにした(class.c内、lib_post_method()を参照)。この様な仕様にしたため、新たに追加した機能(METHODステートメントなど)でのみオブジェクト指向化を意識すれば良く、従来の実行エンジンがそのまま利用出来る形となった。
継承
初期のバージョンでは、まだ継承機能は実装されていない。MachiKaniaで作成可能なプログラムの規模で継承機能が有用になるケースが考えにくかったからである。また、VBScriptなど、オブジェクト指向でも継承機能が実装されていないプログラミング言語は、他にもある。将来的に、継承機能も実装されるようになる可能性はあり、どの様に実装するかについてのアルゴリズムは検討が始まっている。
多様性
多重定義(オーバーロード)は、実装されていない。これは、MachiKaniaにおける型の定義がそれほど厳密でないことに依る。ただし、メソッドに引き渡される引数をARGS(0)で調べることが出来るようになったため、引数の数によって異なる実行内容を選択することは可能になった。将来的には、引数が整数型か文字列型か実数型かを判断して多重定義するような実装が可能になる可能性が無くはないが、積極的には考えていない。
ポリモーフィズムに付いては、それぞれの変数が様々なクラスのオブジェクトとなりうる様な形で、実装しているとも言える(あまり、意識はしていない)。例えば、「A.METHOD1()」と記述した際、変数AがCLASS1クラスのオブジェクトの場合はCLASS1クラスのMETHOD1()が、CLASS2クラスのオブジェクトの場合はCLASS2クラスのMETHOD1()が呼び出される。これは、メソッド呼び出しの解決が実行時になされるからである(class.c内のlib_pre_method()関数による)。
クラスベース
MachiKania BASICは、クラスベースのオブジェクト指向言語である。Wikipediaでは、「多くのオブジェクト指向プログラミング言語ではクラスをデータメンバとメソッドの集まりとして記述する」とされている。MachiKaniaでは、データメンバを「フィールド」と呼んでいるが、やはり、フィールドとメソッドの集まりとしてクラスを記述する仕様である。フィールド・メソッド共にアクセス権の設定が、パブリックもしくはプライベートとして設定可能である。各オブジェクトは、パブリックフィールドに加えてプライベートフィールドの値も保持している。また、フィールド・メソッド共に、スタティックな物(クラスフィールド・クラスメソッド)とそうでない物(インスタンスフィールド・インスタンスメソッド)が区別出来る様にした。
MachiKania BASICの特徴とプログラミング時の注意点
MachiKania BASICは以上のように、必要最小限と思われるオブジェクト指向プログラミングの特徴を備えた、プログラミング言語である。その実装の方法としては、上で述べた、メソッド実行前にフィールド値が変数へ代入され、実行後に変数値がフィールドへ戻される点が、大きな特徴といえる。この動作を行なうのに一定の時間が必要であるので、速度が要求されるようなプログラムでは、少し注意が必要である。ただし、コンパイラーなので、ここで「一定の時間が必要である」と言っても、ほとんどのケースでは無視出来るような短い時間だと思われる。
フィールドの数は、少なければ少ないほど、オブジェクトのサイズも小さくなるし、実行速度も上がる。従って、必須ではないプライベートフィールドは避けるべきである。もし、スタティック変数で良ければ「STATIC PRIVATE」とする。
メソッド呼び出しは、オブジェクトのメソッドを呼び出すよりもスタティックメソッドを呼び出す方が、圧倒的に速い。従って、オブジェクトが一つだけの設計(シングルトン)の場合は、オブジェクトを作製するのではなく、スタティックフィールドとスタティックメソッドによる実装にしたほうが良い。ただし、これは速度のみを考えてのことなので、余り速度を意識しなくても良いようなケースでは、シングルトンの実装の方がコードがすっきりする様なケースはあり得る。
ローカル変数について。これは、クラスメソッドに限った話ではなく、普通のサブルーチンをGOSUBで呼び出した際にも言えることであるが、「VAR」ステートメントを用いてローカル変数を利用する場合、「VAR」ステートメントの実行にある一定の時間がかかる。従って、速度を重視するクラスの場合、「VAR」は使用せず、変わりにスタティックフィールドを用いた方が良い。
コメント
supreme shirt (2018年10月15日 08:51:45)
http://www.skecherss.us.com/ skechers outlet
http://www.pandoras-uk.co.uk/ pandora jewelry
http://www.nikelebron15.us.com/ lebron 15
http://www.kevin-durant-shoes.us.com/ kd 10
http://www.pandora-jewelrybracelet.us.com/ pandora jewelry
http://www.jordan11spacejams.us.com/ jordan 11
http://www.adidasnmds.co.uk/ adidas originals nmd
http://www.adidas-yeezyboost350.us.com/ adidas yeezy
http://www.yeezyboost350--v2.us.com/ yeezy boost 350
http://www.airmax95.co.uk/ air max 95
http://www.nikeairmax97.co.uk/ nike air max 97
http://www.pumarihannafenty.us.com/ rihanna puma shoes
http://www.adidas--shoes.co.uk/ adidas outlet
http://www.pandora--rings.us.com/ Pandora
http://www.jordans11shoes.us.com/ jordan 11 retro
http://www.nikeairvapormaxflyknit.us.com/ nike air max 90
http://www.adidasoriginalsnmd.us.com/ adidas nmd r1
http://www.swarovskisjewelry.us.com/ swarovski jewelry
http://www.ralphlaurenspoloshirts.us.com/ ralph lauren outlet
http://www.monclerjacketmens.us.com/ moncler jacket womens
http://www.christianlouboutinredbottoms.us.com/ christian louboutin
http://www.airmax90shoes.us.com/ nike air max
http://www.uggs--boots.us.com/ ugg
http://www.redbottoms-louboutin.us.com/ christian louboutin
http://www.nikeairmax270.org.uk/ air max 270
http://www.salomonspeedcross3.us.com/ salomon shoes
http://www.mulberry-handbags.us.com/ mulberry bag
http://www.pandora-jewelrysale.us.com/ pandora bracelet
http://www.michael-kors-bags.us.com/ michael kors purse
http://www.kyrie-4.us.com/ kyire 4
http://www.lebron15-shoes.us.com/ lebron 14
http://www.adidas-superstarshoes.us.com/ adidas originals superstar
http://www.eccoshoesoutlets.us.com/ ecco boots
http://www.air-max-90.us.com/ air max
http://www.skechers--shoes.us.com/ skechers boots
http://www.pandorasjewelry.co.uk/ pandora
http://www.true--religion.us.com/ true religion sale
http://www.prada--handbags.us.com/ prada
http://www.oakley--glasses.us.com/ oakley prescription sunglasses
http://www.adidasyeezy-350.us.com/ adidas yeezy
http://www.swarovskis.us.com/ swarovski rings
http://www.airjordan11spacejam.us.com/ jordan 11
http://www.birkenstock--sandals.us.com/ birkenstock
http://www.moncler-coat.us.com/ moncler jacket
http://www.louboutinredbottoms.us.com/ red bottoms
http://www.cartier-bracelet.us.com/ cartier
http://www.nikeairmax-97.us.com/ nike air max 97
http://www.fitflop--shoes.us.com/ fitflops clearance
http://www.barbourjackets.co.uk/ barbour
http://www.monclerjacket.org.uk/ moncler jacket
http://www.pandorajewelryscharms.us.com/ pandora jewelry official site
http://www.supremeshirt.us.com/ supreme shoes
http://www.adidasnmdrunnerr1.us.com/ adidas nmd r1
http://www.barbours.org.uk/ barbour coats
http://www.salomon--shoes.us.com/ Salomon
http://www.nikeair-max90.co.uk/ air max 90
http://www.jordan--11.us.com/ jordan
http://www.ralphlauren--polo.us.com/ ralph lauren
http://www.katespade--outlet.us.com/ kate spade handbags
http://www.northface-jacket.us.com/ womens north face jacket
http://www.skechersuk.co.uk/ skechers outlet
http://www.fitflop--sandals.us.com/ fitflop shoes
http://www.rayban--glasses.us.com/ ray ban wayfarer
http://www.katespadepurses.us.com/ kate spade purses
http://www.nikeairmax-95.us.com/ nike air max 95
http://www.polo-ralph-lauren.org.uk/ polo ralph lauren
http://www.rayban-glasses.us.com/ ray ban eyeglasses
http://www.adidas-ultraboost.us.com/ adidas ultra boost
http://www.yeezyboost350v2.co.uk/ yeezy boost 350 v2
http://www.truereligion--jeans.us.com/ true religion hoodie
http://www.nike-airmax-2018.us.com/ air max 90
http://www.airmax-2018.us.com/ nike air max
http://www.stephen-curry-shoes.us.com/ stephen curry shoes
http://www.uggsformen.us.com/ ugg,ugg slippers
http://www.yeezyboost350shoes.us.com/ yeezy
http://www.mcm--bags.us.com/ mcm handbags
http://www.asicss.us.com/ asics shoes
http://www.air-max-95.us.com/ air max 95 black
http://www.ultra--boost.us.com/ adidas originals ultra boost
http://www.air-max-97.us.com/ air max 97
http://www.celines.us.com/ celine,celine bag
http://www.coachbags-outlet.us.com/ coach
http://www.chrome--hearts.us.com/ chrome hearts ring
http://www.burberrys.org.uk/ burberry scarf
http://www.goyardbag.us.com/ goyard tote
http://www.balenciagas-sneakers.us.com/ balenciaga bags
http://www.adidas-yeezy-shoes.us.com/ Yeezy Boost 350
http://www.ray--ban.us.com/ ray ban
http://www.jordan11.co.uk/ jordan retro 11
http://www.hermesbirkin-handbags.us.com/ Hermes Wallets
http://www.coach--bags.us.com/ coach outlet
http://www.mulberrys.org.uk/ mulberry
http://www.chromehearts-jewelry.us.com/ chrome hearts clothing
http://www.fitflopsshoes.us.com/ fitflop sandals
http://www.pandoraearrings.us.com/ pandora
http://www.hermes--belt.us.com/ hermes belt
http://www.airmax270.co.uk/ nike air max
http://www.pandora--jewelrys.us.com/ pandora jewelry
http://www.burberry-bags.us.com/ burberry
http://www.goyardbackpack.us.com/ goyard bag
http://www.kyrie-irving-shoes.us.com/ kyrie 4
http://www.lacosteshirts.us.com/ lacoste polo shirts
http://www.pandora-charmsjewelry.us.com/ pandora
http://www.ray--bansunglassess.us.com/ ray ban glasses
http://www.polo-ralphlauren-outlet.us.com/ polo ralph lauren
http://www.pandorajewelryrings.us.com/ pandora earrings
http://www.nike-huaraches.us.com/ huarache shoes
http://www.nike-airmax270.us.com/ nike air max 270
http://www.valentino--shoes.us.com/ valentino sneakers
http://www.kd10-shoes.us.com/ kevin durant shoes
http://www.under-armour-shoes.us.com/ under armour shirts
http://www.pandoras-jewelrys.us.com/ pandora
http://www.chromeheartsjewelrys.us.com/ chrome hearts bracelet
http://www.mbts.us.com/ mbt womens shoes
http://www.michaelkors-handbagss.us.com/ michael kors purse
http://www.vapormaxs.us.com/ air vapormax
http://www.nikeairmax-90.us.com/ nike air vapormax
http://www.huaraches.us.com/ huarache shoes
http://www.air-max-270.us.com/ nike air max 270 women
http://www.mcms.us.com/ mcm backpack
http://www.pandorauk.us.com/ pandora uk
http://www.jimmychooheels.us.com/ jimmy choo shoes
http://www.salomon-boots.us.com/ salomon xa pro 3d
http://www.asics--shoes.us.com/ asics running shoes
http://www.jordanretro11-shoes.us.com/ jordan retro 11
http://www.new--balance.us.com/ new balance golf shoes
http://www.james-hardenshoes.us.com/ james harden
http://www.moncler--jacket.us.com/ moncler coat
http://www.supreme--clothing.us.com/ supreme shoes
http://www.adidasoriginalsultraboost.us.com/ adidas ultra boost uncaged
http://www.katespadebags.us.com/ kate spade wallet
http://www.longchampbag.us.com/ longchamp le pliage
http://www.oakley--sunglassess.us.com/ cheap oakley sunglasses
http://www.balenciaga--shoes.us.com/ balenciaga shoes
http://www.salomonshoes.co.uk/ salomon xa pro 3d
http://www.uggs-forwomen.us.com/ ugg boots
http://www.prada--bags.us.com/ prada bags
http://www.montblancs.us.com/ mont blanc sale
http://www.bvlgaris.us.com/ bvlgari ring
http://www.curry4-shoes.us.com/ under armour stephen curry
http://www.salvatore-ferragamo.us.com/ ferragamo
http://www.monclerjacketwomens.us.com/ moncler coat
http://www.fitflops-sale.us.com/ fitflop shoes
http://www.burberry--scarf.us.com/ burberry scarf
http://www.adidasnmd-womens.us.com/ adidas nmd
http://www.redbottom--shoes.us.com/ louboutin
http://www.longchampbackpack.us.com/ longchamp handbag
http://www.adidasyeezys.org.uk/ yeezy boost 350
http://www.nikekdshoes.us.com/ kd 9
http://www.nike--shoes.co.uk/ nike air max 270
http://www.nike--vapormax.us.com/ vapormax
http://www.ed-hardys.us.com/ ed hardy clothing
http://www.birkenstocksandalssale.us.com/ birkenstock
http://www.nikeair-max.co.uk/ nike air max 97
http://www.ferragamoshoess.us.com/ ferragamo
http://www.ugg--slippers.us.com/ uggs on sale
http://www.northfacejacketoutlets.us.com/ north face
http://www.monclers.uk/ moncler sale
もできなく
http://www.pandoras-uk.co.uk/ pandora jewelry
http://www.nikelebron15.us.com/ lebron 15
http://www.kevin-durant-shoes.us.com/ kd 10
http://www.pandora-jewelrybracelet.us.com/ pandora jewelry
http://www.jordan11spacejams.us.com/ jordan 11
http://www.adidasnmds.co.uk/ adidas originals nmd
http://www.adidas-yeezyboost350.us.com/ adidas yeezy
http://www.yeezyboost350--v2.us.com/ yeezy boost 350
http://www.airmax95.co.uk/ air max 95
http://www.nikeairmax97.co.uk/ nike air max 97
http://www.pumarihannafenty.us.com/ rihanna puma shoes
http://www.adidas--shoes.co.uk/ adidas outlet
http://www.pandora--rings.us.com/ Pandora
http://www.jordans11shoes.us.com/ jordan 11 retro
http://www.nikeairvapormaxflyknit.us.com/ nike air max 90
http://www.adidasoriginalsnmd.us.com/ adidas nmd r1
http://www.swarovskisjewelry.us.com/ swarovski jewelry
http://www.ralphlaurenspoloshirts.us.com/ ralph lauren outlet
http://www.monclerjacketmens.us.com/ moncler jacket womens
http://www.christianlouboutinredbottoms.us.com/ christian louboutin
http://www.airmax90shoes.us.com/ nike air max
http://www.uggs--boots.us.com/ ugg
http://www.redbottoms-louboutin.us.com/ christian louboutin
http://www.nikeairmax270.org.uk/ air max 270
http://www.salomonspeedcross3.us.com/ salomon shoes
http://www.mulberry-handbags.us.com/ mulberry bag
http://www.pandora-jewelrysale.us.com/ pandora bracelet
http://www.michael-kors-bags.us.com/ michael kors purse
http://www.kyrie-4.us.com/ kyire 4
http://www.lebron15-shoes.us.com/ lebron 14
http://www.adidas-superstarshoes.us.com/ adidas originals superstar
http://www.eccoshoesoutlets.us.com/ ecco boots
http://www.air-max-90.us.com/ air max
http://www.skechers--shoes.us.com/ skechers boots
http://www.pandorasjewelry.co.uk/ pandora
http://www.true--religion.us.com/ true religion sale
http://www.prada--handbags.us.com/ prada
http://www.oakley--glasses.us.com/ oakley prescription sunglasses
http://www.adidasyeezy-350.us.com/ adidas yeezy
http://www.swarovskis.us.com/ swarovski rings
http://www.airjordan11spacejam.us.com/ jordan 11
http://www.birkenstock--sandals.us.com/ birkenstock
http://www.moncler-coat.us.com/ moncler jacket
http://www.louboutinredbottoms.us.com/ red bottoms
http://www.cartier-bracelet.us.com/ cartier
http://www.nikeairmax-97.us.com/ nike air max 97
http://www.fitflop--shoes.us.com/ fitflops clearance
http://www.barbourjackets.co.uk/ barbour
http://www.monclerjacket.org.uk/ moncler jacket
http://www.pandorajewelryscharms.us.com/ pandora jewelry official site
http://www.supremeshirt.us.com/ supreme shoes
http://www.adidasnmdrunnerr1.us.com/ adidas nmd r1
http://www.barbours.org.uk/ barbour coats
http://www.salomon--shoes.us.com/ Salomon
http://www.nikeair-max90.co.uk/ air max 90
http://www.jordan--11.us.com/ jordan
http://www.ralphlauren--polo.us.com/ ralph lauren
http://www.katespade--outlet.us.com/ kate spade handbags
http://www.northface-jacket.us.com/ womens north face jacket
http://www.skechersuk.co.uk/ skechers outlet
http://www.fitflop--sandals.us.com/ fitflop shoes
http://www.rayban--glasses.us.com/ ray ban wayfarer
http://www.katespadepurses.us.com/ kate spade purses
http://www.nikeairmax-95.us.com/ nike air max 95
http://www.polo-ralph-lauren.org.uk/ polo ralph lauren
http://www.rayban-glasses.us.com/ ray ban eyeglasses
http://www.adidas-ultraboost.us.com/ adidas ultra boost
http://www.yeezyboost350v2.co.uk/ yeezy boost 350 v2
http://www.truereligion--jeans.us.com/ true religion hoodie
http://www.nike-airmax-2018.us.com/ air max 90
http://www.airmax-2018.us.com/ nike air max
http://www.stephen-curry-shoes.us.com/ stephen curry shoes
http://www.uggsformen.us.com/ ugg,ugg slippers
http://www.yeezyboost350shoes.us.com/ yeezy
http://www.mcm--bags.us.com/ mcm handbags
http://www.asicss.us.com/ asics shoes
http://www.air-max-95.us.com/ air max 95 black
http://www.ultra--boost.us.com/ adidas originals ultra boost
http://www.air-max-97.us.com/ air max 97
http://www.celines.us.com/ celine,celine bag
http://www.coachbags-outlet.us.com/ coach
http://www.chrome--hearts.us.com/ chrome hearts ring
http://www.burberrys.org.uk/ burberry scarf
http://www.goyardbag.us.com/ goyard tote
http://www.balenciagas-sneakers.us.com/ balenciaga bags
http://www.adidas-yeezy-shoes.us.com/ Yeezy Boost 350
http://www.ray--ban.us.com/ ray ban
http://www.jordan11.co.uk/ jordan retro 11
http://www.hermesbirkin-handbags.us.com/ Hermes Wallets
http://www.coach--bags.us.com/ coach outlet
http://www.mulberrys.org.uk/ mulberry
http://www.chromehearts-jewelry.us.com/ chrome hearts clothing
http://www.fitflopsshoes.us.com/ fitflop sandals
http://www.pandoraearrings.us.com/ pandora
http://www.hermes--belt.us.com/ hermes belt
http://www.airmax270.co.uk/ nike air max
http://www.pandora--jewelrys.us.com/ pandora jewelry
http://www.burberry-bags.us.com/ burberry
http://www.goyardbackpack.us.com/ goyard bag
http://www.kyrie-irving-shoes.us.com/ kyrie 4
http://www.lacosteshirts.us.com/ lacoste polo shirts
http://www.pandora-charmsjewelry.us.com/ pandora
http://www.ray--bansunglassess.us.com/ ray ban glasses
http://www.polo-ralphlauren-outlet.us.com/ polo ralph lauren
http://www.pandorajewelryrings.us.com/ pandora earrings
http://www.nike-huaraches.us.com/ huarache shoes
http://www.nike-airmax270.us.com/ nike air max 270
http://www.valentino--shoes.us.com/ valentino sneakers
http://www.kd10-shoes.us.com/ kevin durant shoes
http://www.under-armour-shoes.us.com/ under armour shirts
http://www.pandoras-jewelrys.us.com/ pandora
http://www.chromeheartsjewelrys.us.com/ chrome hearts bracelet
http://www.mbts.us.com/ mbt womens shoes
http://www.michaelkors-handbagss.us.com/ michael kors purse
http://www.vapormaxs.us.com/ air vapormax
http://www.nikeairmax-90.us.com/ nike air vapormax
http://www.huaraches.us.com/ huarache shoes
http://www.air-max-270.us.com/ nike air max 270 women
http://www.mcms.us.com/ mcm backpack
http://www.pandorauk.us.com/ pandora uk
http://www.jimmychooheels.us.com/ jimmy choo shoes
http://www.salomon-boots.us.com/ salomon xa pro 3d
http://www.asics--shoes.us.com/ asics running shoes
http://www.jordanretro11-shoes.us.com/ jordan retro 11
http://www.new--balance.us.com/ new balance golf shoes
http://www.james-hardenshoes.us.com/ james harden
http://www.moncler--jacket.us.com/ moncler coat
http://www.supreme--clothing.us.com/ supreme shoes
http://www.adidasoriginalsultraboost.us.com/ adidas ultra boost uncaged
http://www.katespadebags.us.com/ kate spade wallet
http://www.longchampbag.us.com/ longchamp le pliage
http://www.oakley--sunglassess.us.com/ cheap oakley sunglasses
http://www.balenciaga--shoes.us.com/ balenciaga shoes
http://www.salomonshoes.co.uk/ salomon xa pro 3d
http://www.uggs-forwomen.us.com/ ugg boots
http://www.prada--bags.us.com/ prada bags
http://www.montblancs.us.com/ mont blanc sale
http://www.bvlgaris.us.com/ bvlgari ring
http://www.curry4-shoes.us.com/ under armour stephen curry
http://www.salvatore-ferragamo.us.com/ ferragamo
http://www.monclerjacketwomens.us.com/ moncler coat
http://www.fitflops-sale.us.com/ fitflop shoes
http://www.burberry--scarf.us.com/ burberry scarf
http://www.adidasnmd-womens.us.com/ adidas nmd
http://www.redbottom--shoes.us.com/ louboutin
http://www.longchampbackpack.us.com/ longchamp handbag
http://www.adidasyeezys.org.uk/ yeezy boost 350
http://www.nikekdshoes.us.com/ kd 9
http://www.nike--shoes.co.uk/ nike air max 270
http://www.nike--vapormax.us.com/ vapormax
http://www.ed-hardys.us.com/ ed hardy clothing
http://www.birkenstocksandalssale.us.com/ birkenstock
http://www.nikeair-max.co.uk/ nike air max 97
http://www.ferragamoshoess.us.com/ ferragamo
http://www.ugg--slippers.us.com/ uggs on sale
http://www.northfacejacketoutlets.us.com/ north face
http://www.monclers.uk/ moncler sale
もできなく
lebron 16 (2019年1月13日 01:33:40)
http://www.vans--shoes.us.com/ vans shoes
http://www.nike--trainers.org.uk/ nike air max
http://www.chaussuresalomon.fr/ salomon
http://www.monclers.ca/ moncler coat
http://www.adidasboostoutlet.us/ adidas outlet
http://www.balenciagas.ca/ balenciaga canada
http://www.jordan11shoes.us.com/ jordan 11 space jam
http://www.katespades.ca/ kate spade bags
コメント
http://www.nike--trainers.org.uk/ nike air max
http://www.chaussuresalomon.fr/ salomon
http://www.monclers.ca/ moncler coat
http://www.adidasboostoutlet.us/ adidas outlet
http://www.balenciagas.ca/ balenciaga canada
http://www.jordan11shoes.us.com/ jordan 11 space jam
http://www.katespades.ca/ kate spade bags
コメント