Pythonに関する記事とニュース
-
2008/12/10
正規表現エンジンを作ろう (6)
正規表現は、特に文字列操作が中心となるWEB分野におけるプログラミングにおいて、なくてはならない重要な機能です。本稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第6回は、連載の最後のまとめとして、正規表現エンジンを実際に動かして動作を確認し、より一般的なNFAエンジンとの比較を行います。
-
2008/12/03
正規表現エンジンを作ろう (5)
正規表現は、特に文字列操作が中心となるWEB分野におけるプログラミングにおいて、なくてはならない重要な機能です。本稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第5回は、NFAをDFAに変換する部分集合構成法を解説し、今まで作った部品を組み合わせて正規表現エンジンを完成させます。
-
2008/11/26
正規表現エンジンを作ろう (4)
正規表現は、特に文字列操作が中心となるWEB分野におけるプログラミングにおいて、なくてはならない重要な機能です。本稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第4回は、各正規表現の演算がどのようにNFAで表現されるかを解説し、この構文木をInterpreterパターンに対応させます。
-
2008/11/19
正規表現エンジンを作ろう (3)
正規表現は、特に文字列操作が中心となるWEB分野におけるプログラミングにおいて、なくてはならない重要な機能です。本稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第3回は、実装するDFAエンジンが扱う文法を解釈するコンパイラを作成します。
-
2008/11/12
正規表現エンジンを作ろう (2)
正規表現は、特に文字列操作が中心となるWEB分野におけるプログラミングにおいて、なくてはならない重要な機能です。本稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第2回は、正規表現エンジンの実際の評価器となる、NFAとDFAを実装します。
-
2008/11/05
正規表現エンジンを作ろう (1)
正規表現は、特に文字列操作が中心となるWeb分野におけるプログラミングにおいて、なくてはならない重要な機能です。本稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第1回は、正規表現の数学的な定義や実装方法の概要を紹介します。
-
2008/06/17
Java meets Python - 第7回 ハリウッドの原則
過去に作成したコードを眺めると、プログラミングを始めた頃には気付かなかった欠陥が見えてきます。ソフトウェアの設計にあたってはのちのちのコストを見据えた上で、再利用への配慮を行うことがとても重要です。今回は、先の連載で紹介した3つのゲームから共通する部分をフレームワークとして抽出し、リファクタリングを試みます。
-
2008/06/13
Java meets Python - 第6回 配列と別れる50の方法(3) ライフゲーム
例外処理を導入すると、配列に伴う ArrayIndexOutOfBoundsException とさえ共存できます。確かに、この対処法は魅力的ですが、後で思わぬツケが回ってきます。今回は、ライフゲームの事例を通して、伝統的な手法から視点を移して、オブジェクト指向の立場から観察することで、これらの問題点を再考します。
-
2008/04/30
PythonとDjangoでExcelファイルを作成
Pythonを利用してWebアプリケーションを作成する際に、Excelファイルのダウンロード機能を実装する方法について解説します。開発段階ではデータ表示に関するクライアントのビジョン形成をサポートし、リリース後はデータの可搬性を担保してくれる魅力的な機能です。
-
2008/04/24
PythonとWSGIによるフォトギャラリーの作成
PythonではWebサーバとWebアプリケーション間のインターフェイスを定めた「WSGI」という仕様により、Webサーバの違いを意識することなく、Webアプリケーションやフレームワークを作成できる。本稿では、フォトギャラリーを例に、WSGIを使ったWebアプリケーションの作成方法を紹介する。
-
2008/04/04
Java meets Python - 第5回 二分木と辞書
洗練されたOOPの世界では、利用者定義のクラスと組み込み型との間に「シームレス」な関係を維持できます。先に紹介した二分木を再構成すると、これを組み込み型dictと同等に扱えるようになります。今回は、二分木の事例を通して、クラスと組み込み型との相互理解を深めます。
-
2008/02/25
C#とIronPythonで変化に強いWindowsアプリケーションを作る
2006年9月、.NETで動作するPython「IronPython」が正式にリリースされました。.NET環境の本格的な動的言語として多くの注目を集めている反面、C#やVisual Basicを使っている開発者にとって、IronPythonの魅力が良くわからないという人もいるのではないでしょうか。そこで、本稿では、C#からIronPythonを利用するメリットとその方法について紹介します。
-
2008/01/30
Java meets Python - 第4回 配列と別れる50の方法(2) オセロゲーム
伝統的なスタイルを卒業して、OOPを習得するときに、越えなければならない壁の一つが配列です。2次元配列を扱った事例は多数ありますが、ともすると、配列が主役になり、その中身が脇役になる場面も少なくありません。そこで、発想を転換して主客逆転させると、新しい世界、オブジェクト指向の世界が開けてきます。
-
2007/12/03
Java meets Python - 第3回 構造体とクラス:二分木
Java/Pythonも「C言語で書かれたアプリケーション」の一つです。どちらも、C言語で作成された部品を集積して、高機能を提供します。C言語のバイブルとされるK&Rでは、二分木を使って単語の頻度を求める事例を紹介しています。この事例を通して、C言語のDNAを持つ、 Pythonの世界へと誘います。
-
2007/11/13
Java meets Python - 第2回 配列と別れる50の方法
配列を扱うたびに悩ましいのがArrayIndexOutOfBoundsExceptionです。配列の境界を越えないかという心配の種がなくなれば、明るい未来が開けてくるかもしれません。今回は、パズルの事例を通して、伝統的な手法から視点を移して、オブジェクト指向の立場から観察することで、これらの相互理解を深めます。
-
2007/10/30
Java meets Python - 第1回 JavaBeansの美味しい煎り方
JavaとPythonとの異文化交流は、Jythonという新たな可能性を具現化しました。Jythonでは、JavaBeansに準拠するリソースに対して、便利な機能を提供します。また、glue言語として、特性値の参照/変更、配列に対する添字演算子の適用、暗黙のコンストラクター呼び出しなど、Javaの未来予想図を描きます。
-
2007/09/12
Pythonを始めよう
Pythonは純粋オブジェクト指向言語であり、最近はGoogleでの利用や、.NET環境でのIronPythonなど、徐々に有名になってきています。この記事では、他言語での素養がある方を対象にPythonによる開発の概観を紹介し、そんなPythonの楽しさをみなさんに伝えたいと思います。
-
2007/07/03
Eclipse RCPを好きなスクリプト言語で拡張する
JSR-223は、スクリプト言語とJAVAプラットフォームとの間で行われるさまざまな対話を定義します。この記事では、JSR223のスクリプト機能を使って、EclipseプラットフォームおよびEclipse RPCアプリケーションを拡張する方法について説明します。