请看 PDF 草稿:
https://github.com/BlinkDL/Basis/blob/master/docs/basislang.pdf
强类型,静态类型。但可省略类型,由编译器自动推断静态类型。
请看 Basis 代码示例:
import sys.console as console
isPrime(n) :
n <= 1 : return 'bad'
for i = 2, i * i <= n, i++
n % i == 0 : return 'bad'
return 'good'
main :
console.writeLine(isPrime(17))
Basis 中的冒号尤为灵活。上述程序,没有 if 语句,但仍然容易理解。
如果您有知乎账号,也欢迎在知乎讨论: https://zhuanlan.zhihu.com/p/68906047
1
CantoAllaVita 2019-06-14 19:27:48 +08:00 via iPhone
看起来很不错啊,加油
|
2
CrabAss 2019-06-14 19:57:43 +08:00
语法过于灵活,看得我有点儿晕
|
3
CrabAss 2019-06-14 20:02:23 +08:00
repo 里看了一圈好像没什么东西……有 BNF 文档吗?
|
4
withablink OP |
5
0xcb 2019-06-14 20:07:47 +08:00 via Android
👍,感觉跟 python 太像了,这段没有看出强类型的,
|
6
rawidn 2019-06-14 20:20:13 +08:00 via iPhone
说实话不如加上 if 容易理解… 写代码的人不会介意多写两个字母
|
7
withablink OP @0xcb 谢谢,例如 string 和 其它 不自动互转,bool 和 其它 不自动互转,int 和 float 不自动互转,等等
|
8
youngxhui838 2019-06-14 20:44:03 +08:00 via Android 1
看起来又是一门要用游标卡尺才能写的代码
|
9
shuax 2019-06-14 20:44:22 +08:00
给我来一个 Python 的语法,C++的性能就够了。
|
10
HatMatrix 2019-06-14 20:46:09 +08:00
没啥新东西啊
|
12
withablink OP @youngxhui838 可能也会支持用 { } 控制域... 这将是一个“想怎么写就怎么写”的语言。
|
13
FireCat 2019-06-15 11:30:05 +08:00
我看你知乎了。无 GC 还做脚本,这俩不互斥吗?
|
14
ysc3839 2019-06-15 11:55:25 +08:00 via Android 1
要让更多人参与进来的话建议做好国际化。
目前有一些 commit 是中文的,建议趁早改掉。 |
15
ixx 2019-06-15 18:27:28 +08:00
个人觉得 if 不是保留好些 对解析影响不大 但对读代码直观多了
|
16
thautwarm 2019-06-15 18:30:56 +08:00 via Android
lz 您好,很厉害。
几个问题: 1. 类型系统设计是什么样的?如你所说这是静态语言的话,这一点会是关键 2. 语言擅长的抽象方式是什么?基于类型的多态,面向对象多态,语法宏 /语法形式抽象? 3. 语言针对的问题?如果是 DSL,针对的什么方面。如果是通用编程,在各个领域的示例代码大概什么样(不需要实现) 4. 如果静态类型不够强,运行时的 debug 支持如何?运行时报错是否 make sense ?编译运行 latency 如何(比如 julia 语言几乎是完美后端语言,不考虑 latency 的话) |
17
thautwarm 2019-06-15 18:35:56 +08:00 via Android
一些夹带个人喜好别的问题,
1. 语言似乎和 py 一样是 statement first 的,且所有表达式都无法包括语句?有没有什么 expression first 风格的模拟方法? 2. 扩展性。有没有办法定义新运算符,包括优先级结合性。有没有办法自定义类型推导规则。有没有办法定义新的语法,新的语言构造以及相应语义。 |
18
thautwarm 2019-06-15 18:38:19 +08:00 via Android
最后,编辑器支持什么的也很重要了。不比当年裸 vim/emacs 写。不求专门的 ide, 可以快速做一个 emacs mode 改善入门体验
|
19
1010543618 2019-06-15 20:11:02 +08:00
感觉这样写出来的程序要会好多种语言的语法糖的人才能看懂
见过一个大神有过类似的想法,不过看他的还是 JS 和 PY 的语法较多 https://github.com/jamiebuilds/ghost-lang |
20
withablink OP |
21
withablink OP @thautwarm 您好,谢谢:
1. 希望和 C++ 比较像,例如 [继承 /多态 /泛型 /模板] 都是 C++ 的层次。另外希望支持 [RESULT_TYPE, ERR_TYPE] 这种 union type。 2. 多范式,不过还是以过程和对象为主,不像函数式语言那样可变(所以扩展性也不会特别强)。不过,考虑为 [异步 /多线程 /分布式] 做一些特殊的范式。 3. 最初步的目标是 [可以混合 C++ 和 Python 的写法,但也拥有 C++ 的速度] ,这可能也是很多人的愿望。 最初的领域,是机器学习,因为这个对效率(算力&内存)有要求,但常用的 Python 实在效率太低了,容易成为瓶颈,无法令人满意。 4. 这是很重要也很费劲的一个事情,希望做好 。如果发现有特性会在此明显地拖后腿,那么会不加这个特性。 |