厦门大学研究生课程 《大数据处理技术 Spark》 http://dblab.xmu.educn/post/7659/ 湿馨提示:编幻灯片母版,可以修改每页PPT的厦大校傲和底部文字 第2章Scaa语言基础 口高回 (PPT版本号:2017年春季学期) 林子雨 厦门大学计算机科学系 扫一扫访问班级主页 E-mail:ziyulin@xmu.edu.cnA 主页http://www.cs.xmu.edu.cn/linziyu 厦门大学计算机科学系 2017年版
《大数据处理技术厦门大学计算机科学系 Spark》 厦门大学计算机科学系 林子雨 2017年版ziyulin@xmu.edu.cn 林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页:http://www.cs.xmu.edu.cn/linziyu 第2章 Scala语言基础 (PPT版本号:2017年春季学期) 厦门大学研究生课程 《大数据处理技术Spark》 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 扫一扫访问班级主页 http://dblab.xmu.edu.cn/post/7659/
提纲 21 Scala语言概述 22Scaa基础 23面向对象编程基础 24函数式编程基础 pork 子雨大数据之 Spark.入门教程 披荆斩棘,在大数据丛林中开辟学习捷径 厦门大学林子雨 免费在线教程:htp:/ dblab xmu. edu. cn/blog/ spark 《大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 yulin@xmu.edu.cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 提纲 • 2.1 Scala语言概述 • 2.2 Scala基础 • 2.3 面向对象编程基础 • 2.4 函数式编程基础 免费在线教程:http://dblab.xmu.edu.cn/blog/spark/
勇2.1 Scala语言概述 2.1.1计算机的缘起 2.1.2编程范式 2.1.3 Scala简介 《大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1 Scala语言概述 2.1.1 计算机的缘起 2.1.2 编程范式 2.1.3 Scala简介
2.1.1计算机的缘起 数学家阿隆佐邱奇( Alonzo church)设计了“λ演算”,这 是一套用于研究函数定义、函数应用和递归的形式系统 演算被视为最小的通用程序设计语言 λ演算的通用性就体现在,任何一个可计算函数都能用这种 形式来表达和求值 λ演算是一个数理逻辑形式系统,强调的是变换规则的运用, 而非实现它们的具体机器 《大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.1 计算机的缘起 •数学家阿隆佐•邱奇(Alonzo Church)设计了“λ演算”,这 是一套用于研究函数定义、函数应用和递归的形式系统 •λ演算被视为最小的通用程序设计语言 •λ演算的通用性就体现在,任何一个可计算函数都能用这种 形式来表达和求值 •λ演算是一个数理逻辑形式系统,强调的是变换规则的运用, 而非实现它们的具体机器
2.1.1计算机的缘起 英国数学家阿兰图灵采用了完全不同的设计思路,提 出了一种仝新的抽象计算模型——图灵机 ˉ图灵机是现代计算杋的鼻祖。现有理论已经证明,λ演 算和图灵机的计算能力是等价的 大数据处理技术 Spark》 厦门大学计算机科学系 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.1 计算机的缘起 •英国数学家阿兰·图灵采用了完全不同的设计思路,提 出了一种全新的抽象计算模型——图灵机 •图灵机是现代计算机的鼻祖。现有理论已经证明,λ演 算和图灵机的计算能力是等价的
2.1.1计算机的缘起 冯·诺依曼( John von neumann)将图灵的理论物化成为 实际的物理实体,成为了计算机体系结构的奠基者 1945年6月,冯·诺依曼提出了在数字计算机内部的存储器 中存放程序的概念,这是所有现代计算机的范式,被称为 “冯·诺依曼结构” 输入设备 存储器 输出设备 ▲ 运算器 控制器 数据流 指令流 →>控制流 《大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 yulin@xmu.edu.cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.1 计算机的缘起 •冯·诺依曼(John Von Neumann)将图灵的理论物化成为 实际的物理实体,成为了计算机体系结构的奠基者 •1945年6月,冯·诺依曼提出了在数字计算机内部的存储器 中存放程序的概念,这是所有现代计算机的范式,被称为 “冯·诺依曼结构
2.1.2编程范式 编程范式是指计算杋编程的基本风格或典范模式。常见的 编程范式主要包括命令式编程和函数式编程。面向对象编 程就属于命令式编程,比如C++、Java等 命令式语言是植根于冯·诺依曼体系的,一个命令式程序 就是一个冯·诺依曼机的指令序列,给机器提供一条又一条 的命令序列让其原封不动地执行 函数式编程,又称泛函编程,它将计算机的计算视为数学 上的函数计算 函数编程语言最重要的基础是λ演算,λ演算对函数式编程 特别是Lisp语言有着巨大的影响。典型的函数式语言包括 Haskell Erlang和Lisp等 《大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.2 编程范式 •编程范式是指计算机编程的基本风格或典范模式。常见的 编程范式主要包括命令式编程和函数式编程。面向对象编 程就属于命令式编程,比如C++、Java等 •命令式语言是植根于冯·诺依曼体系的,一个命令式程序 就是一个冯·诺依曼机的指令序列,给机器提供一条又一条 的命令序列让其原封不动地执行 •函数式编程,又称泛函编程,它将计算机的计算视为数学 上的函数计算 •函数编程语言最重要的基础是λ演算,λ演算对函数式编程 特别是Lisp语言有着巨大的影响。典型的函数式语言包括 Haskell、Erlang和Lisp等
2.1.2编程范式 个很自然的问题是,既然已经有了命令式编程,为什 么还需要函数式编程呢? 为什么在C++、Java等命令式编程流行了很多年以后, 近些年函数式编程会迅速升温呢? 0. 000, 000 ual-Core Itanium 2 命令式编程涉及多线程之间 Intel CPU Trend 的状态共享,需要锁机制实 (sources: Intel, Wikipedia, K. Olukotun) 现并发控制 10,000 函数式编程不会在多个线程 Pentium> 1,000 之间共享状态,不需要用锁 机制,可以更好并行处理, 充分利用多核CPU并行处理 能力 197019751980198519901995200020052010 大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.2 编程范式 •一个很自然的问题是,既然已经有了命令式编程,为什 么还需要函数式编程呢? •为什么在C++、Java等命令式编程流行了很多年以后, 近些年函数式编程会迅速升温呢? •命令式编程涉及多线程之间 的状态共享,需要锁机制实 现并发控制 •函数式编程不会在多个线程 之间共享状态,不需要用锁 机制,可以更好并行处理, 充分利用多核CPU并行处理 能力
213 Scala简介 Scala是一门类Java的多范式语言,它整合了面向对象编程 和函数式编程的最佳特性。具体来讲 Scaa运行于Java虚拟机(JWM)之上,并且兼容现有的 Java程序 Scaa是一门纯粹的面向对象的语 Scaa也是一门函数式语言 大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.3 Scala简介 Scala是一门类Java的多范式语言,它整合了面向对象编程 和函数式编程的最佳特性。具体来讲: •Scala运行于Java虚拟机(JVM)之上,并且兼容现有的 Java程序 •Scala是一门纯粹的面向对象的语言 •Scala也是一门函数式语言
2.14Scaa的安装和使用方法 scala运行于Java虚拟机(JⅥM)之上,因此只要安装有相应的Java虚拟机 所有的操作系统都可以运行 Scala程序,包括 Window、 Linux、Unⅸ、Mac OS等。 2141安装Java 2142安装Scaa 21.4.3使用 Scala解释器 2144第1个 Scala程序: Helloworld ·具体可以参照厦门大学数据库实验室网站博客: .http.:dblab.xmu.edu.cn/blog/929-2/ 《大数据处理技术 Spark》 厦门大学计算机科学系 林子雨 zyulInoxmueau cn
《大数据处理技术Spark》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 2.1.4 Scala的安装和使用方法 •Scala运行于Java虚拟机(JVM)之上,因此只要安装有相应的Java虚拟机, 所有的操作系统都可以运行Scala程序,包括Window、Linux、Unix、 Mac OS等。 •2.1.4.1 安装Java •2.1.4.2 安装Scala •2.1.4.3 使用Scala解释器 •2.1.4.4 第1个Scala程序:HelloWorld •具体可以参照厦门大学数据库实验室网站博客: •http://dblab.xmu.edu.cn/blog/929-2/