ソースパッケージ ascript-0.01.tar.gz
Win32 バイナリ ascript-0.01-win32.zip
AScript 言語マニュアル (日本語版) 2011年3月2日更新
AScript ライブラリリファレンス (日本語版) 2011年2月25日更新
AScript 開発者向けマニュアル (日本語版) 2011年2月24日更新
AScript は、リストやイテレータで表される複数データを一度に処理できる 「暗黙的マッピング処理」と「メンバマッピング処理」を特徴としたスクリプト言語です。 煩雑なリスト要素操作や制御構文を記述せずに、データを処理できます。
他に以下の特徴を持っています。
言語としての主な特徴については こちら をご覧ください。
AScript に組み込まれたイメージデータ型、データストリームおよび 仮想パス名機能により、さまざまな処理を行うモジュールが、お互いに協調して動作できます。 以下のようなユースケースが、自然な形で実現できます。
上の例でイメージ操作に関するものが多いのは、協調動作の好例だからです。 イメージにまつわる、ファイル入出力・加工・画面出力は、 各処理を行うライブラリやモジュールが独自のイメージデータ構造を提供しています。 今までのプログラム言語では、そららの間でデータをやりとりするには煩雑な手続きが必要でした。 AScript は、モジュール間でよくやりとりされるデータを言語の標準データ型として提供することで、 そのような問題を解決します。
上の例が、実際にどのようなプログラムで実現できるのか、それは こちら をご覧ください。
AScript はイメージデータを扱うクラスを標準で提供しています。 このクラスを中心に、イメージファイルの読み書き・イメージ描画・画面表示などを 行うモジュールが提供されます。
現在対応しているファイルフォーマットは BMP, JPEG, PNG, GIF, PPM, Icon です。 いずれも読み込みおよび書き込みが可能です。
イメージ描画のために、以下のモジュールが実装されています。
画面表示のために、以下のモジュールが実装されています。
HTTP サーバ・クライアントの機能を実現する http モジュールを提供します。 このモジュールをインポートすると、インターネット上の資源をローカルファイルと 同じように扱うこともできるようになります。
zip ファイルの読み書きを行うモジュール zipfile と、tar ファイルの読み込みを行う モジュール tar を提供します。これらのモジュールをインポートすると、 アーカイブファイルの中のファイルも、通常ファイルと同じようにオープンすることが できるようになります。
正規表現を処理するモジュール re を提供します。
標準的なテキストフォーマットの読み書きをするモジュールを提供します。
Windows および Linux (Ubuntu) に対応しています。Windows XP、Vista および Ubuntu 10.10 で動作確認をしています。
ファイル ascript-x.xx-win32.zip を適当なディレクトリに展開してください。
Ubuntu 10.10 は、デフォルトでは C++ コンパイラや readline ライブラリが入っていないので、 以下のようにパッケージをインストールしておきます。
$ sudo apt-get install g++ $ sudo apt-get install libreadline5-dev
以下の手順で AScript の本体をビルド・インストールします。
$ tar xvfz ascript-x.xx.tar.gz $ cd ascript-x.xx/src $ ./configure $ make $ sudo make install $ sudo ldconfig # 必要に応じて
続けて、以下の手順でモジュールファイルをビルド・インストールします。
$ ascript build_modules.az $ sudo ascript build_modules.az install
エラーが出る場合は、モジュールに必要なライブラリがシステムにインストールされていない 可能性があります。エラーメッセージにしたがって、パッケージをインストールしてください。
ascript[.exe] はコマンドラインプログラムです。
AScript を使った応用プログラム例が sample ディレクトリの下に格納されています。ご参照ください。
| Cairo を使った二次元グラフィック描画 | sample/cairo |
| OpenGL を使った三次元グラフィック描画 | sample/opengl |
| HTTP のクライアントおよびサーバ機能 | sample/http |
| SDL を使った画面描画 | sample/sdl |
| Tk を使った GUI プログラミング | sample/tk |
| Active-X を使った Win32 操作 (Windows 版のみ) | sample/win32 |
現在の開発状況はベータ版です。モジュールによっては、実装が不完全なものがあります。
ご意見、ご感想を フォーラム にてお待ちしています。
Please post your idea and opinions into Forum. Messages written in English would also be welcome.
以下の開発環境・ライブラリ・ツールを使わせていただきました。ありがとうございます。
| 開発環境 | Borland C++ Compiler 5.5 |
| 正規表現 | 鬼車 5.9.2 |
| 乱数生成 | Mersenne Twister SFMT 1.3.3 |
| XML パーサ | Expat 2.0.1 |
| YAML パーサ | YAML 1.2 |
| SDL | SDL 1.2 |
| cairo | cairo 1.10.2 |
| JPEG | Independent JPEG Group 8c |
| PNG | libpng |
| TIFF | http://www.libtiff.org/ |
| zlib | zlib |
| bzip2 | bzip2 |
| Tcl/Tk | Tcl/Tk 8.5 |
| データベース | SQLite 3.6.23.1 |
| combination | Header <boost/algorithm/combination.hpp> |
| CSV テストデータ生成 | なんちゃって個人情報 |
| ascript (0.0.2) | 2011-03-03 20:45 |
| open() with a string prefixed by bar executes a process | 2010-09-03 11:43 |
| Implements the following functionality. f = open("|ls -al") println(f.readlines()) | |
| implement a module that has a directory name | 2010-08-30 09:08 |
| implement a mechanism to handle files named init.az or init.azd. | |
| implementation of math.optimize() add math.diff() | 2010-07-17 08:39 |
| implement math.optimize() and math.diff() completely | |
| Active Scripting 対応 (フォーラムメッセージ [#51163] からの引用) | 2010-06-12 20:36 |
| フォーラム フォーラム [#51163] からの引用 [forum: 51163] こんにちは。 win のみの機能要望なので、かなり重要度低い... | |
| socket I/F | 2010-05-20 16:20 |
| implementation of a traditional socket I/F |