diff --git a/projects/NASL/NASL.md b/projects/NASL/NASL.md new file mode 100644 index 0000000000000000000000000000000000000000..ac8d2ef839bfbf9ba0a16574f08291ac5cbb08ae --- /dev/null +++ b/projects/NASL/NASL.md @@ -0,0 +1,81 @@ + +1. 项目名称:NASL + +2. 项目图标: + +![nasl-logo](./nasl-logo.jpg) + +3. 项目主页:[https://nasl.codewave.163.com/](https://nasl.codewave.163.com/) +4. 项目仓库:基本内源 +5. 项目简介: + +**NASL**,全称 Next Application Specific Language,是网易数帆 [CodeWave 智能开发平台](https://sf.163.com/product/lcap?productId=neteasecloud)用于描述 Web 应用的**领域特定语言**。它主要包含两部分:基础语言和 Web 应用特定领域(如数据源、数据查询、页面、流程、权限等)的子语言集合。 + +NASL 最主要的特点是使用 CodeWave 智能开发平台的**可视化**编辑器,可**统一设计 Web 应用的页面、业务逻辑、数据、流程等方方面面,并辅有静态检查、全栈调试、AIGC 代码生成、多人协作**等功能: + +![nasl-functionalities](./nasl-functionalities.png) + +对搭建 Web 应用来说,NASL 及其配套设施开箱即用,**学习门槛低,开发成本少:开发者不需要再学习多门框架、语言(如前端 TypeScript、Vue,后端 Java、Spring),也不需要在他们之间互转数据。 + +NASL 及其配套设施的整体架构图如下: + +![nasl-framework](./nasl-framework.jpg) + +下面分别介绍基础语言、子语言、配套设施。 + +**基础语言** NASL 基础语言融合了面向对象、函数式等编程范式的语言特性,有着和大多数通用计算机编程语言一样的表达能力: + +- 使用静态类型系统,支持常用的原子类型、复合类型、集合类型和数据元类型等。 +- 提供了联合类型(union types)和 match 表达式。 +- 支持逻辑(函数)定义,逻辑里可使用常见的 if、while、foreach 等控制流和 lambda 表达式。 +- 支持命名空间、模块化和依赖机制。 +- 提供常用的内置函数标准库。 + +NASL 利用可视化对复杂的语言特性做了屏蔽和简化,大大降低了用户的学习门槛,符合低代码群体的用户画像。 + + + +**子语言** NASL 子语言是在基础语言之上,吸收了 Web 应用各子领域的传统编程语言和框架的主要特征而设定的 DSL,其中: + +- 数据定义子语言用于表达数据库、表、字段和索引等相关概念。 +- 数据查询子语言用于表达筛选、排序、分页和聚合等数据查询的各种场景。 +- 页面子语言主要用于表达页面布局、页面交互和页面样式等各种场景。 +- 流程子语言主要用于表达手动任务、自动任务、排他网关等流程领域的相关概念。 + + + +各子语言并非互相独立、拼凑而成,而是建立在基础语言之上,较为统一,例如: + +- 前端、服务端、实体均使用统一的类型定义。 +- 前端页面逻辑、服务端逻辑、流程逻辑可使用统一的表达式、语句、内置函数标准库。 +- 前端调用服务端逻辑,逻辑调用接口,流程跳转页面等功能屏蔽了底层细节,用户无感。 + +**部分配套设施** + +- **Language Server:** 包含类型检测、类型推断、跳转定义、自动补全等能力,减少编程出错概率和提高编程效率。 +- **Debugger:** 包含 breakpoin不分t、step into、step over、resume、evaluation 等能力。 +- 代码仓库:用于实时保存用户构建应用所产生的 NASL 代码,并满足高性能、高可用、高可靠等特性。 +- Generator:NASL 语义编译器。低代码平台借助于 Generator,将 NASL 语言编译为 Java、JavaScript 等通用语言,在借助底层通用语言的运行时设施如 jvm,将 NASL 语言运行在计算机上。 +- Upgrader:用于 NASL 语言在版本迭代过程中产生的一些兼容性问题处理。 + + + +库与依赖、编译器架构等其他方面详见[轻舟低代码技术白皮书](http://nasl.codewave.163.com/%E6%8A%80%E6%9C%AF%E7%99%BD%E7%9A%AE%E4%B9%A6V1.0-1118.pdf)。 + + + +6. 项目分类 + +付费¹、闭源、专用、不接受社区贡献 + +语言类别:多范式语言、可扩展语言、高级编程语言 + +工具类别:代码生成、增量编译器 + +应用领域:行业应用 + +¹:目前可免费使用,且无时长限制 + +7. 联系方式(至少填一项,括号内注明类型) + +[ushio@foxmail.com](mailto:ushio@foxmail.com)(电子邮箱) \ No newline at end of file diff --git a/projects/NASL/nasl-framework.jpg b/projects/NASL/nasl-framework.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c1aae541990dfeccd5144645200966cb00c8246d Binary files /dev/null and b/projects/NASL/nasl-framework.jpg differ diff --git a/projects/NASL/nasl-functionalities.png b/projects/NASL/nasl-functionalities.png new file mode 100644 index 0000000000000000000000000000000000000000..5f43f2acdc272075dbbeda4a1afa8df8ef2c691c Binary files /dev/null and b/projects/NASL/nasl-functionalities.png differ diff --git a/projects/NASL/nasl-logo.jpg b/projects/NASL/nasl-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3356777c3ec0723b47356bf97d6b62dc184214d Binary files /dev/null and b/projects/NASL/nasl-logo.jpg differ