RobertoIerusalimschy回顾整理
晓胜回顾介绍
本次技术沙龙联合爱丁堡茶思屋,邀请到了里约热内卢宗座天主教大学信息学院的RobertoIerusalimschy教授,他是Lua编程语言的作者及首席架构师。Roberto给大家带来了主题为“LuaandPallene”的精彩演讲,介绍了Lua语言的设计初衷和应用场景,以及一种新的基于Lua的伴随语言Pallene。
讲座以介绍Lua开始,Lua语言是一种强大、高效、轻量级、可嵌入的脚本语言。它支持过程式编程、面向对象编程、函数式编程、数据驱动编程和数据描述。它将简单的过程式语法与基于关联数组和扩展语义的强大数据描述结构相结合,它是动态类型的,通过使用基于寄存器的虚拟机解释字节码来运行,并具有自动内存管理和增量垃圾收集,是配置、脚本和快速原型设计的理想选择。Reberto教授表示,动态类型语言的简单性和灵活性虽然使它们在原型设计和脚本编写方面很受欢迎,但由于缺乏编译时的类型信息,在生成高效的代码时面临很大的挑战。因此受到来自脚本,即时编译和可选类型系统的启发,他们决定开始设计Pallene。对比于Lua,Pallene是Lua的一种静态类型,提前编译的伴随语言,它专注于性能,目标是编写与Lua交互的性能敏感的代码。
紧接着,Roberto详细介绍了他对动态语言的现有优化方法如脚本化代码,即时编译技术(JIT),可选类型系统的思考。JIT编译被认为是动态语言优化方面最先进的技术,它在最初执行代码时并不进行任何优化,而是观察其运行时的行为,然后基于此生成高度定制和优化的代码。与更传统的脚本化方法比,可选类型系统保证了程序只涉及一种语言,程序员在程序中添加可选的类型注解来帮助编译器更有效的生成代码,这使得程序的静态和动态部分更容易相互作用。可选类型系统方法的利弊因人而异,因为每个类型系统是为不同的目的而设计的。比如说CommonLISP的可选类型注释允许编译器生成极其有效的代码,但是却没有任何保障。
一个值得特别