Next: 1 インタプリタの構造 Scheme.java Up: Software IV Top ソフトウェア特論 講義資料 JavaによるScheme言語処理系: Jscheme 稲葉 雅幸 人工知能プログラムをLispで記述した本 ``Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp'' (MIT Press, ISBN 1-55860-191-0, 1992) の著者で有名なPeter Norvig(http://www.norvig.com/) は,Javaで記述したScheme言語インタプリタJschemeを 作りました.(JschemeはもともとSilkという名前でしたが 名前がJschemeに変わりました.) http://www.norvig.com/jscheme.
J2SE 1.4 からJava の新しい言語要素としてassert ステートメントが導入された。これはソフトウェアの正しさを確実にするための手法の一つ「アサーション」を記述するためのものである。 アサーション(assertion,「表明」と訳される)は,ソフトウェアが正しく動作することをより確実にするために使われる手法の一つである。アサーションは,データ処理のロジックの各地点でどのような条件が成立しているはずであるか,という検証用のコードをそれぞれの箇所に配置し違反を自動で検出するという形をとる。アサーションへの違反が検出されたら何らかの誤りがあることになり,プログラムには修正の必要があることが分かる。したがって,多くのアサーションを入れ十分な種類のテストデータを使ってソフトウェアの開発とテストを進めれば,その過程でプログラムの誤りの多くが訂正されると期待できるのである。
Java 昨日の日記ではノリノリで1時間くらいで実装してイテレータを公開したものの、例外が飛んだら終わり、というなんともつまらないオチで終わってしまいました。breakやreturnできないことは意図した動きだったんですが、なぜ例外のことを忘れるかなー....ブックマークしてくれたみなさん、あれは例外が飛んだらリークしますんですみません。トラックバックしてくれていたお二方(id:masanobuimaiさんとyuguiさん)、なんだか褒めていただいたのに申し訳ない。 書いたコードは検証してから挙げろってことですね。でも「情報は情報を出すところに集まる」というのを実感しました。公開したからこそ、ささっと指摘を受けられたと良いように解釈します。 さて、結局のところコードブロックから飛び出してもそれを確実に捉えてファイルをクローズするには、コードブロック自体を制御構造の中に入れるしかないわけです
Java GUIコンポーネントといえばSwing。度重なる高速化や改善、新しい要素の追加、NetBeans IDEなど優れたGUIデザイナの提供などがあり、魅力的なコンポーネントである。プラットフォームGUIとの統合もすすみ、Javaで開発されたアプリケーションかシステムネイティブなアプリケーションか区別がつかないところまで自然に動作する。次期Java 6 SEでは新しいレイアウトマネージャが追加されるなど、一層便利になる。 しかし、それでもまだ提供されていないコンポーネントがある。たとえばWindowsで主に使われるようになったコンポーネントのいくつかは、依然としてSwingでは提供されていない。ここではこうしたコンポーネントを補うためのプロダクトとして「L2FProd.com Common Components(以降、L2FProdE)」を紹介したい。同等の機能を自作していた場合は、L
Where: Normal Loads are getfield, getstatic, array load of non-volatile fields Normal Stores are putfield, putstatic, array store of non-volatile fields Volatile Loads are getfield, getstatic of volatile fields that are accessible by multiple threads Volatile Stores are putfield, putstatic of volatile fields that are accessible by multiple threads MonitorEnters (including entry to synchronized met
匿名クラス(anonymous class)のメソッドを作るときに@Overrideを使おうとすると、元がinterfaceだとオーバーライドできないと言われる(メソッドはそのスーパークラスのメソッドをオーバーライドしません)。なるほど…なのかな? interface InterfaceExecutor { public void execute(); } abstract class AbstractExecutor { public abstract void execute(); } class Main { public static void main(String[] args) { new AbstractExecutor() { @Override public void execute() { // OK. System.out.println("execute 1");
Java言語の主要アーキテクトであるGilad Bracha氏、Neal Gafter氏、James Gosling氏、Peter von der Ahé氏らは18日(米国時間)、Java言語において関数型やクロージャの導入を提案するホワイトペーパを公開した。現在、Javaには関数型やクロージャは用意されていない。同氏らの提案ではJDK7を目処にこれら機能を統合していきたいとしている。 関数型やクロージャは関数型言語やスクリプト言語には用意されていることが多い機能のひとつ。同機能をもった代表的なプログラミング言語にはPython、Ruby、Perl、JavaScript、Common Lisp、Scheme、Smalltalk、Scala、C#などをあげることができる。もともとSmalltalkを使ってきたプログラマなどは、JavaにクロージャがないことをJavaに対する不満としてあげるこ
サーバおよびソフトウェア企業のSun Microsystemsは2006年、重要なJavaコンポーネントのオープンソース化を開始する。さらに、Java技術の小型機器向けバージョンにもオープンソース化の対象をひろげ、開発者コミュニティーにおける共同作業を促進する考えだ。 Sunの開発者向け製品およびプログラム部門担当バイスプレジデントのLaurie Tolson氏によると、同社は、Javaプログラミング言語で書かれたプログラムを走らせる2つの主要技術である「javac」コンパイラと「Java HotSpot Virtual Machine」を、2006年末までにオープンソース化する予定だという。 これらのコンポーネントは、サーバおよびデスクトップコンピュータ用の「Java Standard Edition(Java SE)」に組み込まれているものだ。さらに、携帯電話などの小型機器向けバージョ
はじめに 少し前まではプログラム言語と言えばJavaかC++、VBという感じでしたが、Webの広まりと共にPerlが使われて、PHPが現れ、Rubyが注目されて、JavaScriptが熱をおび、いろいろな言語が活気付いてきました。そして最近は、手続き型以外の関数型言語や論理型言語などにも触手が伸びているようです。 こうなると、次はプログラム言語を実装したりオリジナルのプログラム言語を作ってみたい人も増えてくるかもしれません。そこで本稿では、JavaCCを使ってプログラム言語を実装する手順を解説します。対象読者 Javaの基本が分かっていてプログラム言語の作成に興味がある方。必要な環境 JavaCCは最新の4.0を利用します。ダウンロードしたファイルを任意のフォルダに展開しておいてください。 今回はJ2SE 5.0をベースにプログラムを記述します。JavaCC自体はJ2SE 5.0に依存する
GWT is open source, completely free, and used by thousands of enthusiastic developers around the world. GWT is the official open source project for GWT releases 2.5 and onwards. This site houses links to the documentation, source code repository, issues list and information related to GWT roadmap and release. It is intended for developers interested in contributing to GWT, and for keeping people i
Javaのここ1年をふりかえってみると、アノテーションを使ったプログラミングが普及してきたと感じる。これを象徴するようにプロダクトにTestNGがある。TestNGを使えばアノテーションを挿入するだけで単体テストを行うことが出来る。これまでのJUnitなどと比べると簡単で、デベロッパに衝撃を与えた。新バージョンのリリースにあわせ、本稿ではTestNGの使い方を紹介する。 TestNG 5.0 登場 The TestNG Project, Cedric Beust氏は19日(米国時間)、TestNGの最新版であるTestNG 5.0を公開した。TestNGはJava向けに開発されたFLOSSのテストフレームワークで、アノテーションをベースにしており簡単という特徴がある。 @Configurationは@BeforeTestおよび@BeforeSuiteなどへ統合 @ExpectedExcep
Overview Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard. Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration
Javaデベロッパ向け AJAX FAQ Author: Greg Murray 訳: Yutaka Yoshida 私たちは現在すでにAJAXに触れ、まったく新しい世界が広がっていることに気づいています。 多くの開発者が既存のフレームワークを通してAJAXを使っていますが、より深くAJAXを知り、 今以上の機能を提供したい人もいるかもしれません。これはアプリケーションにAJAXの機能を 持たせたいJava開発者向けのFAQです。 AJAXを使うべきでしょうか AJAXはJavaと一緒に使えますか 現在使っているフレームワークにAJAXの機能はありますか 何から始めたらいいですか 自分でAJAXの機能を作るためには何を知っておかなければならないですか JavaScriptを知っていなければならないですか Java開発者用にどのようなJavaScriptライブラリやフレームワークがありますか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く