日本語 English

ドキュメント

目次: はじめに | 設計哲学 | 基本構文 | 仕様の確定状況

はじめに

Cu言語の初期設計資料です。現時点では理念と構文案をまとめたものであり、正式な言語仕様書ではありません。実装を始める前に、構文の曖昧さ、型規則、エラー処理、実行方式を確定していく必要があります。

設計哲学

3つの原則を設計判断の基準とします。

基本構文(検討案)

以下は検討中の構文です。全てが実装済みの仕様ではありません。

ファイル形式

main.cu29

ディレクティブ

#mode 
#apply 

標準出力

Io.print(none: str = "Hello, World!")

変数の宣言・初期化

x: int = 1
name: str = "Cu"
pi: float = 3.14
enabled: bool = True

基本型の候補:int(整数)、float(浮動小数点数)、str(文字列)、bool(真偽値)

変数の再代入

x: int = 1

x = 3
x += 1

noneによる値の直接指定

Io.print(none: str = "Cu")

検討中の構文。一般的な None / null と同じ意味だと確定したものではありません。

関数の定義

fnc: int = init() {
    Io.print(none: str = "a")
    return none: int = 0
}

複数の戻り値

fnc: (int, str) = get_values() {
    return none: int = 10, none: str = "Cu"
}

a, b = get_values()

条件分岐

if: pro = x == 0 {
    Io.print(none: str = "x is 0!")
} elif: pro = x == 1 {
    Io.print(none: str = "x is 1!")
} else {
    Io.print(none: str = "x isn't 0 or 1!")
}

繰り返し処理:for

for: pro = 5 {
    Io.print(none: str = "Hello")
}

繰り返し処理:while

while: pro = x == 0 {
    Io.print(none: str = "x is 0")
}

while: pro = True {
    Io.print(none: str = "Running")
}

ループ制御

break
continue

演算子と複数行記述

result: int = 10 + 20
value: int = result * 2

result: int = 10 +
    20

仕様の確定状況

項目状態
言語名 Cu確定
拡張子 .cu29確定
初期実装言語 Python方針
クラスを初期仕様に含めない方針
APCの3原則内容確定
変数・関数・条件分岐の構文検討案
noneの意味要定義
proの厳密な意味要定義
型システム要設計
メモリ管理方式要設計
コンパイル方式・実行方式要設計
RTOS・ハードウェア制御機能将来の検討項目

重要: 現時点では、Cuの理念と構文案をまとめた初期設計資料であり、正式な言語仕様書ではありません。