演讲: Parser组合子——从玩具到专业工具
很多现代命令式语言,例如C#或Python,都吸收了相当多的函数式语言特性,从而能够用比以往简单得多的语法实现语法分析器(或Parser)。许多开发人员都以能够用华丽而简洁的语法实现Parser甚至Parser生成器为荣。利用函数式语言的特性,这些语言都可以实现一种称作组合子的逻辑来生成Parser。组合子可以将基本的语法元素用函数式的语法加以组合,优雅地表达各种语法的同时将Parser本身实现出来。然而,尽管最简单的Parser组合子只需要数行代码即可实现,但它的功能和性能尚无法达到实用阶段。在真实世界,我们希望语法分析器能够报告出文本当中所有的语法错误,而不仅仅是在第一个语法错误上抛出异常。这就需要Parser具有错误恢复的能力。此外,大部分编程语言的文法,若采用左递归的形式通常都会更加简洁直观,有些语言甚至要利用一些带有歧义的文法。而最简单的组合子Parser不仅不能够进行错误恢复,支持的文法也仅限于不支持左递归的LL类型。
本次演讲将从一个数行代码就能写出的,优雅漂亮但不实用的玩具级Parser组合子开始,逐渐增强为带有错误恢复,并且支持全部上下文无关文法,甚至是歧义文法的专业级Parser组合子的过程,着重展示了成熟语法分析的算法与现代语言相结合的设计理念。
演讲专题
Covering innovative topics
10月15日,星期四
-
可扩展、高可用架构
很多互联网(包括移动)业务成长非常迅速,在系统搭建之初和成长阶段就需要充分考虑系统架构设计,以满足在稳定性、扩展性、性能和成本方面的要求。
-
新时代的前端
最近几年,Web前端领域的新标准、新框架、新工具、新理念不断涌现。今年6月,ES6正式发布,也标志着Web前端已经进入了一个全新的时代!
-
运维之痛
最近互联网公司接二连三的故障,黑天鹅事件层出不穷,让我们更加体会到了运维人员的痛苦。谁来拯救我们苦逼的IT运维工程师!
-
技术创业
分享技术人创业案例,揭示背后的技术选型,人才招聘与培养等背后故事。
-
开源实践
很多企业都在拥抱开源,开源能给公司带来哪些好处?又有什么样的问题?
-
数据分析与移动开发工具专场
本专场将邀请来自大数据及移动应用服务相关供应商的Hadoop、机器学习、即时通讯等领域的技术专家,分享各自在全民大数据化背景下的最新技术实践经历,内容涉及前端数据收集、数据分析模型、数据安全等多个方面。
10月16日,星期五
-
新语言与新发展
现代软件开发,已经进入一个普遍的复杂系统的时代。了解编程语言的发展趋势,对我们是一件有意义且有趣的过程。本期我们邀请几位专家,介绍这几年进入应用领域的新语言和新特性。
-
新兴大数据处理
大数据的批量处理框架趋于完善,业务还需要什么?更大规模的内存和实时计算?更便捷的用户数据交互和触达?更高效的业务驱动?还是来自物联世界的数据接入?
-
移动开发新趋势
移动互联网是这些年发展最快的技术领域,也是机会最多的领域,从无到有的这几年,这个领域已经吸引了大量的工程师,资金和创业项目,在这个迅速变化的时代,在这个变化最快的领域,我们都需要随时保持学习。
-
建设高效团队
团队的特点就在于具有统一的目标,并且成员可以为其通力协作。在本话题中我们会讨论,如何建设起高效的团队,并使其一直保持高昂的战斗力,高速、高质地完成各种任务。
-
大规模软件持续交付与改进
越来越多的大型企业在市场残酷的冲击下,需要快速地转变以应对市场的快速变化,其中最重要的是如何缩短产品上市周期。通过一组精彩的真实案例,看看“别人家”如何快速持续交付及改进。
-
公有云服务与基础设施建设专场
本专场将邀请多位来自云服务供应商的CDN、容器、OpenStack技术工程师,分享最新的云计算实践经历,探讨云服务及IT基础设施建设的发展趋势,内容涵盖微服务架构开发、持续交付实践、网络加速等热门话题。
10月17日,星期六
-
Java问题诊断与性能优化实践
当Java系统变得日趋纷繁复杂,背后日益凸显的性能问题就会变得越发的举足轻重。本专题会从不同角度,多领域,结合云计算,大数据的当下,审视和关注在不同层次上,不同领域内Java性能问题以及优化实践。
-
安全与隐私
应对安全挑战。
-
容器与云计算
Docker容器和集群管理技术的背后是什么原理,能解决什么问题,有什么最新进展?关注Docker容器技术, Mesos等集群管理技术的原理和实践,容器相关的云计算服务。
-
基于大数据的机器学习技术
本专题将介绍业界最为前沿的大数据和机器学习技术,以及它们在搜索、推荐和数据挖掘等场景下的应用实践。我们邀请了国内一线互联网公司的技术精英们,看他们是如何利用机器学习技术让大数据产生真正价值的。
-
互联网产品案例研究
通过一组经典互联网产品案例分析,看看他们在产品开发过程中对设计、技术和市场等因素的决策过程,是如果一步步走到今天的产品形态的,曾经放出哪些大招或者下出哪些臭棋。
-
开发平台与服务技术实践专场
本专场将邀请来自应用开发平台及服务供应商的资深研发工程师、高级程序员及技术专家,分享敏捷开发、搜索引擎优化、容器应用管理等方面的技术实践与创新经验,以及应用开发领域目前所面临问题的解决之道。