网站大量收购闲置独家精品文档,联系QQ:2885784924

七周七语言:理解多种编程范型 第一章.pdf

七周七语言:理解多种编程范型 第一章.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
七周七语言:理解多种编程范型 第一章.pdf

第1 章 简介 1.1 不走寻常路 《七周七语言:理解多种编程范型》本书共介绍了七种不同的编程语言。对于每种语言,分别介绍了各自的特性、应用, 以及编程入门知识和关键编程范型,还带领读者使用能够代表该语言最重要特性的技术,解决某个不寻常的问题,使其 充分掌握每种语言。本节为大家介绍不走寻常路。 AD: 第 1 章 简介 人们出于各种目的学习自然语言。学母语是为了生存,为了日常生活中与人正常交往。学外语的目的可就五花八门 了。有时候,为了未来的职业发展或为了适应日益变化的生活环境,你不得不学习外语;但有时候,你决心征服一门外 语,不是因为不得不这么做,而是因为发自内心地想学。外语能带你领略一片未曾见过的风景。你甚至可能领悟一个道 理:每学一门新的语言,思维方式都会发生改变。 编程语言亦是如此。在这本书中,我将为你介绍七门各不相同的语言。不过,我不会像你的妈妈那样将吃的直接喂 到你嘴边。我更愿意做你的导游,带你体验一次启迪心智之旅,并由此改变你看待编程的视角。写这书的目的不是让你 成为专家,而是教会你比Hello, World更实用的知识。 1.1 不走寻常路 假如我想新学一门编程语言或一种编程框架,一般会找一篇速成互动教程看看。因为这类教程中,先做什么、后做 什么都已精心设计好。通过它们,我们可以更容易体会语言的妙处所在。当然,扔掉教程,直接动手实践也未尝不可, 但说白了,我就是想尽快发现语言的动人心弦之处,尽快对它的语法糖 和核心概念有个大体印象。 然而多数情况下,我找不到称心如意的教程。受到篇幅限制,那些教程往往只介绍各门语言间相去无几的皮毛。而 这些皮毛,我又早已熟知。若想领会一门语言的精髓,它可就无能为力了。我想要的是那种痛快淋漓、深入探索语言本 质的感觉。 本书将会给你这种感觉。不是一次,而是七次。你将从书中找到以下问题的答案。 语言的类型模型是什么?强类型(Java)或弱类型(C 语言),静态类型(Java)或动态类型(Ruby)。本书侧重 于介绍强类型语言,但各种静态类型和动态类型语言也都有所涉及。你将看到,语言在类型模型间的权衡会对开发者产 生何种影响。语言的类型模型会改变你对问题的处理方式,还会控制语言的运行方式。就类型模型而言,书中的每门语 言都堪称独树一帜。 语言的编程范型是什么?是面向对象(object-oriented,OO)、函数式、过程式,还是它们的综合体?本书介绍 的语言涵盖了4 种编程范型,有些语言还由几种范型组合而成。你将看到一门基于逻辑的编程语言(Prolog)、两门完 全支持面向对象思想的语言(Ruby 和Scala)、四门带有函数式特性的语言(Scala、Erlang、Clojure 和Haskell)及 一门原型语言(Io)。这里有Scala 这样的多范型(multiparadigm)语言,也有Clojure 这种多方法(multimethod) 语言,后者甚至允许你实现自定义范型。本书最重要的任务之一,就是学习新的编程范型。 怎样和语言交互?语言可编译也可解释,可以有虚拟机也可以没有。在本书中,如果某门语言带交互命令行,将先 通过交互命令行探索这门语言,当我们处理规模较大的项目时,还会转而采用文件编程。我们接触的项目不会特别大, 因此无需深入研究打包(packaging)模型。 语言的判断结构(decision construct)和核心数据结构是什么?或许你会惊讶,在作判断时,居然如此多的语言 都用到了与if 和while 的各种变型都不相同的结构。你会见识到Erlang 的模式匹配,还有Prolog 的合一 (unification) 。至于数据结构,集合(collection)在任何语言中都扮演着至关重要的角色。对Smalltalk 和Lisp 这类语言,集合刻画了语言特征,而在C++和Java 等语言中,集合更可谓无所不在,它们决定着用户体验,若没了它们, 语言势必成为一盘散沙。因此,无论用哪一类语言,都必须全面、透彻地理解集合。 哪些核心特性让这门语言与众不同?有些语言支持并发编程的高级特性,有些语言提供独一无二的高级结构,比如 Clojure 的宏(marco)和Io 的消息解释(message interpretation);有些语言包含性能强劲的虚拟机,如Erlang 的 BEAM,它能让 Erlang

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档