独自言語
Introduction
独自言語は静的型付けのコンパイラ言語である。
Programs
プログラムは0個以上の関数・変数宣言から構成される。
行末にセミコロンを必要としない。
Types
独自言語には以下の基本型が存在する。型のサイズは実行環境に依存せず常に一定である。
void
bool
byte
int
void
型がないことを示す。
関数の返り値においてのみ使用される。
bool
ブール型である。
falseとtrueの値のみをとる。
整数型への変換は行われない。
byte
符号あり8ビット整数型である。
-128~127の値を表現できる。
文字の表現に利用される。
必要に応じて、int型に暗黙的に変換される。
int
符号あり32ビット整数型である。
-2,147,483,648~2,147,483,647の値を表現できる。
必要に応じて、byte型に暗黙的に変換される。
Reserved Words
以下のキーワードは予約されているため、名前として使用できない。
func
var
val
return
if
else
false
true
while
Expressions
式は値とその演算から構成され、何らかの値を返します。
主に文の構成要素として使用されます。
算術演算
以下の算術演算に対応しています。
左辺値と右辺値の型が一致していなければなりません。
byte型・int型の演算のみ実装されています。
+: 加算
-: 減算
*: 乗算
/: 除算
%: 剰余
code: go
(1 + 2) * (3 / 4)
関係演算子
以下の論理演算に対応しています。
左辺値と右辺値の型が一致していなければなりません。
すべての基本型に対して実装されており、常にbool型の値を返します。
==: 等しい
!=: 等しくない
<: より小さい
<=: 以下
>: より大きい
>=: 以上
5. Statements
文は関数の構成要素として使用されます。
単体の式を文として扱うことはできません。
return
現在の関数から抜けて与えられた値を関数の返り値とします。
関数がvoid型でない限り必ず値が与えられなければなりません。
return文の後に文が続く場合、それらの文は実行されません。
if
与えられた条件式の値に従って分岐します。
条件式はbool型の値を返されなければなりません。
while
与えられた条件式が満たされている間、処理を繰り返します。
条件式はbool型の値を返されなければなりません。
6. Arrays
配列型である。要素の型と要素数から構成される。
要素数は必須であり、引数などに利用される場合であっても省略できない。
必要に応じてpointer型との暗黙的な変換が行われる。
7. Pointers
ポインタ型である。
必要に応じて、次に述べるarray型と暗黙的な変換が行われる。
8. Variables
9. Functions
変数
グローバル変数とローカル変数が使用できる。
初期値が指定されなかった場合、自動的に0初期化が行われる。
varの代わりにvalを用いることで定数として使用できる。