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/