SlideShare a Scribd company logo
1 of 49
Java基礎勉強会




ジェネリクスの
  @mzp

    1
@mzp

 2
3
AsakusaSatellite 0.7.2
  リリースしました




          4
Java8リリース目前




     5
←Java8




                                                ←Java1.0

                                 6
http://www.flickr.com/photos/deming0131/5879385869/in/photostream/
Java1.0
Java1.1
Java1.0
Java1.2

Java1.1
Java1.0
Java1.3

Java1.2

Java1.1
Java1.0
Java 1.4

Java1.3

Java1.2

Java1.1
Java1.0
Java 5

Java 1.4

Java1.3

Java1.2

Java1.1
Java1.0
Java 6

Java 5

Java 1.4

Java1.3

Java1.2

Java1.1
Java1.0
Java 7

Java 6

Java 5

Java 1.4

Java1.3

Java1.2

Java1.1
Java1.0
Java 8

Java 7

Java 6

Java 5

Java 1.4

Java1.3

Java1.2

Java1.1
Java1.0
Java 8

Java 7

Java 6

Java 5     ←最大の変更

Java 1.4

Java1.3

Java1.2

Java1.1
Java1.0
ArrayList xs =
  new ArrayList();

xs.add((Object)"foo");

String str =
  (String)xs.get(0);

          8
ArrayList xs =
  new ArrayList();
              ヤバイ
xs.add((Object)"foo");
           ヤバイ
String str =
  (String)xs.get(0);

          8
ArrayList<String> xs =
  ...

xs.add("foo");

String str =
  s.get(0);

          9
Java 8

Java 7

Java 6

Java 5

Java 1.4

Java1.3
                }   ちゃんと
                    繋ってる



Java1.2

Java1.1
Java1.0    10
←C# 2.0
               ←C# 1.0
      (CLR2.0)
               (CLR1.0)




       C#(.NET)
                      11
http://www.flickr.com/photos/ihorner/65073758/
OCaml/Haskell/SML
        12
←?????




C++
 13
なぜJavaのジェネリクスは
     特殊なのか
Javaのジェネリクスはイ
レージャー方式

ランタイムはそのまま

非ジェネリクスに変換し
      14
Odersky先生らの偉大なる
      功績
      GJ(Generic Java)
      として実装

      後にJava5として
      取り込まれた
       15
完
16
Java基礎勉強会




ジェネリクスの
  @mzp

    17
基礎とは
ある物事を成り立たせる、大もとの部
分。もとい。
          ――デジタル大辞泉


  なぜJavaのジェネリクス
    が成立するか

         18
ホントにジェネリクスは動
    くのか
すべての状況で必ず変換
できる?

既存の言語機能と衝突し
ない?
       19
Java言語を直接拡張するの
    はキツい




      20
模型で実験しよう




   21
FJ(Featherweight Java)
  最小限のJavaサブセット
•クラス定義
   あるもの            ないもの
                •アクセス制御(e.g.
•フィールド定義
                public, private)
•メソッド定義         •static
•オーバーライド        •final
                •リフレクション
•キャスト
           22
FJの例

class Point extends Object{
  int x;
  Point(int x’) {
    this.x = x’;
  }
  int getX() {
    return this.x;
  }
}


                   23
他に定義されていること
簡約規則、型付規則

重要な性質
‣ Subject Reduction
‣ Progress

             24
FGJ
   FJ + ジェネリクス
•クラス定義 + ジェ
   あるもの                 ないもの
ネリクス                •アクセス制御(e.g.
•フィールド定義            public, private)
                    •static
•メソッド定義 +           •final
ジェネリクス              •リフレクション
•オーバーライド       25
FGJの例
class Point<T> extends Object{
  T x;
  Point(T x’) {
    this.x = x’;
  }
  T getx() {
    return this.x;
  }
}



                   26
他に定義されていること
簡約規則、型付規則

重要な性質
‣ Subject Reduction
‣ Progress

             27
FGJからFJへの変換
  (type erasure)
型をなるべく上位のスー
パークラスに置き換える

キャストを適宜挿入する


       28
class PointA extends Point<A>{
  PointA(A x) { super(x); }
  PointA update(A y) {
    return new Point<T>(y);
  }
}


class PointA extends Point{
  PointA(Object x) { super(x); }
  Point update(Object y) {
    return new PointA((A)y);
  }
}

                   29
class PointA extends Point<A>{
  PointA(A x) { super(x); }
  PointA update(A y) {
    return new Point<T>(y);
  }
}
           A→Object
         PointA→Point
class PointA extends Point{
  PointA(Object x) { super(x); }
  Point update(Object y) {
    return new PointA((A)y);
  }
}

                   29
class PointA extends Point<A>{
  PointA(A x) { super(x); }
  PointA update(A y) {
    return new Point<T>(y);
  }
}
           A→Object
         PointA→Point
class PointA extends Point{
  PointA(Object x) { super(x); }
  Point update(Object y) {
    return new PointA((A)y);
  }
}                     キャストを挿入

                   29
変換に関する性質
type preservation
‣ FGJがwell-typedならFJをwell-
 typed

execution preservation
‣ FGJとFJで実行結果が同じ

            30
FJの他の使い方




   31
例:関数型言語との比較
オブジェクト指向型言語より関数型言語のほ
    うが表現能力が高い気がする




          32
33
オブジェクト指向型言語より関
数言語のほうが表現能力が高い


 FJはλ計算+レコードで
     表現できる

   http://www.flickr.com/photos/garrettwade/5839608287/
                            34
どう証明するか
FJをラムダ計算に変換で
きる

評価結果が変化しない

詳しくは http://ocaml-
           35
まとめ?
ジェネリクス使っとけ

FJのことも、ときどき思
い出してください

議論に便利
        36

More Related Content

What's hot

Scalaで型クラス入門
Scalaで型クラス入門Scalaで型クラス入門
Scalaで型クラス入門Makoto Fukuhara
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要HonMarkHunt
 
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】Yukiko Kato
 
Sns suite presentation
Sns suite presentationSns suite presentation
Sns suite presentationJason Namkung
 
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うXtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うTatsumi Naganuma
 
Shibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R についてShibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R についてtnoda
 
Inference and Checking of Object Ownership
Inference  and  Checking  of  Object OwnershipInference  and  Checking  of  Object Ownership
Inference and Checking of Object OwnershipJiachen Yang
 
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Yoshio Terada
 
Scala2.8への移行
Scala2.8への移行Scala2.8への移行
Scala2.8への移行guest5f4320
 
Java x Groovy: improve your java development life
Java x Groovy: improve your java development lifeJava x Groovy: improve your java development life
Java x Groovy: improve your java development lifeUehara Junji
 
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会Shotaro Sano
 
サーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよサーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよkoji lin
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2Masatoshi Tada
 
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRubyJava SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRubyHiroshi Nakamura
 
演算子オーバーライドをDSLに活用する
演算子オーバーライドをDSLに活用する演算子オーバーライドをDSLに活用する
演算子オーバーライドをDSLに活用するkwatch
 
Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】Yukiko Kato
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるShinya Mochida
 
Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Yukiko Kato
 
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuriWhy Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuriYuta Okamoto
 

What's hot (20)

Scalaで型クラス入門
Scalaで型クラス入門Scalaで型クラス入門
Scalaで型クラス入門
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要
 
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】
 
Sns suite presentation
Sns suite presentationSns suite presentation
Sns suite presentation
 
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うXtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
 
Shibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R についてShibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R について
 
Inference and Checking of Object Ownership
Inference  and  Checking  of  Object OwnershipInference  and  Checking  of  Object Ownership
Inference and Checking of Object Ownership
 
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
 
Scala2.8への移行
Scala2.8への移行Scala2.8への移行
Scala2.8への移行
 
Java x Groovy: improve your java development life
Java x Groovy: improve your java development lifeJava x Groovy: improve your java development life
Java x Groovy: improve your java development life
 
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
 
サーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよサーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよ
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
 
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRubyJava SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRuby
 
演算子オーバーライドをDSLに活用する
演算子オーバーライドをDSLに活用する演算子オーバーライドをDSLに活用する
演算子オーバーライドをDSLに活用する
 
Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】
 
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuriWhy Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
 

Similar to Java基礎

Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patternsnekop
 
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]David Buck
 
関数型プログラミング in javascript
関数型プログラミング in javascript関数型プログラミング in javascript
関数型プログラミング in javascriptRyuma Tsukano
 
jjugccc2018 app review postmortem
jjugccc2018 app review postmortemjjugccc2018 app review postmortem
jjugccc2018 app review postmortemtamtam180
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそDavid Buck
 
明日から使える Java SE 7
明日から使える Java SE 7明日から使える Java SE 7
明日から使える Java SE 7Yuichi Sakuraba
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1Susisu
 
ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けkunihikokaneko1
 
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFメディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFAtsushi Tadokoro
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイドYuichi Sakuraba
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へonozaty
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-PE-BANK
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fallこれからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fallなおき きしだ
 

Similar to Java基礎 (20)

Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patterns
 
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
 
関数型プログラミング in javascript
関数型プログラミング in javascript関数型プログラミング in javascript
関数型プログラミング in javascript
 
jjugccc2018 app review postmortem
jjugccc2018 app review postmortemjjugccc2018 app review postmortem
jjugccc2018 app review postmortem
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
明日から使える Java SE 7
明日から使える Java SE 7明日から使える Java SE 7
明日から使える Java SE 7
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
Starting java fx
Starting java fxStarting java fx
Starting java fx
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分け
 
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFメディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fallこれからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
 

More from Hiroki Mizuno

TypeSafe OSの試み
TypeSafe OSの試みTypeSafe OSの試み
TypeSafe OSの試みHiroki Mizuno
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法Hiroki Mizuno
 
#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書について#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書についてHiroki Mizuno
 
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性についてScala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性についてHiroki Mizuno
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Hiroki Mizuno
 
Darcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbcDarcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbcHiroki Mizuno
 
Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Hiroki Mizuno
 
CoqによるMsgPackの証明
CoqによるMsgPackの証明CoqによるMsgPackの証明
CoqによるMsgPackの証明Hiroki Mizuno
 
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)Hiroki Mizuno
 
20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会Hiroki Mizuno
 
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02Hiroki Mizuno
 
証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議Hiroki Mizuno
 
Coqによる証明駆動開発
Coqによる証明駆動開発Coqによる証明駆動開発
Coqによる証明駆動開発Hiroki Mizuno
 
NGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへNGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへHiroki Mizuno
 
From Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへFrom Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへHiroki Mizuno
 
OCamlAPISearchの紹介
OCamlAPISearchの紹介OCamlAPISearchの紹介
OCamlAPISearchの紹介Hiroki Mizuno
 

More from Hiroki Mizuno (20)

TypeSafe OSの試み
TypeSafe OSの試みTypeSafe OSの試み
TypeSafe OSの試み
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法
 
#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書について#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書について
 
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性についてScala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
 
Sml#探検隊
Sml#探検隊Sml#探検隊
Sml#探検隊
 
どこでもCoq
どこでもCoqどこでもCoq
どこでもCoq
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
 
Darcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbcDarcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbc
 
Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力
 
CoqによるMsgPackの証明
CoqによるMsgPackの証明CoqによるMsgPackの証明
CoqによるMsgPackの証明
 
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)
 
20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会
 
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
 
証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議
 
Coqによる証明駆動開発
Coqによる証明駆動開発Coqによる証明駆動開発
Coqによる証明駆動開発
 
NGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへNGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへ
 
From Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへFrom Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへ
 
SacalaZa #1
SacalaZa #1SacalaZa #1
SacalaZa #1
 
CoqUn2010
CoqUn2010CoqUn2010
CoqUn2010
 
OCamlAPISearchの紹介
OCamlAPISearchの紹介OCamlAPISearchの紹介
OCamlAPISearchの紹介
 

