Archive for the ‘Java’ Category

  1. Hello, Jython World!

    Posted on 1月 9th, 2012 by cx20

    Jython

    Jython はオブジェクト指向スクリプト言語 Python の Java 実装である。Jim Hugunin 氏によって開発された。
    Python の構文が使える他、Java のライブラリが利用できる。
    なお、Python の .NET 実装である IronPython を開発したのも Jim Hugunin 氏である。

    ソースコード

    #!/usr/bin/env jython
    print "Hello, Jython World!"

    ソースコード(Java ライブラリを使用した場合)

    #!/usr/bin/env jython
    from java.lang import System
    System.out.println("Hello, Jython World!")

    実行方法(スクリプトファイルを指定して実行)

    $ jython hello.py

    実行方法(実行権限を付与して実行)

    $ chmod +x hello.py
    $ ./hello.py

    実行結果

    Hello, Jython World!
  2. Hello, JRuby World!

    Posted on 1月 8th, 2012 by cx20

    JRuby

    JRuby はオブジェクト指向スクリプト言語 Ruby の Java 実装である。
    Ruby の構文が使える他、Java のライブラリが利用できる。
    また、JRuby のスクリプトは Java クラスとしてコンパイルすることもできえる。

    ソースコード

    #!/usr/bin/env jruby
    puts "Hello, JRuby World!"

    ソースコード(Java ライブラリを使用した場合)

    #!/usr/bin/env jruby
    require 'java'
    import 'java.lang.System'
    System.out.println('Hello, JRuby World!')

    実行方法(スクリプトファイルを指定して実行)

    $ jruby hello.rb

    実行方法(実行権限を付与して実行)

    $ chmod +x hello.rb
    $ ./hello.rb

    コンパイル&実行方法(バイトコードにコンパイルして実行)

    $ jrubyc hello.rb
    $ jruby hello.class

    コンパイル&実行方法(Java クラスとして実行)

    $ jrubyc hello.rb
    $ java -cp $JRUBY_HOME/lib/jruby.jar:. hello

    実行結果

    Hello, JRuby World!
  3. Hello, Scala World!

    Posted on 1月 7th, 2012 by cx20

    Scala

    Scala はオブジェクト指向言語と関数型言語の特徴を組み合わせた比較的新しいプログラミング言語である。Java VM 上で動作する。Java の後継を担うものとしても注目を浴びている。
    並行プロセス処理が優れているということで Twitter のメッセージ基盤(API の実装)にも採用されている。
    なお、Java VM で動作するスクリプト言語としては、他にも、Groovy、JRuby、Jython、Clojure 等がある。

    ソースコード

    object Hello {
        def main(args: Array[String]) {
            println("Hello, Scala World!")
        }
    }

    実行方法(スクリプトファイルを指定して実行)

    $ scala Hello.scala

    コンパイル&実行方法(バイトコードにコンパイルして実行)

    $ scalac Hello.scala
    $ scala Hello

    コンパイル&実行方法(Java クラスとして実行)

    $ scalac Hello.scala
    $ java -cp $SCALA_HOME/lib/scala-library.jar:. Hello

    実行結果

    Hello, Scala World!
  4. Hello, Java VM Assembler World!

    Posted on 1月 6th, 2012 by cx20

    Java VM Assembler

    Java VM アセンブラは Java VM の中間コード(バイトコード)を生成するアセンブラである。
    主要な Java VM アセンブラとしては、Jasmin 等がある。

    ソースコード

    .class public Hello
    .super java/lang/Object
     
    .method public ()V
       aload_0
       invokespecial java/lang/Object/()V
       return
    .end method
     
    .method public static main([Ljava/lang/String;)V
       .limit stack 2
       getstatic java/lang/System/out Ljava/io/PrintStream;
       ldc "Hello, Java VM World!"
       invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
       return
    .end method

    上記コードは以下の Java のソースに対応する。
    クラスファイルを tinapoc と言った逆アセンブラや javap で逆アセンブル(javap -c Hello)することでアセンブリコードを得られる。

    public class Hello {
        public static void main( String[] args ) {
            System.out.println( "Hello, Java VM World!" );
        }
    }

    コンパイル&実行方法(Jasmin)

    $ java -jar jasmin.jar Hello.j
    $ java Hello

    実行結果

    Hello, Java VM World!
  5. Hello, Java World!

    Posted on 12月 4th, 2011 by cx20

    Java

    Java はサン・マイクロシステムズにより開発されたオブジェクト指向プログラミング言語である。名前の由来は開発メンバーがコーヒー好きだったかららしい。ちなみにクラスファイル(バイトコード)の最初の4バイトは 0xCAFEBABE となっている。

    ソースコード

    public class Hello {
        public static void main( String[] args ) {
            System.out.println( "Hello, Java World!" );
        }
    }

    コンパイル&実行方法

    $ javac Hello.java
    $ java Hello

    実行結果

    Hello, Java World!