V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Kulics  ›  全部回复第 3 页 / 共 5 页
回复总数  86
1  2  3  4  5  
2019-07-29 20:07:07 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@dwcz
1. 这是编程语言,只不过它现在还只能依赖输出到其它语言来运行,所以还不能去解释自己的内存、版本管理等等东西,这些现在还只能视目标语言的环境来使用。不然编译到 js 的 ts 就不是编程语言了吗,还有 kotlin 之于 js 和 jvm ?
只能说它现在还不是一个独立运行的编程语言。
2. 我不清楚你说的抽象汇总是怎么回事,至少你得提一个具体的案例,才能说明你的观点。
3. 本身 if then else 的结构代码块就是用{}表达,没理由不用 if else 就分不清楚,结构都一样。我反而觉得噪音更少了。
4. 检查异常的结构也是传统的 try catch finally 结构,仅仅省了几个字,功能都一致,这跟 java c#的处理方式有何不同?意思是你觉得这种方案不好,更倾向于 go 的 error value 还是 rust 的 result<T>?
2019-07-29 19:57:48 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy
6. 目前是因为我在用那些语言,写这个语言能帮助我做一些共通的工作,工作场景所需,老是要做一些多平台的东西。
主要目标其实也不是多语言,反而是在尝试多语言输出的过程中能学到很多每个语言共通和精妙的东西(当然了不包含函数式,纯函数式也不太需要这种蹩脚的命令式设计)。
算是给自己积累经验,以后输出成 llvm 才能真正脱胎换骨吧(虽然我经常咕,不过没放弃过什么项目)
2019-07-25 16:15:10 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy
5. 很好,这给了我灵感,的确是需要一个操作实现 yield 功能,最合适的操作符就是 @ <- value。这样就不能用原来的方案实现 continue 和 break 了,感官不好。
现在我用不带箭头的方式表示这俩操作。
..@ continue
@.. break
比原来的方案好上不少,已经更新了,感谢你的建议。
6. 本身 Lite 也只是旧时代命令式语言的现代精简版,再强也比不上函数式的骚气,这点无论如何都不敢妄自菲薄。
Lite 现在只是类似 ts 对于 js 这样的存在,是个大型语法糖+盐。但也不局限这样,现在支持输出到 c#、go、ts,也有能力输出到 swift、java,实际上就是抽取了很多语言共有的东西,接近通用语言,能简化很多目前我跨平台开发工作。
既然是拥有自己独特的语法和能力,就是独立的语言,能不能做什么,就靠后面编译器和运行时有多强大,靠持续迭代去改进了,计划几年内输出到 llvm。
2019-07-24 09:56:27 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy
5. -> @ 和 -> 感觉没有改进特别大。还不如 ~@ 作 break, -@ 作 continue。
6. 你这语法是啥,Type 是泛型吗。
Lite 的泛型语法跟 C#同类型,没 Haskell 那么逆天的类型系统。
apply 函数只能做到 apply<T1,T2>形式的,所以推导能力目前也就只能到这里了。以后支持省略泛型标记的时候再做这方面加强吧。
2019-07-23 10:49:09 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy
5. 这道填空题不成立,<- 是一个操作概念,并没有设计成 @就得有个什么对应,函数就得有个什么对应。函数是(->),跟<- 也对应不起来。<- @ 跟 <- value 才有对应的概念。不如你说说这地方该怎么设计,我可以参考下。
6. 你可能不熟悉 c#,不是加一个 var 就搞定了自动推导功能。
arr = {1,2,3,4,5}
arr = {1}
翻译成 c#是
var arr = new list<int>(){1,2,3,4,5};
arr = new list<int>(){1};
这里应该不难看懂,把自动推导就理解成 var 就太。。。了。
typescript 翻译完 js 还没有类型了,这不影响 typescript 强大。
2019-07-22 21:38:08 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@lepig 谢谢,编译器前端门槛不高,借助 antlr( https://www.antlr.org/)这样的工具就很好实现,后端比较难,你也可以试一下。
唯一觉得不容易做的没有多少利益的情况下坚持投入个几年时间到上面,还继续投入下去。
2019-07-22 10:31:28 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@mggis0or1 跟 dsl 差别挺大,通用编程,跟 C# 的语法复杂度差不多,基本无缝互操作,这个规模不太算是 dsl。
2019-07-22 10:20:42 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Niphor 对啊,难得讨论了回技术。一开始是以 go 为基础,现在差别挺大的,Lite 的语法需要看过文档学习后才能感觉到舒畅。
2019-07-22 07:20:49 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy 双拼的确是非常快的,以前我在少数派工作的时候他们就大力推过,不过那时没有一个跨平台好用的双拼输入法,最终还是没坚持下去。
现在我年纪大了,脑子转的很慢,写个代码要思前想后考虑很多,码字速度已经没拖脑子后腿了,追求不来速度(滑稽
说真,要不你 fork 一份把操作符改成关键词试试玩玩,或者你觉得可以用什么关键词,发一份给我,我改个双模式,不影响编译。
2019-07-22 07:15:03 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy 编译器实现了自动推导,输出到 C# 也得用 var 吧,为什么不用啊,写 C# 不用 var 吗? 233333
2019-07-22 06:58:18 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy
1. 总之现在你确认 Lite 是静态语言了,any 类型肯定是需要的,推导不能解决一切问题,很多地方还得靠反射和类型判断,Lite 肯定也得支持。
2. 我只说我去除了关键词,没说去掉了 token,不管字母还是符号到编译器都是 token,我喜欢操作符,不喜欢可以自行 fork 改成字母,这不影响 Lite 本身语法精简。
3. lexer 和 parser 用的都是 antlr,用轮子难道有什么问题?敢情现在写个项目还要从汇编开始写吗。开源大轮子比自己写的要好千万倍吧,后端我还准备用 llvm。
4. 老爷子去世我难过了好一阵,刚开始设计 Lite 看了好久 Erlang 的设计,里面的思想的确精辟,我也借鉴了一些。
5. <- 是返回语义,我通过后面的内容判断返回的目标,<- value 是退出函数,<- @ 用来退出循环,这样符合这个语言自己的设计,统一表达规范是我很着重的部分,
2019-07-22 06:42:05 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@xujinkai 为什么要猜,难道学门语言是靠关键词猜怎么用的吗,你是的话真强我佩服,我只会规规矩矩学文档。
语法之外的疑问好解答:这个主要是用来解决程序员这个问题的(滑稽
2019-07-21 23:11:44 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@jaynos 程序员哪需要这些,程序员只需要两个按钮一个 ctrl+c,另一个。。。(滑稽)
2019-07-21 23:09:21 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@luopengfei14 谢谢,写语言不牛逼,这个差不多还只是毕业设计水平,我不是大神。我是闲着想做些新东西(滑稽)
2019-07-21 23:07:25 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy 当然用宏可以把 @ 这么玩。没有 Lite 之前我也是这么玩。
那么这些呢
```
@ true {
...
}
@ {
...
}
[0 < 10] @ i {
...
}
```
任何一个图灵等价的语言都可以完成差不多的功能,
但是原生的和非原生的就是有差别,不然我们只学 lisp 就够了。
建议至少看完文档。
2019-07-21 23:02:59 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy 我前面也回答过,实际上关键词相关的语法都在,只是没有沿用用英语单词形式的关键词。但是关键词指的就是那些词,符号被称作操作符,任何一个语言都是这么称呼,这么描述应该没有什么问题。
btw,同学你对关键词的执念很深,即使把操作符换回关键词,Lite 的语法结构依然非常精简。
设计目标不是去掉关键词,那是结果不是目的,纠着这个眼镜不放,好的地方怕是看出来了。
2019-07-21 22:56:17 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@no1xsyzy 我假设同学你已经读过 Lite 的文档,至少没忽略声明和自动推导部分。
Lite 的类型大量用了自动推导,根本不是 Variant 那回事。
这是用 Lite 写的一个 demo 项目,简单的 xamarin。
建议可以看看 Lite 是怎么输出到 c# 的,这是一个静态语言,纯正的。
https://github.com/kulics/lite-demo/tree/master/LiteDemo/LiteDemo
2019-07-21 22:49:33 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@tanszhe 谢谢你的建议,现在 Lite 依赖目标语言的实现,除了语言之外很难有自己独特的特性,我自知不是明显的优势。真正语言自己的优势恐怕得之后输出到 llvm 的时候才能有更创新的设计。
2019-07-21 20:08:00 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@v2nika 符号替换关键字没意义,精简语法有意义。
2019-07-21 20:05:44 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@datou 本来设计目标也不是新手,没有想追求低门槛。写的语言多的人更容易体会到 Lite 的优点。
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1130 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 19:14 · PVG 03:14 · LAX 11:14 · JFK 14:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.