Java基礎

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. &amp;#x30FB;&amp;#x6700;&amp;#x8FD1;&amp;#x3001;&amp;#x958B;&amp;#x767A;&amp;#x8005;&amp;#x5411;&amp;#x3051;&amp;#x306E;&amp;#x30C1;&amp;#x30E3;&amp;#x30C3;&amp;#x30C8;&amp;#x30C4;&amp;#x30FC;&amp;#x30EB;&amp;#x3067;&amp;#x3042;&amp;#x308B;AS&amp;#x306E;&amp;#x6700;&amp;#x65B0;&amp;#x7248;&amp;#x3092;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3057;&amp;#x307E;&amp;#x3057;&amp;#x305F;\n&amp;#x30FB;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x30CF;&amp;#x30A4;&amp;#x30E9;&amp;#x30A4;&amp;#x30C8;&amp;#x3068;&amp;#x304B;Redmine&amp;#x9023;&amp;#x643A;&amp;#x304C;&amp;#x3042;&amp;#x308B;&amp;#x306E;&amp;#x3067;&amp;#x958B;&amp;#x767A;&amp;#x8005;&amp;#x306E;&amp;#x4EBA;&amp;#x306F;&amp;#x4F7F;&amp;#x3046;&amp;#x3068;&amp;#x3044;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  5. \n
  6. 12&amp;#x5E74;&amp;#x3067;&amp;#x3044;&amp;#x308D;&amp;#x3044;&amp;#x308D;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n&amp;#x4F1A;&amp;#x793E;&amp;#x3082;&amp;#x304B;&amp;#x308F;&amp;#x3063;&amp;#x305F;&amp;#x3057;\n
  7. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  8. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  9. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  10. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  11. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  12. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  13. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  14. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  15. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  16. &amp;#x5F53;&amp;#x7136;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x304B;&amp;#x3089;&amp;#x4ECA;&amp;#x306E;Java&amp;#x3060;&amp;#x3063;&amp;#x305F;&amp;#x308F;&amp;#x3051;&amp;#x3058;&amp;#x3083;&amp;#x306A;&amp;#x3044;\n&amp;#x9806;&amp;#x6B21;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x3063;&amp;#x305F;\n--(&amp;#x5168;&amp;#x90E8;&amp;#x3060;&amp;#x3057;&amp;#x3066;&amp;#x304B;&amp;#x3089;)\n&amp;#x6700;&amp;#x5927;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;Java 5&amp;#x3060;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002; &amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x8A71;&amp;#x984C;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x304C;&amp;#x5C0E;&amp;#x5165;&amp;#x3055;&amp;#x308C;&amp;#x305F;\n
  17. &amp;#x3053;&amp;#x306E;&amp;#x30AD;&amp;#x30E3;&amp;#x30B9;&amp;#x30C8;&amp;#x306E;&amp;#x3042;&amp;#x305F;&amp;#x308A;&amp;#x304C;&amp;#x30E4;&amp;#x30D0;&amp;#x30A4;&amp;#x3002;\n&amp;#x5927;&amp;#x4E8B;&amp;#x306A;&amp;#x3053;&amp;#x3068;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3082;&amp;#x3046;&amp;#x4E00;&amp;#x5EA6;&amp;#x3044;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x30E4;&amp;#x30D0;&amp;#x30A4;&amp;#x3002;\n
  18. \n
  19. javac -target jsr14 Foo.java\n
  20. C#&amp;#x3068;&amp;#x3046;&amp;#x304B;.NET&amp;#x3060;&amp;#x3068;&amp;#x30B8;&amp;#x30A7;&amp;#x30CD;&amp;#x30EA;&amp;#x30AF;&amp;#x30B9;&amp;#x3092;&amp;#x5C0E;&amp;#x5165;&amp;#x3059;&amp;#x308B;&amp;#x969B;&amp;#x306B;CLR&amp;#x3092;&amp;#x4F5C;&amp;#x308A;&amp;#x306A;&amp;#x304A;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  21. \n
  22. C++&amp;#x306F;&amp;#x3088;&amp;#x304F;&amp;#x308F;&amp;#x304B;&amp;#x308A;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x3002;\n
  23. &amp;#x30FB;&amp;#x30DE;&amp;#x30FC;&amp;#x30C1;&amp;#x30F3;&amp;#x30AA;&amp;#x30C7;&amp;#x30B9;&amp;#x30AD;&amp;#x30FC;&amp;#x5148;&amp;#x751F;\n
  24. \n
  25. \n
  26. &amp;#x3042;&amp;#x3001;Java&amp;#x306E;&amp;#x8A71;&amp;#x306F;&amp;#x3053;&amp;#x3053;&amp;#x3067;&amp;#x7D42;&amp;#x308F;&amp;#x308A;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  27. \n
  28. \n
  29. \n
  30. \n
  31. Featherweight&amp;#x30D1;&amp;#x30BF;&amp;#x30FC;&amp;#x30F3;&amp;#x3068;&amp;#x306F;&amp;#x7121;&amp;#x95A2;&amp;#x4FC2;\n&amp;#x6700;&amp;#x5C0F;&amp;#x9650;&amp;#x306F;&amp;#x30B3;&amp;#x30EC;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x7570;&amp;#x8AD6;&amp;#x306F;&amp;#x53D7;&amp;#x3051;&amp;#x4ED8;&amp;#x3051;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. FJ&amp;#x306F;&amp;#x975E;&amp;#x5E38;&amp;#x306B;&amp;#x30B7;&amp;#x30F3;&amp;#x30D7;&amp;#x30EB;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x4ED6;&amp;#x306E;&amp;#x3053;&amp;#x3068;&amp;#x306B;&amp;#x3082;&amp;#x3064;&amp;#x304B;&amp;#x3048;&amp;#x307E;&amp;#x3059;\n
  42. \n
  43. &amp;#x6B7B;&amp;#x306E;&amp;#x4E88;&amp;#x611F;&amp;#x3057;&amp;#x304B;&amp;#x3057;&amp;#x306A;&amp;#x3044;\n
  44. &amp;#x6B66;&amp;#x5668;&amp;#x3092;&amp;#x6E96;&amp;#x5099;&amp;#x3057;&amp;#x3066;&amp;#x304A;&amp;#x3053;&amp;#x3046;\n&amp;#x8A00;&amp;#x3044;&amp;#x63DB;&amp;#x3048;&amp;#x308C;&amp;#x3070;&amp;#x8A3C;&amp;#x660E;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x306A;&amp;#x308B;\n
  45. &amp;#x6C34;&amp;#x639B;&amp;#x3051;&amp;#x8AD6;&amp;#x3092;&amp;#x3042;&amp;#x308B;&amp;#x7A0B;&amp;#x5EA6;&amp;#x9632;&amp;#x6B62;&amp;#x3067;&amp;#x304D;&amp;#x308B;\n
  46. \n