特徴

一意のソース表現

全てのプログラムには、インデントベースのただ一つのソース表現があります。(lossless syntax tree) プログラマーはコードの書き方の種類で迷いません。

配布しやすい実行ファイル

C を経由するのでクロスコンパイルがしやすく、 ランタイム込みの 1 バイナリとして配布できます。 VM や外部インタプリタは不要です。

hello.tya
user = { name: "komagata", age: 20 }

greet = user -> "Hello, {user["name"]}!"

if user["age"] >= 20
  print(greet(user))

インストール

Homebrew

brew install komagata/tap/tya

Shell installer

curl -fsSL https://tya-lang.org/install.sh | sh
curl -fsSL https://tya-lang.org/install.sh | sh
irm https://tya-lang.org/install.ps1 | iex

ツールチェイン

  • すぐ動かす: tya run

    ファイルを指定すると、その場でコンパイルして実行します。試作や手元での動作確認に向いています。

    tya run hello.tya
  • 配布用に固める: tya build

    実行ファイルを作ります。できあがったバイナリは Tya コマンドなしで起動できます。

    tya build hello.tya -o hello
    ./hello
  • テストする: tya test

    プロジェクトのテストをまとめて実行します。テストランナは最初から同じバイナリに入っています。

    tya test
  • 問題を見つける: tya lint

    未使用の変数や避けたい書き方を検出します。実行前や CI でのチェックに使えます。

    tya lint src
  • 定型作業を呼び出す: tya task

    プロジェクトに定義したタスクを一覧表示し、そのまま実行できます。

    tya task
    tya task run

ドキュメント