计算机与程序
计算机与程序
通用计算机 ·计算机是具有如下特征的机器: 一能够存储和处理信息 人输入→处理→输出 一信息处理由程序控制 人计算机程序是一个详细的逐步执行的指令序列, 告诉计算机该做什么. 人程序可改变:不同的程序完成不同的处理任务 ·人们造了各种各样的计算机,但:所有计算 机具有相同的能力! Lu Chaojun,SJTU 2
Lu Chaojun, SJTU 2 通用计算机 • 计算机是具有如下特征的机器: – 能够存储和处理信息 ©输入处理输出 – 信息处理由程序控制 ©计算机程序是一个详细的逐步执行的指令序列, 告诉计算机该做什么. ©程序可改变:不同的程序完成不同的处理任务. • 人们造了各种各样的计算机,但:所有计算 机具有相同的能力!
软件统治硬件 0 程序决定了计算机做什么. 一没有程序,计算机只是一堆废铁. ·程序设计:编写软件的过程. ·程序设计极具挑战性: - 既要具备大视野 一又要关注细枝末节 ·为何学程序设计? 一做计算机的主人 一乐趣 -培养问题求解能力 Lu Chaojun,SJTU 3
软件统治硬件 • 程序决定了计算机做什么. – 没有程序,计算机只是一堆废铁. • 程序设计:编写软件的过程. • 程序设计极具挑战性: – 既要具备大视野 – 又要关注细枝末节 • 为何学程序设计? – 做计算机的主人 – 乐趣 – 培养问题求解能力 Lu Chaojun, SJTU 3
什么是计算机科学? ·并非研究计算机! 计算机之于计算机科学家正如望远镜之于天文学家. (E.W.Dijkstra) CS研究计算的基础及其实现与应用. CS要回答的基本问题:什么是可计算的? - 对此问题的回答有三种方式: 人实际设计一个解决问题的算法 人理论分析问题的可解性 +无解的,不是能行可解的 人通过实验来研究问题 Lu Chaojun,SJTU 4
什么是计算机科学? • 并非研究计算机! – 计算机之于计算机科学家正如望远镜之于天文学家. (E. W. Dijkstra) • CS研究计算的基础及其实现与应用. • CS要回答的基本问题:什么是可计算的? – 对此问题的回答有三种方式: ©实际设计一个解决问题的算法 ©理论分析问题的可解性 ª无解的,不是能行可解的 ©通过实验来研究问题. Lu Chaojun, SJTU 4
硬件基本知识 CPU 输入设备 输出设备 主存 次级存储器 Lu Chaojun,SJTU 5
硬件基本知识 Lu Chaojun, SJTU 5 主存 CPU 输入设备 输出设备 次级存储器
硬件基本知识(续) ·中央处理器(CPU):执行运算. -只提供简单的运算,如加法,比较等。 。 存储器存储程序和数据. - CPU只能直接访问主存 一主存快但易失,次级存储器慢但持久 ·输入/输出设备:人与计算机交互 Lu Chaojun,SJTU 6
硬件基本知识(续) • 中央处理器(CPU):执行运算. – 只提供简单的运算,如加法,比较等. • 存储器存储程序和数据. – CPU只能直接访问主存. – 主存快但易失,次级存储器慢但持久 • 输入/输出设备:人与计算机交互 Lu Chaojun, SJTU 6
程序设计语言 ·问:用什么语言告诉计算机做什么? 答:用精确无歧义的程序设计语言. 一精确的语法和语义 ·有不同层次的程序设计语言 -计算机自己的母语:机器语言 人例如:0000010000000001.是Intel8086能理解的一条指令. - 把机器语言用助忆符表示:汇编语言 人上例即:ADD AL,1.需要汇编器处理后机器才懂. 一适合人用的语言:高级语言 人如:x=y+1.需要编译器或解释器翻译后机器才懂 Lu Chaojun,SJTU 7
程序设计语言 • 问:用什么语言告诉计算机做什么? 答:用精确无歧义的程序设计语言. – 精确的语法和语义 • 有不同层次的程序设计语言 – 计算机自己的母语:机器语言 ©例如: 0000010000000001.是Intel8086能理解的一条指令. – 把机器语言用助忆符表示:汇编语言 ©上例即: ADD AL,1.需要汇编器处理后机器才懂. – 适合人用的语言:高级语言 ©如: x = y + 1. 需要编译器或解释器翻译后机器才懂. Lu Chaojun, SJTU 7
高级语言 。 高级程序设计语言有很多种,据说2008年 网上被引用最多的10个语言是(按字母顺 序):C,C++,C#,Java,JavaScript,.Perl, PHP,Python,Ruby,SQL. ·高级语言的翻译 一编译:源代码编译成目标代码,再执行.一次编 译,多次执行. -解释:源代码直接被解释执行.每次执行都要 重新解释, Lu Chaojun,SJTU 8
高级语言 • 高级程序设计语言有很多种,据说2008年 网上被引用最多的10个语言是(按字母顺 序): C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, SQL. • 高级语言的翻译 – 编译:源代码编译成目标代码,再执行.一次编 译,多次执行. – 解释:源代码直接被解释执行.每次执行都要 重新解释. Lu Chaojun, SJTU 8
Python ·荷兰计算机科学家Guido van Rossum于1990年 发明. -特色:通用OOPL/跨平台开源/自由(免费) Python采用编译/解释混合方式:先编译成字节 码,再解释执行. 。安装Python2.x -与新的Python3.x有不兼容的地方. ·启动Python解释器 -命令行 -GUI IDLE Lu Chaojun,SJTU 9
Python • 荷兰计算机科学家Guido van Rossum于1990年 发明. – 特色:通用OOPL/跨平台/开源/自由(免费) • Python采用编译/解释混合方式:先编译成字节 码,再解释执行. • 安装Python 2.x – 与新的Python 3.x有不兼容的地方. • 启动Python解释器 – 命令行 – GUI:IDLE Lu Chaojun, SJTU 9
初识Python 。语句 ·串,数,表达式 ·变量与赋值 ·执行单条语句vs语句块(函数) ·函数 一定义,调用,参量,左缩进 ·模块(脚本)文件 ·注释 。应用实例:模拟(chaos.py) Lu Chaojun,SJTU 10
初识Python • 语句 • 串,数,表达式 • 变量与赋值 • 执行单条语句vs语句块(函数) • 函数 – 定义,调用,参量,左缩进 • 模块(脚本)文件 • 注释 • 应用实例:模拟(chaos.py) Lu Chaojun, SJTU 10