[Submitted] WWDC2023 学生挑战赛 Dull

很多时候,我们希望创建一个Swift编程教育App,但是我们却不能运行用户写下来的Swift代码。有的时候,我们希望在我们的App中加入插件系统,使用Javascript非常复杂,如果可以用Swift来编写插件和制作插件系统就好了。于是Dull就应运而生。Dull是一个和Swift语法一致的编程语言,采用Swift编写,并且被封装成了可以简单调用的Swift Package,开发者可以使用这个package来制作创意的编程教学App或者为自己的软件添加插件系统。Dull可以进一步增加Swift用途和影响力。

为了展示Dull在教育方面的贡献,我使用Swift Playground制作了Dull App。Dull App主要有两个功能,一个是学习Dull编程语言,也相当于学习Swift,另外一个是了解Dull运行代码的原理。

介绍

App的首页提供三个入口,About,Learn和Playground。Learn用于学习Dull,Playground可以运行代码,与学习背后的原理。

Learn中总共有11个chapter,其中3个为练习Chapter,每个Chapter中包含可运行和可修改的代码块。每个代码块可以调用之前代码块定义的变量或者函数,整个的运行机制与Jupiter Notebook类似。练习Chapter中用户需要按照要求编写代码,Dull App会检查是否完成要求。这个检测并非是简单的字符串Match,而是深入的一种检测机制。(具体就是获得Dull编译器中的Main Scope,然后检查内部的Storage)



Playground中可以创建代码文件,然后运行,支持直接运行和Step-Run,Step-Run会展示编译的细节,包含Token Tree,Grammar Tree。

演示视频

Viemo
Youtube

4 个赞

感觉好厉害,这是已经上架App Store了吗

1 个赞

还没有,后续会开源Dull的编译器

1 个赞

好厉害! 想下载来体验、学习一下 想问下大佬可以给个链接吗? :star_struck:

使用Xcode运行

2 个赞

好滴 十分感谢:rose::pray: