[ 前へ | 目次 | 次へ ]

標準ライブラリ

ここでは、VCSSLの標準ライブラリの中から、よく使うものについて説明します。 なお、GUI、Graphics2D、Graphics3D ライブラリについては、規模が大きいためここでは扱いません。別途のガイドをご参照ください ( GUIはこちらGraphics2DはこちらGraphics3Dはこちらです。 )。


標準ライブラリとは

標準ライブラリとは、あらかじめ用意されていて、標準で使用できるライブラリの事です。

通常、ライブラリを使用するためには、 ユーザーがライブラリを入手し、起動モジュールと同じフォ ルダ(ディレクトリ)内や、 処理系指定のフォルダ内に配置するなどの準備を行う必要があります。 し かし標準ライブラリでは、このような準備は不要で、いつでもすぐに使用できます。

標準ライブラリの役割

標準ライブラリの役割は、現実的なプログラムを開発する上で、 よく必要とされるような、基本的な機能を提供する事です。

そのような機能を、全てのユーザーが一から自力で作成しなければいけないのは不便ですし、 他人の書いたプログラムを読む際にも、何から何まで人によって全く異なるというのは読み辛くなってしまいます。 従って、そういった機能は標準ライブラリとしてあらかじめ用意されているわけです。

また、グラフィクスや GUI(グラフィカルユーザーインターフェイス)、 オペレーティングシステムや処理系側で処理する必要があるような機能も、 標準ライブラリとして提供されます。

print などのシステム関数も、「 System 」標準ライブラリで提供されている

実はこれまでのプログラムでも、標準ライブラリの機能を使用していました。 それは、画面にメセ ージを表示する print 関数などのシステム関数です。 システム関数は、「 System 」という標準ライブラリによって提供されています。 試しに以下のように記述し、実行してみてください:

これを実行すると、VCSSLコンソールに 「 Hello, World ! 」 と表示されます。 この通り、print 関数がSystemライブラリによって提供されている事が分かります。

VCSSLでは、全てのモジュール を読み込む前に、System ライブラリが自動で読み込まれる決まりになっています。 そのため、 System ライブラリをインポートしなくても、print 関数などを呼び出す事ができたわけです。

System 以外の標準ライブラリは、明示的にインポートして使用

インポートすらも不要で使用できるのは、標準ライブラリの中でも System だけです。 System ライブラリは、あまりに基本的な機能を提供し、ほとんどの全ての場面においてインポートする必要が生じるため、 特例的にインポートしなくても使用できるようになっているのです。

System 以外の標準ライブラリは、普通のライブラリと同様、インポートしてから使用する必要があります。 これは、使用するライブラリが多いほど、解釈すべき内容が増え、起動に時間がかかって しまうためです。 また、関数名の競合などの面倒を避けるためでもあります。

ライブラリは基本的に、 そのモジュールで使用するものだけをインポートするのが、実行時でも開発時でも有利です。

標準ライブラリの一覧と詳細表示

VCSSL の各標準ライブラリに関する詳細情報は、下記 URL にて参照できます:

- VCSSL ライブラリ -
https://ja.vcssl.org/lib/

標準ライブラリの一覧は以下の通りです。

System
根幹機能を提供
Math
数学関数を提供
Graphics
描画リソース関連機能を提供
Graphics2D
2 次元描画機能を提供
Graphics3D
3 次元描画機能を提供
GUI
ウィンドウやボタンなど、GUI 制御機能を提供
Color
色の制御を提供
Sound
サウンドの制御を提供
Text
文字列の基本的な処理機能を提供
File
ファイル一覧やパス処理などの機能を提供
Time
時間や日時に関する機能を提供
Process
ネイティブプロセスの実行機能を提供
Thread
マルチスレド処理機能を提供

これらの中で、(System 以外で)恐らく最も頻繁に使用するのは Math, Text, File, Time ライブラリでしょう。 以下では、実際にそれらを扱ってみます。

Mathライブラリ

Math は、sin や cos など、基本的な数学関数・定数を提供するライブラリです。

- Math ライブラリ リファレンス -
https://ja.vcssl.org/lib/Math

実際に使用してみましょう。以下のように記述し、実行してみてください:

