Skip to main content

A tiny timeline-first language for LLM workflows and logs.

Project description

Zyng Project

Zyng は、「人間が読めて、機械が厳密に扱える」Zynglish ベースの言語/ツールチェインです。
まずは README 内の ```zyng コードブロックだけを実行できるツール として開発を進めています(Phase A)。

  • Phase A のゴール:
    • README をそのまま「軽いスクリプト/テスト」として実行できるようにすること
    • コア予約語を 20 語程度に抑えた最小言語として形にすること

Demo: Run this README

この README 自体が Zyng のデモになっています。
以下の ```zyng コードブロックだけが実行され、通常の文章は無視されます。

show "Hello from README" :::important

(実行方法は現時点のスクリプト構成に応じて、例: python zyng_v0.4_md.py README.md など)


Design Principles

Zyng / Zynglish は、「人間が読めて、機械が厳密に扱える」簡略英語ベースの言語です。
仕様書・テスト・公文書・日常文を、ひとつのコアから書けることを目標に設計しています。

1. Core の意味は削らない

  • 動詞や時間語などの 意味のインベントリは削らずに設計 する。
  • 一方で、綴りは yest / tomo のように 短く・発音可能な形に最適化 してよい。
  • つまり、「何を表現できるか」は守り、「どう綴るか」を削る。

2. 三層構造(Core / State / Nature)

  • Core
    • 約 20 語程度の予約語と、最小限の文法から成る「意味のコア」。
    • 例: show, read, write, use, let, yest, tomo, now など。
  • State
    • 公文書・仕様・契約など、「曖昧さを嫌うテキスト」を書くためのレイヤー。
    • Core の語彙と、厳格に管理された略語のみを使用する。
  • Nature
    • 物語・会話・ミームなど、創作的なテキストのためのレイヤー。
    • 短縮や造語を制限しない。広く使われた表現は将来 Core / State に昇格しうる。

3. 記法は : / :: / ::: に集約する

  • : は単語の属性、:: は列(リスト)の属性、::: は文全体のメタ情報・制御を表す。
  • 制御構文やモード指定をできるだけ ::: に寄せ、新しいキーワードを増やさない
  • 例:
    • Mi use pool :::yest
    • show result :::json
    • show log :::test

4. 人間が読めて、機械が厳密に扱える

  • 文は、英語に似た形で「なんとなく読める」ことを重視する。
  • 同時に、パーサーとツールチェインが構文と意味を 一意に解釈できる ことを優先する。
  • README や仕様書をそのまま実行・検証できることを、最初のユースケースとして設計する。

5. 英語「らしさ」と、一貫性のバランス

  • Zynglish は英語をベースにするが、「正しい英語」を目指すのではなく、
    論理と一貫性を優先した簡略英語 を目指す。
  • 例: 場所やサービス、API などの利用をすべて use で統一する。
    • Mi use pool :::yest
    • use db :::now
  • 英語としての違和感よりも、「少ない語彙で同じパターンを繰り返せるか」を重視する。

Core Keywords (v0.1)

Zyng / Zynglish のコア予約語一覧です。
このうち ✓ が付いているものは、Phase A(README Runner + 変数 + read/write/use)で実際に使用されるサブセットです。

Literals

Keyword Category Phase A 説明
true literal 真を表す論理値。条件分岐やフラグとして使う。
false literal 偽を表す論理値。条件分岐やフラグとして使う。
null literal 値が存在しない状態を表す特殊値。Python の None に相当。

Core Verbs

Keyword Category Phase A 説明
show verb 値やメッセージを表示・ログ出力する。show "Hello" のように使う。
read verb ファイルやストリームなどからデータを読む。read "users.json" as users
write verb データをファイルやストリームに書き出す。write users to "users.json"
use verb モジュール・リソース・場所・サービスを利用する。use db, Mi use pool :::yest
let verb 変数を導入・代入する。let user = "Alice" のように使う。

Time Words

Keyword Category Phase A 説明
yest time word 「昨日」を表す時制属性。:::yest を付けて昨日の出来事を示す。
tomo time word 「明日」を表す時制属性。:::tomo を付けて明日の出来事を示す。
now time word 「今この瞬間」を表す。:::now で現在時点の操作・状態を明示する。

today は「時制指定なしのデフォルト」として概念的に存在するが、通常は明示的には書かない。)

Control Keywords (reserved for future versions)

Keyword Category Phase A 説明
if control 条件分岐の開始を表す。将来のバージョンで導入予定。
else control if の条件が偽のときに実行する分岐。将来導入予定。
for control 繰り返し処理(反復)を表す。将来導入予定。
while control 条件が真の間、処理を繰り返すループ構文。将来導入予定。
return control 関数から値を返して処理を終了する。将来導入予定。
break control ループを途中で抜けるための制御。将来導入予定。
continue control ループ内で残り処理をスキップし、次の反復へ進む。

Structure Keywords (reserved)

Keyword Category Phase A 説明
func structure 関数定義を行うキーワード。func name ... { ... } 形式を想定。
type structure 型や構造体・レコードを定義するためのキーワード。

Phase A Status

Phase A では、上記 Core Keywords のうち主に

  • true, false, null
  • show, read, write, use, let
  • yest, tomo, now

だけを実装・利用します。
それ以外のキーワード(if, func など)は 予約されていますが、まだ構文としては利用できません

今後は:

  1. README 内の ```zyng ブロックを安定して実行できる CLI ツールとして整える
  2. Core 文法のサブセット(Phase A 用ミニ文法)を仕様として固定する
  3. サンプルリポジトリとテスト(README as Code)を整備する

という順番で進めていきます。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zyng-0.0.1.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zyng-0.0.1-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file zyng-0.0.1.tar.gz.

File metadata

  • Download URL: zyng-0.0.1.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for zyng-0.0.1.tar.gz
Algorithm Hash digest
SHA256 5dbaaf2257405ba2a7e95cd5a8bf09d56f2920595491892656c23de6a266a865
MD5 4c7658bc9d4b6a7e230f64d31f0e61bd
BLAKE2b-256 7f21df85d6c74a657941e3b610b0168894fbfc304279c1372ef846c420ba75b8

See more details on using hashes here.

File details

Details for the file zyng-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: zyng-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for zyng-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd893477cd9c838ba057ac5eb3eeb0f4f7c7de7b0fcfc2fbe04716fca5fc697d
MD5 3e260d0243146c633476881bdff90775
BLAKE2b-256 fb75089f14d2d3c2dfa14bba3a4a8e51ec778b296b2fcc1b8f71c9b2a60e5e24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page