版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1C 语语 言言 程程 序序 设设 计计Spring 20072Lecture 1q程序设计的预备知识硬件模型软件模型程序设计语言C语言程序设计过程程序开发环境q阅读: Chapter 13Hardware Modelq 冯 . 诺依曼结构Secondary StorageInput DevicesOutput DevicesCPUMain Memory4ENIAC5IBM Blue Gene65536 PowerPC 440 700MHz CNK/Linux峰值:峰值:183500GFlops 核能研究核能研究典型应用场景p从磁盘加载程序到内存分配资源(内存 、文件);进程p执行线程调度p与
2、用户交互I/O管理;p存储文件系统67程序执行. . . . . . .LoaderCPUDiskMain MemoryMain Memory隐藏硬件8SoftwareHardwareOSApp1App2HardwareQ1:考虑:考虑“自助旅行自助旅行”和和“跟团跟团”的差别的差别?Q2:OS提供了什么?提供了什么?BIOS和OSpBIOS(基本输入输出系统)机器自检、引导服务例程pOS(Operating System)进程管理、线程调度(CPU)内存管理文件系统设备管理9模块化不要从轮子造起pOS提供了大量公共的基础服务(API)Kernel32.dll;User32.dll;GDI32
3、.dll。p运行时(CRT)、类库“输入” vs “input”竖排、自左向右等10OSApp1App2Hardware运行时运行时11Source code:void main() float angle,radian ; scanf(“%f”,&angle); radian = angle/180*3.1415; printf(“radian =%f”,radian); C程序基本结构G(x,y)=f(x)+h(x,y)f(x)=x*2+3;12开发工具链p编辑(Editer)p编译(Complier)独立编译p链接(Linker)静态(lib)动态(dll)p集成开发环境(IDE
4、)13objobj1obj2obj3exelib科学和工程p科学算法:建模,形式化工具证明高层抽象,不同的现实问题归结为一个eg.SNS中的好友推荐;C2B中的商品推荐p工程架构:实现,测试工具评价eg.C/S、B/S、P2P、云计算粘合剂14I/O设备p多样化硬件上需要扩展:总线软件上需要抽象:统一的编程接口p如何抽象OS提供管理机制要理解这些机制,根据应用的目标合理选择 轮询、中断 同步、异步15数据存储p文件系统(File system)p数据库(Database)关系型:SQLNoSQl16网络p结构:C/S、B/Sp协议:TCP/IP17q 程序自身的逻辑q 时间并行 vs 空间并行
5、q 靠编译器自动发现、硬件运行时调度q 并行编程计算性能(并行化)ABCD6 PM7891011 MidnightTaskOrderTime30 40 40 40 40 20现代Compiler的结构小结20语语 言言框架框架APISQL/XMLSocketOpenGL/DirectXOS、DB、Net算法算法架构架构21 Program(程序) q Program 机器指令的序列,表示了某个任务在计算机上是按什么样的步骤执行的。q 程序一般是存储在secondary storage (二级存储 e.g., CD or hard disk),比如以exe文件的形式存在,在执行时,首先由OS装载
6、到Memory(内存),再由CPU从内存中逐条的取出指令,执行,从而完成程序所表达的功能。 q 在整个阶段,程序都是以二进制的形式存在22Programming Languages (PL)谁能看懂谁能看懂 ?好一点了吧好一点了吧?23PL: Machine(机器) Languagesq 某个CPU 仅能理解自己的机器语言= 可移植性问题可移植性问题 在Motorola 68000, 下面的字节序列表示一条把register D3的值移动到地址为104的贮存单元中.在Intel 80486, 相同的字节序列表示不同的指令q 代码冗长,容易出错19249104024PL: Assembly(汇编
7、) Languagesq 采用类似英语的助记符号e.g. 前面的MC68000机器指令可以写成:MOVE D3, 104 更容易理解需要一个assembler (汇编器)翻译成机器指令不同的CPU有不同的指令集合e.g. MOVE D3, 104 在Intel 80486中是非法的,因为其中没有一个叫D3的register(寄存器)= portability problem(可移植性问题)25PL: High-level(高级) Languagesq 接近人类语言q 需要compiler/linker(编译器/链接器) 翻译成机器语言q 更好的可移植性 相同的程序代码可以运行在不同的机器上q
8、e.g. Fortran, COBOL, Pascal, Ada, Modula, C, C+, Lisp, Prolog, Java, Perl.26Example: 华氏转摄氏void main() float F, C ; scanf(“%f”,&F); C = 5 *(F-32) /9; printf(“C =%f”,C); 27PL: Compiler & LinkerqCompiler把高级语言书写的源代码(source code)转换成目标代码(object code)。qLinker把程序的目标代码和其他 pre-compiled(预编译)的目标代码组合成可执行
9、代码( executable code )linkercompilersourcecodeobjectcodeother objectcodeexecutablecode28C的历史q C1972年,Bell实验室,Dennis Ritchieq B1970年,Bell实验室,Ken Thompsonq BCPL1967年, Cambridge, Martin Richards 29 C 的特点q 最初是为系统编程系统编程 诸如 OS (操作系统,e.g. UNIX) 和Compiler (编译器)q 应用广泛,执行效率比较高q 语法灵活,表达自由v 容易导致一些不易检测的错误PDP - 11
10、30C: 标准化 & 库q ANSI/ISO标准: 1990 (ANSI C)q C Standard Libraries (C标准库)包含了预定义的函数对编程的效率和代码的性能都大有益处通常由编译器厂商(compiler vendors)提供q 专有的库由厂商独立提供31如何进行程序设计q 问题:角度转换弧度问题细化:输入一个角度,转换成弧度,输出弧度解决步骤: 1、输入角度 2、转换成弧度 3、输出弧度编码 (Coding):转换成C语言的描述执行程序,进行验证32Source code:void main() float angle,radian ; scanf(“%f”,&angle); radian = angle/180*3.1415; printf(“radian =%f”,radian); 33设计流程 Start问题定义算法设计手工验证Problem-solving phase翻译成 C测试Working programImplementation ph
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《六国论》课件的影视改编:2024年文化现象分析
- 《接触网施工》课件 4.8.2 无交叉线岔安装
- 2024年用友T6企业资源规划教程全解析
- 探索未知领域:2024年《生理学基础》教案展望
- 四年级语文下册作文教学计划
- 2024年春季学期:《长恨歌》的全新解读
- 《马钧传》教学创新策略:面向2024年
- 智能家具厂的账务处理实例-记账实操
- 2024年电子商务概论教案改革探讨
- 《高精度基准电压源》课件
- 回收PET塑料资源化利用及产业化进展研究
- 大学美育(同济大学版)学习通超星期末考试答案章节答案2024年
- 劳动法律学习试题
- 过敏性休克完整版本
- 应急第一响应人理论考试试卷(含答案)
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 2024年湖北省工业建筑集团有限公司招聘笔试参考题库含答案解析
- 软件工程师专业人物访谈
- 小水电接入电力系统技术规定
- 第三章 玻璃分相与析晶
- 招商银行无追索权公开型国内保理业务操作规程
评论
0/150
提交评论