Files
Endorphin-Document/README.md
T

55 lines
3.8 KiB
Markdown

# Endorphin 语言文档
Endorphin 是一门面向云原生应用的编程语言,使用统一的语言模型描述前端界面、数据结构和后端业务逻辑。开发者编写声明、表达式与调用关系,平台解释执行代码,客户端根据资源或调用结果的类型呈现内容。
## 阅读指南
正文按概念的依赖顺序编排。首次阅读从第 1 章开始;查询具体写法时,可以直接进入相应章节。每章包含概念定义、语法、示例和行为说明。
本书为语言设计稿。用户身份、namespace key、use 形式和阶段命名等基础约定已经确定;函数、类型、数据读取与 UI 的具体写法以本文收录的草案为准。各主题的确定程度统一记录在[规范状态](appendices/specification-status.md),正文不反复叙述设计过程。
## 正文
### 第一部分:语言与程序模型
1. [语言概览](guide/01-overview.md) — 语言用途、核心概念与应用模型。
2. [用户身份](guide/02-user-identity.md) — 唯一用户名、显示名、代码归属与访问身份。
3. [namespace](guide/03-namespaces.md) — key、层级和可见代码视图。
4. [程序结构与导入](guide/04-program-structure.md) — 声明组织、外部上下文和 use。
5. [Preflight 与 inflight](guide/05-preflight-and-inflight.md) — 执行准备、检查与解释执行的职责。
### 第二部分:基础语法
6. [词法结构](guide/06-lexical-structure.md) — 标识符、字面量、符号、标点和注释。
7. [类型与类](guide/07-types-and-classes.md) — 类型标注、class 与字段。
8. [表达式与绑定](guide/08-expressions-and-bindings.md) — 求值、运算、成员访问和 let。
9. [函数与调用](guide/09-functions-and-calls.md) — 函数声明、返回值和跨 namespace 组合。
### 第三部分:应用用法
10. [数据读取](guide/10-data-access.md) — 通过类型取得数据及结果状态。
11. [资源访问与呈现](guide/11-resource-access-and-presentation.md) — 查看函数、参数就绪、调用结果与按类型呈现。
12. [UI 组件](guide/12-ui-components.md) — Column、Row、Spacer 和 Text 的参数与效果。
## 附录
- [术语表](appendices/glossary.md) — 语言术语的简要定义与章节索引。
- [形式文法](appendices/formal-grammar.md) — 集中查询 EBNF 产生式。
- [代码存储与视图](appendices/code-storage-and-views.md) — 独立代码段、S3 与索引的组织约定。
- [应用领域](appendices/application-domains.md) — UI、业务逻辑、数据访问和 Agent 的适用范围。
- [规范状态](appendices/specification-status.md) — 已确定约定、语法提案及未定义的边界。
## 记法
源码以 `endorphin` 代码块展示,文法以 `ebnf` 代码块展示。源码中的关键字和名称区分大小写;语言阶段名称固定为 `Preflight` 和 `inflight`。
“代码归属”写在代码块之前,用于说明外部上下文,不属于源码。函数体片段会注明使用位置,资源访问与界面结构示意使用 `text` 代码块,不表示新增源码语法。示例中的用户和 namespace 为示意名称。
正文的函数示例围绕商品定价展开:`alice:shop.pricing` 提供定价逻辑,`bob:shop.checkout` 组合它,`bob:shop.ui` 表达界面;数据读取示例使用 `alice:shop.data`。这些路径表示代码组织,不指定执行位置。
## 文档维护入口
编写或修改本书时,从[文档编写手册](authoring/README.md)开始。手册包含案例分析、稳定编号的写作规则、页面模板与检查流程,不属于语言学习主线,也不确认新的语言语义。
[贡献与跨电脑协作](CONTRIBUTING.md)说明维护约定和本地检查;[检查工具](tools/README.md)提供无需第三方依赖的结构验证。