基本信息
- 作者: [英] 戈登·F.威廉姆斯(Gordon F.Williams)范志东 张琼声
- 出版社:机械工业出版社
- ISBN:9781911251635
- 上架时间:2019-11-25
- 出版日期:2019 年10月
- 开本:16开
- 页码:290
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > javascript

内容简介
计算机书籍
---------------------------自己动手做智能产品:嵌入式JavaScript实现---------------------------
本书将通过简单的嵌入式编程,教会大家如何将日常物品转变为智能机器。当然市场中的ARM编程书籍多为平淡的教科书,相对复杂,编程语言对于初学者存在一定难度,本书采用读者易学易懂的编程语言,并结合实际动手操作来帮助读者实现产品智能化。
---------------------------自己动手构造编译系统:编译、汇编与链接---------------------------
本书以作者实现的一个基于Intelx86指令集的编译系统为例,结合程序代码的主要部分详细阐述了编译系统的实现原理和过程。本书对编译器、汇编器、链接器、编译优化器涉及的关键算法、数据结构和程序实现流程,以及ELF文件的格式、Intel指令格式均作了详细的说明,并结合大量的图表,展示了编译系统工作过程中代码信息的流动和存储格式的变化。是一本“手把手”教读者实现编译系统的贴心手册。
作译者
---------------------------自己动手构造编译系统:编译、汇编与链接---------------------------
范志东,就职于腾讯数据平台部,负责腾讯大数据平台的产品化,涉及自动化部署、应用调度、交互分析、集群监控、性能调优等,对开源工具Ambari、Hadoop、Spark等有深入的了解。在校期间屡次获得国家奖学金和励志奖学金。独立开发了基于Intel x86指令集的自定义类c语言的编译系统,包括编译器、汇编器与链接器的实现,对计算机程序的加载和运行原理有深刻的认识。深入分析过Linux内核关于CPU功耗方面的代码。爱好广泛,对编程语言、操作系统、编译系统、计算机安全、分布式系统有着浓厚的兴趣。闲暇时会在技术博客上分享自己的学习心得,期望通过互联网把获得知识的快乐心情传递出去。参与了“十一五”校级立项正式出版教材《汁算机操作系统原理》以及全国自学考试教材《计算机应用技术》编写的相关工作。 张琼声,湖北省松滋县人,中国石油大学(华东)计算机与通信工程学院副教授,硕士生导师。主讲课程:《操作系统》《操作系统课程实习》和《嵌入式操作系统》。主持的《计算机操作系统》课程被评为校级精品课,先后获得中国石油大学**教学研究成果一、二、三等奖各一项;曾获评中国石油大学**教师、山东省**学士论文指导教师;主持或参与科研、教研项目十四项。专业及研究兴趣为系统软件开发技术,包括:操作系统、编译系统、计算机系统安全性。发表科研、教学论文二十余篇。参与翻译《深入理解Linux内核》第3版,编*“十一五”校级立项正式出版教材《计算机操作系统原理》、主编全国自学考试教材《计算机应用技术》。
目录
---------------------------自己动手做智能产品:嵌入式JavaScript实现---------------------------
前言 1
第1章 简介 5
为何要将物品智能化 5
在实践中学习 5
利用JavaScript进行创造 6
工具和材料 7
第一部分 微控制器
第2章 微控制器为何物 13
ARM历史 14
利用微控制器编程 15
第3章 Espruino入门 19
准备工作 20
插入接口 21
软件安装 22
前言
---------------------------自己动手做智能产品:嵌入式JavaScript实现---------------------------
人类的想象力可以说是永无止境的,“创造”(making)这个词可以说是最适合描述人类经历的词汇之一了,它包括作画、设计、建造或者编程。回望自己所创之物,心中浮起 “这是我创造的”念头——这可以说是我所知的最美妙感觉之一了。
时至今日,我们已不单单能创建那些无生命物体,还可以让那些原本无生命的物体变得栩栩如生,让物体变得更加“聪明”。本书会告诉你如何利用微控制器让物体变得可编程化。
通过日常生活中的物品和技能学习,你将可以学习到如何创造数码相机、打印机、机器人,或者早期的电视机等。只要往下看,你会了解你日常所用的物品是如何组成的以及它们背后那些关于创造的故事,也将学会如何使用目前世界上数百万Web工程师正在使用的计算机语言——JavaScript。因为有了计算机语言解释器的帮助,你将见到你所添加的一行行代码实际产生的影响。
我喜欢在生活中创造并完成一件事情。希望本书可以激励你去创造和学习,并在其中找到乐趣。
本书排版约定
本书使用以下排版约定:
斜体(Italic)
用于菜单项、URL链接、邮件地址、文件名和文件扩展名。
等宽字体(?Constant width?)
用于程序清单,或者是所引用的程序元素,如变量或函数名、数据类型、语句和关键字。
等宽粗体(?Constant width bold?)
用于表示命令或是读者应输入的其他内容。
等宽斜体(?Constant width italic?)
用于表示需要由用户提供的值或者根据上下文确定的值所替换的内容。
序言
---------------------------自己动手构造编译系统:编译、汇编与链接---------------------------
小范从本科毕业设计开始写编译器的实现代码,为他选择这个题目的初衷是希望把编译系统与操作系统、计算机体系结构相关的结合点找出来、弄清楚,为教学提供可用的实例。本科毕业设计结束时小范完成了一个最简单的C语言子集的编译器,生成的汇编程序经过汇编和链接后可以正确执行。研究生期间我们决定继续编译系统实现技术方向的研究工作,主要完成汇编器和链接器这两大模块。小范用一颗好奇、求知的心指引自己,利用一切可以搜集到的资料,用“日拱一卒”的劲头一步一步接近目标。每天的日子都可能有不同的“干扰”——名企的实习、发论文、做项目、参加竞赛、考认证,身边的同学在快速积攒各种经历和成果的时候,小范要保持内心的平静,专注于工作量巨大而是否有回报还未曾可知的事情。三年的时间里,没有奖学金,没有项目经费,有的是没完没了的各种问题,各种要看的书、资料和要完成的代码,同时还要关注大数据平台、编程语言等新技术的发展。
“汇编器完成了”“链接器完成了”,好消息接踵而至。小范说,“把编译器的代码重写一下,加上代码优化吧?”我说“好”,其实,这个“好”说起来容易,而小范那里增加的工作量可想而知,这绝不是那么轻松的事情。优化的基本原理有了,怎么设计算法来实现呢?整个编译器的文法比本科毕业设计时扩充了很多。编译器重写、增加代码优化模块、完成汇编器和链接器,难度和工作量可想而知。每当小范解决一个问题,完成一个功能,就会非常开心地与我分享。看小范完成的一行行规范、漂亮的代码,听他兴奋地讲解,很难说与听郎朗的钢琴协奏曲《黄河之子》、德沃夏克的《自新大陆》比哪一个更令人陶醉,与听交响曲《嘎达梅林》比哪一个更令人震撼。当小范完成链接器后,我说:“小范,写书吧,不写下来太可惜了。”就这样,小范再次如一辆崭新的装甲车,轰隆前行,踏上了笔耕不辍的征程。2015年暑假,细读和修改这部30多万字的书稿,感慨万千,完成编译系统的工作量、四年的甘苦与共、超然物外的孤独都在这字里行间跳跃。写完这部原创书对一个年轻学生来说是极富挑战的,但是他完成了,而且完成得如此精致、用心。
小范来自安徽的农村,面对生活中的各种困惑、困难,他很少有沮丧、悲观的情绪,永远有天然的好奇心,保留着顽童的天真、快乐与坦率。他开始写本书时23岁,完成全书的初稿时25岁。写编译系统和操作系统内核并非难以企及,只是需要一份淡然、专注和坚持。
如果你想了解计算机是如何工作的,为什么程序会出现不可思议的错误?高级语言程序是如何被翻译成机器语言代码的?编译器在程序的优化方面能做哪些工作?软件和硬件是怎么结合工作的?各种复杂的数据结构和算法,包括图论在实现编译系统时如何应用?有限自动机在词法分析中的作用是什么?其程序又如何实现?那么本书可以满足你的好奇心和求知欲。如何实现编译系统?如何实现编译器?如何实现汇编器?如何使用符号表?如何结合操作系统加载器的需要实现链接器?Intel的指令是如何构成的?如何实现不同的编译优化算法?对这些问题,本书结合作者实现的代码实例进行了详尽的阐述,对提高程序员的专业素质有实际的助益,同时本书也可以作为计算机科学相关专业教师的参考书和编译原理实习类课程的教材。
2013年在新疆参加全国操作系统和组成原理教学研讨会时,我带着打印出来的两章书稿给了机械工业出版社的温莉芳老师,与她探讨这本书出版的意义和可行性,她给了我们很大的鼓励和支持,促成了本书的完成。在此,特别感谢温莉芳老师。
本书的责任编辑佘洁老师与作者反复沟通,对本书进行了认真、耐心的编辑,感谢她的辛勤付出。
中国石油大学(华东)的李村合老师在编译器设计的初期给予了我们指导和建议。马力老师在繁忙的工作之余,认真审阅书稿,给出了详细的修改意见。王小云、程坚、梁红卫、葛永文老师对本书提出了他们的意见,并给出了认真的评价。赵国梁同学对书中的代码和文字做了细心的校对。在此,对他们表示衷心的感谢。最后要感谢小范勤劳、坚韧的爸爸妈妈,是他们一直给予他无私的支持和持续的鼓励。
感恩所有给予我们帮助和鼓励的老师、同学和朋友!
张琼声
2016年春于北京
媒体评论
---------------------------自己动手做智能产品:嵌入式JavaScript实现---------------------------
在这个一体化产品的时代,本书从基础的内容开始,展示了如何利用Espruino微控制器和日常用品制造出属于自己的扫描仪、绘图仪和照相机等智能产品。
本书教读者利用目前互联网上颇受欢迎的编程语言之一JavaScript在Espruino上编程,制造出激动人心的智能产品。在丰富的线上支持和资源的帮助下,Esrpuino将JavaScript带入了智能设备的世界!
在完成本书的项目的过程中,读者会提升自己的技能和知识水平,拥有将生活中的创意变成现实智能产品的能力。
利用Espruino和生活中的一些日常用品,你将学到:
? 什么是微控制器以及如何用它编程
? 如何用JavaScript写代码
? 如何用软木酒塞制作马达
? 如何自制酷炫闪光测速仪
? 如何制作简单机器人
? 如何制作专属的低分辨率扫描仪
? 如何从基础开始制作一个可工作的打印机
? 如何构建一个数码相机
? 等等
制作这些有趣的设备,并不需要惊人的技能、工具或者昂贵的组件。作为初学者和中级创客的首选教程,本书会让你了解日常智能产品的原理以及如何获取所需要的工具。利用JavaScript和Espruino 亲手制作属于你自己的智能物品吧!