上のプログラムを実行すると、sin(π/2) の値である「 1.0 」が表示されます。 必要に応じて、 値を数百桁以上の精度で求めるvarfloat 型の関数も使用できます。

Textライブラリ

Text は、文字列の検索や置き換えなど、基本的なテキスト操作機能を提供するライブラリです。

- Text ライブラリ リファレンス -
https://ja.vcssl.org/lib/Text

実際に使用してみましょう。以下のように記述し、実行してみてください:

このように、文字列に対して基本的な操作を行う事ができます。

Fileライブラリ

File は、ファイルパスを取得したり、ファイル一覧を取得したりするなど、ファイルに関する情報を 提供するライブラリです。

- File ライブラリ リファレンス -
https://ja.vcssl.org/lib/File

実際に使用してみましょう。以下のように記述し、実行してみてください:

上の通り、ファイルの場所を取得するなど、ファイルの基本的な情報を扱う事ができます。 なお、ファイルの指定では、「 / 」をフォルダ(ディレクトリ)の区切りとして使用できます。 また、「 . 」を相対パス基準フォルダ、「 .. 」を親フォルダとして使用できます。

Timeライブラリ

Time は、時間や日付などに関する機能を提供するライブラリです。

- Time ライブラリ リファレンス -
https://ja.vcssl.org/lib/Time

以下は時間を計測する例です:

上のプログラムを実行すると、「 時間を計っています... 」というメセージが表示されます。 メセ ージを閉じた時点で、閉じるまでに要した時間が、VCSSL コンソールに秒単位で表示されます。

上の例で使用した time 関数は、プログラムの実行が開始されてからの経過時間を返す関数です。 time 関数が返す時間の単位は、通常はミリ秒(1/1000 秒)ですが、厳密には処理系に依存します。 そのため、得られた結果を任意の単位に変換するための関数も提供されており、 上で用いた second 関数もその一つです。 単位の変換には、millisecond(ミリ秒単位)、second(秒単位)、 minute(分単位)、hour(時間単位)などがあります。

なお、second 関数や minute 関数、hour 関数などは、 引数を省略すると、時計における時刻を 返す機能もあります。 これを用いて、何時何分何秒かを取得する事ができます。 さらに、day で日付 を、month で月を、year で年を取得する事ができます:

上のプログラムを実行すると、その時点の日付と時刻が表示されます。

なお、month 関は、0 〜 11 では無く、 1 〜 12 までを返すと決まっています。つまり1月であれば 0 では無く 1 を返します。 Day 関数も同様で、(月の始めの)1日であれば 0 ではなく 1 を返します。 他言語では 0 から数えるものも存在するため、混同しないように注意が必要です。


この階層の目次
お知らせ

Vnanoの公式サイトがオープン、チュートリアルやAPI仕様書等も掲載
2019年08月07日 - オープンソースのアプリケーション組み込み用スクリプトエンジン「 Vnano 」の公式サイトを開設しました。チュートリアルや、スクリプトエンジンのAPI仕様書などが参照できます。その概要をお知らせします。

リニアングラフ3D/2Dが連番ファイルのアニメーションに標準で対応
2019年07月17日 - リニアングラフ3D/2Dでは、7月17日公開の最新版より、連番ファイルを連続的に読み込みながらアニメーション描画するプログラムを同梱し、メニューから標準で使用可能になりました。その概要をお知らせします。

Vnanoのスクリプトエンジンアーキテクチャ解説2: コンパイラ
2019年07月03日 - オープンソースで開発中のスクリプトエンジン「 Vnano 」のアーキテクチャを解説する連載の第2回です。今回は、スクリプトを中間コードへと変換する、コンパイラ部分の内部をクローズアップして解説します。

新着
[公式ガイドサンプル] ユーザーのGUI操作に対して処理を行う

「VCSSL GUI開発ガイド」内のサンプルコードです。ユーザーがGUIを操作した際に行う処理を実装します。
2019年07月28日
[公式ガイドサンプル] 各種GUIコンポーネントを画面上に配置する

「VCSSL GUI開発ガイド」内のサンプルコードです。色々な種類のGUI部品を画面上に配置します。
2019年07月28日
連番ファイルから3Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、3Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年06月03日
連番ファイルから2Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、2Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年05月24日
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
2019年05月21日
開発元Twitterアカウント