2024年03月29日くいなちゃん


プログラミング言語Kuin」の言語仕様15、Kuinのその他の仕様についてです。

1コンパイル時に定数になる値

Kuinではconstやenumの要素に指定する式など、「コンパイル時に定数にできる値」を記述すべき箇所があります。 どのような値がコンパイル時に定数にできるかを説明します。

1.1ほとんどのリテラル



ほとんどのリテラルはコンパイル時に定数になります。 ただし、文字列型以外の配列リテラル([1, 2, 3]など)と関数リテラルは除きます。
例えば、図1-1のリテラルはすべてコンパイル時に定数になります。
  • 256
  • 3.14159
  • 'A'
  • true
  • 255b8
  • "abc"
  • ['a', 'b', 'c']
  • %enumElementName
  • null
図1-1: コンパイル時に定数になるリテラルの例

1.2定数同士の演算



定数同士に対する一部の演算は、結果が定数になることが保証されています。 例えば定数同士の加算は結果も定数になることが保証されており、「5 + 3」はコンパイル時定数になります。
どの演算結果が定数になるかについては、「演算子」の各項目の説明を参照してください。

2Kuin Editorから実行したときのディレクトリ

Kuin Editorから実行したときの、カレントディレクトリとリソースのディレクトリの扱いは、利便性のためにデバッグモードではリリースモードと異なります(表2-1)。
表2-1: 各種ディレクトリの扱い
ディレクトリ デバッグモード リリースモード
カレントディレクトリの初期値 .knファイルがあるディレクトリ カレントディレクトリ
"res/ファイルパス" .knファイルの位置にある「res」ディレクトリ内 exeの位置にある「res.knd」ファイル内
リリースモードではカレントディレクトリが中心になりますが、デバッグ実行時ではリソース等が存在する.knの位置が中心になるように動作します。 デバッグ実行のたびにリソースファイルをコピーする必要があるのを防ぐためです。
従って、ファイルにアクセスするときには表2-2のように書くことを推奨します。
表2-2: ファイルのアクセス方法
ファイルの種類 書き方
カレントディレクトリにあるファイル "ファイルパス"
exe配下にあるファイル wnd@exeDir() ~ "ファイルパス"
リソースファイル "res/ファイルパス"
なお.knファイルを保存せずにデバッグ実行した場合や、Kuin Editorを使わずにコンソール版のKuinコンパイラを直接使った場合には、デバッグモードでもリリースモードと同じ挙動になります。
1711718179jaf