在 2012年3月7日 上午9:49,agentzh <age...@gmail.com> 写道:
> On Wed, Mar 7, 2012 at 9:34 AM, yi huang <yi.cod...@gmail.com> wrote:
>>
>> 同感兴趣,貌似这个才是这套系统能否成功的关键所在。
>>
>> 2012/3/6 Zoom.Quiet <zoom...@gmail.com>
>>>
>>> 由Lua 粘合的Nginx生态环境 -- agentzh tech-club.org 演讲听录整理过程中:
>>>
>>> http://blog.zoomquiet.org/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html
>>> 最感兴趣的是:
>>> - 在 openresty 基础上,可以高效完成高层模块的定制
>>> - 比如说,几百行的 mysql 封装模块
>
>
> 见这里:https://github.com/agentzh/lua-resty-mysql
>
>>>
>>> - 而且,针对领域业务,可以快速形成专用语言(DLS)
>
>
> 是 DSL 吧?呵呵。这个不是 ngx_openresty 本身提供的服务,至少目前还不是。
>
>>> - 约束业务实现时常见錯誤
>>> - 同时,可以在编译器中对已知事务进行尽可能的优化
>>>
>>> 问:
>>> - 这里的业务约束语言,是否有开源实例可以参考?
>
>
> 这里说的是我为量子统计设计的 LZSQL 语言,暂时还没有开源,但有一份公开的手册文档:
>
> http://www.agentzh.org/misc/nginx/lzsql-manual.html
>
>>>
>>> - 所謂,编译不是 LuaJIT ?
>
>
> 对于 LZSQL 而言,Lua 是目标代码。所以它有自己的编译过程。从 Ruby 社区的术语来说,LZSQL 属于 External DSL :)
>
>>>
>>> - 在什么阶段,怎么对 Lua 代码的生成进行优化?
>
>
> 在生成 Lua 代码的阶段。
>
>>>
>>> - 是否使用语法生成工具,在 Lua 之上进行語言实现? 具体怎么作的?
>>>
>
> 使用了 Perl 5 世界的 Parse::RecDescent 模块:
>
> http://search.cpan.org/perldoc?Parse::RecDescent
>
> 我正在将之移植到 Lua 世界:
>
> https://github.com/agentzh/ru-RecDescent
>
- 嗯嗯嗯 !非常简洁的思路!
- 这样就变成用 Lua 优化 Lua 的 DSL !?
- 这绝对是当 openresty 无法跟上用户快速变化的业务时,必然的一个选择
- 可以先提供比较简单的功能模块化管理
- 比如象 luarocks 那样的快速自制应用模块的发布/升级/管理
- 慢慢的,变成支持快速定制业务 DSL 的語言生成器 ;-)
> Best regards,
> -agentzh
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/