Archive for the ‘Java’ Category
-
Hello, Jython World!
Posted on 1月 9th, 2012 by cx20
Jython
Jython はオブジェクト指向スクリプト言語 Python の Java 実装である。Jim Hugunin 氏によって開発された。
Python の構文が使える他、Java のライブラリが利用できる。
なお、Python の .NET 実装である IronPython を開発したのも Jim Hugunin 氏である。
ソースコード
ソースコード(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!
-
Hello, JRuby World!
Posted on 1月 8th, 2012 by cx20
JRuby
JRuby はオブジェクト指向スクリプト言語 Ruby の Java 実装である。
Ruby の構文が使える他、Java のライブラリが利用できる。
また、JRuby のスクリプトは Java クラスとしてコンパイルすることもできえる。
ソースコード
ソースコード(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!
-
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!
-
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!
-
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!