分享一个新的编程语言 Lemon 。

2017-11-12 13:07:19 +08:00
 zhicheng

项目地址 https://github.com/lemon-lang/lemon 官网地址 http://www.lemon-lang.org/

简单介绍一下,

纯 C 实现,支持 Linux, macOS, Windows,以及(未测试) FreeBSD, OpenBSD, NetBSD,Solaris 等支持 POSIX 的环境,如果选择关掉内置的 OS 和 SOCKET 模块,那么几乎任何有标准 C 编译器的平台都可以支持。Windows 需要 Windows XP 及以上,如果用的 Windows 2000 则需要安装 kernel extension。

代码量少,算上内置模块,也只有 20ksloc 编译后 200 多 k。

动态语言,语法和 C/C++, Java, JavaScript 接近,但注意和 JavaScript 是完全不同的语言。

支持 GC, 面向对象,多重继承,闭包,Coroutine, Continuation 等现代编程语言的大部分功能。

因为官方实现很小,你可以直接把实现放到项目里,这样就不用担心语言升级项目重写了。

官网就是用 lemon 实现的,可以作为一个简单的参考 https://github.com/lemon-lang/website

有另一个中文的简单介绍 https://www.textarea.com/zhicheng/lemon-bianchengyuyan-jieshao-884/ 更多信息请移步官网或在邮件列表中讨论论。

10732 次点击
所在节点    程序员
97 条回复
littlewing
2017-11-12 18:04:09 +08:00
赞一个,大牛啊
voocel
2017-11-12 18:17:34 +08:00
厉害
acgnsstech
2017-11-12 18:31:39 +08:00
文档太简单了额。。。。
dobelee
2017-11-12 18:44:17 +08:00
目前有一些库吗?
hsuan
2017-11-12 18:48:09 +08:00
解释执行的?
glues
2017-11-12 18:57:03 +08:00
没看到任何亮点
Norie
2017-11-12 19:01:17 +08:00
@fuyufjh 哪三大
RqPS6rhmP3Nyn3Tm
2017-11-12 19:04:37 +08:00
@Norie 操作系统 编译器 还有一个忘了…
hst001
2017-11-12 19:09:50 +08:00
@Norie #27 编译器、操作性和图形学,知乎上面的,有人叫三大浪漫,也有叫三座大山。
maomo
2017-11-12 19:19:04 +08:00
相比于 Lua 的优势在哪?
fuyufjh
2017-11-12 19:21:17 +08:00
@Norie 轮子哥杜撰的典故:编译原理,图形学,操作系统

发明一门语言算是每个程序员的梦想,哈哈~
bjrjk
2017-11-12 21:16:42 +08:00
楼主能不能做个函数的文档啊,想知道怎么输入还要翻一翻 c 源代码……
wdlth
2017-11-12 21:55:04 +08:00
语法树叫 Lemon Tree 么?
qdwang
2017-11-12 22:08:48 +08:00
不错 虽然品味堪忧 但是找工作甩出这个项目 人家还是会给你加分不少
Cbdy
2017-11-13 01:18:00 +08:00
我也想问相比 lua 优势在哪。。
Technetiumer
2017-11-13 01:18:57 +08:00
@Cbdy 语法好看?
Technetiumer
2017-11-13 01:19:14 +08:00
@wdlth 😂😂😂
SlipStupig
2017-11-13 01:59:44 +08:00
我感觉是一个模仿 go 语言并可以运行 js 风格的 python 代码解释器
cs8425
2017-11-13 02:48:46 +08:00
還沒看 code...先弱弱的問一下...
coroutine 支援多核嗎?
還是說要自己包 thread 再處理?
如果能像 go 那樣搞會很實用啊
另外希望多一點 example code
尤其是網路跟 coroutine 的部份
zhicheng
2017-11-13 03:42:43 +08:00
@cs8425 头回听说 coroutine 要支援多核,lemon 的 coroutine 就是标准的 coroutine,可以参考 wikipedia 的定义。lemon 里完全没有线程的概念,和标准 C 里面也没有线程一样。如果需要线程,可以自己开几个线程然后每个线程运行一个 VM。

@SlipStupig 请问哪里模仿 Go 语言了呢?我除了知道 Go 语言定义函数用 func 其它的就不知道了呢。

@qdwang 请问品味是指什么呢?我已经退出怪异语法俱乐部好多年了。我觉得我设计的语法很“标准”,正常人都能看得懂。计算机科学是实用科学,不是艺术科学。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/405696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX