实现编程语言

编译与解释导论
作者:Aarne Ranta,附录由Markus Forsberg合著

2017-10-23新增:勘误表列表在里面github

出版物详细信息

阿内·兰塔,实现编程语言。 编译程序和解释程序简介,与Markus Forsberg合著的附录,大学出版社,伦敦,2012年。国际标准图书编号978-1-84890-064-6

出版商的网页

在哪里购买

亚马逊网站$18.00

亚马逊网站£11.00

配音.se163瑞典克朗

克雷莫纳135瑞典克朗

学院出版物,卷16英寸计算机系列

作者

阿内·兰塔,http://www.cse.chalmers.se/~阿恩/

马库斯·福斯伯格,http://spraakbanken.guse/personal/markus/

瑞典哥德堡大学

目的

这本书的意思是教科书对于计算机科学专业的学生,2年及以后。

它还可用作自学书在某种程度上BNFC工具手册(BNF转换器).

这本书基于为课程创建的材料程序设计语言技术查尔默斯科技大学和瑞典哥德堡大学。该课程自2007年起每年由作者授课。这本书还包括继续课程的一些材料编译器构造,作者于2002年至2006年任教。

描述

实现编程语言意味着缩小与程序员对机器的零和一的高级思考。如果以高效可靠的方式进行,程序员可以专注于他们必须解决的实际问题,而不是机器的细节。但要了解整体从语言到机器的链条仍然是培训的重要组成部分任何严肃的程序员。这将产生一个更有能力的程序员,此外,世卫组织还将能够开发新的语言。新语言通常是解决问题的最佳方法,而且比听起来要简单。

本书遵循基于理论的实践方法,其中理论模型是实际编码的蓝图。引导读者构建编译器和解释器以易于理解和可扩展的方式。解决方案是而且可移植到不同的实现语言。许多实际代码是从通过使用BNF Converter工具,实现语言的语法。其余的可以用Haskell或Java编写提供了详细的指导,但在C、C++、C#、,或OCaml,由BNF Converter支持。

这本书的重点是标准命令和功能语言:C++的子集和Haskell的子集是源代码语言,Java虚拟机是主要目标。简单Intel显示x86本机代码编译以完成来自语言到机器。最后一章留下了标准路径和探索从最小图灵完备到语言设计的空间自然语言中的语言与人机交互。

目录

作业

以下是一些作业的初步版本;完整版本即将到来。特别是测试套件和代码模板将被延长。

1C的分析器++

2CPP类型检查器

三。CPP口译员

4CPP代码生成器

5趣味口译员

6一种特殊用途的语言

幻灯片

第1章,编译阶段

第2章,语法

第三章,词法和句法分析

第4章,类型检查

第五章口译员

第6章,代码生成

第7章,函数式编程语言

第八章语言设计空间

练习

电子自学练习

一套练习来自相关课程,解决对其中一些人来说。

代码示例

CPP语法(第二章)

查询语言(第8章);也作为web演示

软件链接

英国国家金融公司

预编译Java工具(Cup和JLex)

茉莉花

GF公司

在线参考出版物链接

保罗·卡特,PC组装教程.

保罗·格雷厄姆,散文

马克·琼斯,输入Haskell

泽维尔·勒罗伊,编译函数式语言

西蒙·佩顿·琼斯和大卫·莱斯特,实现函数语言:教程,

埃里克·雷蒙德,Unix编程的艺术,

R.Stallman,使用和移植GNU编译器集合

S.Thompson,类型理论与函数编程

勘误表

第一版中有不少错别字,还有一个勘误表github.请在那里报告你自己的错误!我们很感激安德烈亚斯·阿贝尔以及他的助手和学生创建这个列表。