《2022年代码阅读与实践课程报告 .pdf》由会员分享,可在线阅读,更多相关《2022年代码阅读与实践课程报告 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学院:20XX年 12 月代码阅读与实践课程报告精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 4 页1. 编程范型综述1.1 什么是编程范型所谓编程范型指的是一类典型的编程风格,是指从事软件工程的一类典型的风格。1.2 编程范型分类编程范型主要可以分纯函数式编程范型、过程化编程范型、结构化编程范型、非结构化编程范型、命令式编程范型和声明式编程范型等。1.3如何认识编程范型2. 过程式语言( C+)2.1 符号的生命周期和作用域符号的生命周期是指从符号的诞生到结束这段时间,符号的作用域是指一个符号程序正文中有效的区域。2.2 C+ 语言
2、的存储类别和内存管理包括机制存储类型是从变量的存在时间来划分的,可分为静态存储方式和动态存储方式。在C+中,变量的存储类型分为:自动类型、寄存器类型、静态类型和外部类型。C+内存管理机制包括内存分配方式、常见的内存错误及对策2.3C+支持指针操作, 指针的优点是: 可以有效的对变量进行底层操作,直接操作变量的地址。非常方便好用,使代码变得更简洁,缩小代码量,使用更灵活。而指针的缺点是:容易出现内存泄露、指向的内容容易出错,另外,还可能出现野指针,用的不好还能导致程序崩溃。3. 函数式语言( C)3.1 函数式语言的的基本思想和基本概念3.2 函数式语言和过程式语言区别一、函数式语言:表达能力:
3、函数式语言在表达能力方面有三个显著的特征,一是若表达式有定义,表达式的计算结果与计算次序无关,二是构造数据的能力强,三是建立高阶函数的能力强。执行效率:执行效率低。并发性:函数式语言被认为是非常适合处理并发性问题的工具,共享值不需加特殊保护,因为它们不会被更新。安全性:函数式语言由于广泛采用懒数据,所以安全性较高。函数测试的表达式对也很多,也保证一定的安全性。二、过程式语言:过程式语言是一种为程序设计人员提供准确定义任务执行步骤的语言。表达能力:过程式语言表达能力很强,有丰富的运算符,应用范围广,并且数据类型丰富,除了一些数据类型外,还可以构造结构体类型,实现各种复杂数据结构运算。精选学习资料
4、 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 4 页执行效率:执行效率都很高是过程式语言的优点。并发性:并发机制主要有会合、异步发送。安全性:过程式语言的指针和宏定义等等给它带来一定的安全隐患。4. 面向对象语言(Java )4.1 与 C+ 在面向对象模型上的区别4.2 Java对象的构造、析构和赋值操作4.3 Java与 C+ 异常处理机制区别C+异常处理机制:C+异常处理机制由保留字try 引出,语法格式如下:Try / protected code catch( ExceptionName e1 ) / catch block catch
5、( ExceptionName e2 ) / catch block catch( ExceptionName eN ) / catch block 如果try 机构中会抛出多种情况异常,必须列出这些异常情况去匹配不同的异常。显然这是C+异常处理的一个缺陷。Java 异常处理机制:Java 异常处理机制是基于C+ 的,并且做了相应的改变,虽然它们有相似的结构,但是 Java 中每一个catch 都必须具有参数, 而且这些参数必须是预定义的Throwable的子类。语法如下:try /Protected code catch(ExceptionType1 e1) /Catch block cat
6、ch(ExceptionType2 e2) /Catch block catch(ExceptionType3 e3) /Catch block finally /The finally block always executes. 我们可以看出, 在 Java 中有一个finally 子句, 不论try 代码 块中是否发生异常事件, finally 块中的语句都会被执行,相当于一个统一的出口。5. 并行编程模型简介5.1 Pthread POSthread 简称为pthread ,Posix 线程是一个POS 标准线程.该标准定义内部API 创建和操纵线程。Pthreads定义了一套C 程序
7、语言类型、函数与常量,它以pthread.h 头文件和一个线程库实现。5.2 Intel TBB (Thread Building Blocks)TBB( Thread Building Blocks)线程构建模块,是Intel 公司开发的并行编程开发的工具。 TBB 获得过17 届Jolt Productivity Awards, 是一套C+ 模板库,和直接利用OS API 写程序的raw thread 比,在并行编程方面提供了适当的抽象,当然还包括更多其他内容,比如task 概念,常用算法的成熟实现,自动负载均衡特性还有不绑定CPU 数量的灵活的可扩展性等等。STL 之父,Alexande
8、r Stepanov 对 此评价不错 ,他 说 “ Threading Building Blocks could 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 4 页become a basis for the concurrency dimension of the C+ standard library”。其他TBB 的早期用户,包括Autodesk , Sun,Red Hat, Turbo Linux 等亦然。现在O Reilly 已经出版了一本Intel Threading Building Blocks: Outfitti
9、ng C+ for Multi-core Processor Parallelism。TBB 很好实现:a)TBB提供 C+模版库,用户不必关注线程,而专注任务本身、b)抽象层仅需很少的接口代码,性能上毫不逊色、c)灵活地适合不同的多核平台、d)线程库的接口适合于跨平台的移植(Linux, Windows, Mac)、e)支持的 C+编译器 Microsoft, GNU and Intel 。它的主要功能为:1) 通用的并行算法循环的并行:parallel_for, parallel_reduce 相对独立的循环层、parallel_scan 依赖于上一层的结果、流的并行算法、parallel
10、_while 用于非结构化的流或堆、pipeline - 对流水线的每一阶段并行,有效使用缓存、并行排序和parallel_sort 并行快速排序,调用了parallel_for 。2) 任务调度者管理线程池,及隐藏本地线程复杂度、并行算法的实现由任务调度者的接口完成和任务调度者的设计考虑到本地线程的并行所引起的性能问题。3) 并行容器concurrent_hash_map 、concurrent_vector 和 concurrent_queue 。4) 同步原语atomic 、mutex、spin_mutex 适合于较小的敏感区域、queuing_mutex 线程按次序等待 (获得 )一个
11、锁、spin_rw_mutex 、queuing_rw_mutex 和说明: 使用 read-writer mutex 允许对多线程开放” 读” 操作。5) 高性能的内存申请使用TBB 的 allocator 代替C 语言的malloc/realloc/free 调用和使用TBB 的allocator 代替C+语言的new/delete 操作。5.3 Nvidia CUDA 计算行业正在从只使用CPU的“ 中央处理” 向 CPU与 GPU并用的 “ 协同处理”发展。为打造这一全新的计算典范,NVIDIA?(英伟达? )发明了CUDA 并行计算架构,该架构现已应用于GeForce (精视 ? )
12、 、 ION? (翼扬 ? ) 、Quadro 以及Tesla GPU(图形处理器)上,对应用程序开发人员来说,这是一个巨大的市场。在消费级市场上,几乎每一款重要的消费级视频应用程序都已经使用CUDA 加速或很快将会利用CUDA 来加速,其中不乏Elemental Technologies公司、MotionDSP公司以及LoiLo 公司的产品。在科研界, CUDA 一直受到热捧。例如, CUDA 现已能够对AMBER 进行加速。AMBER 是一款分子动力学模拟程序,全世界在学术界与制药企业中有超过60,000 名研究人员使用该程序来加速新药的探索工作。在金融市场,Numerix以及Compat
13、ibL针对一款全新的对手风险应用程序发布了CUDA 支持并取得了18 倍速度提升。Numerix为近400 家金融机构所广泛使用。CUDA的广泛应用造就了GPU计算专用Tesla GPU的崛起。全球财富五百强企业现在已经安装了700 多个 GPU 集群,这些企业涉及各个领域,例如能源领域的斯伦贝谢与雪佛龙以及银行业的法国巴黎银行。随着微软Windows 7 与苹果Snow Leopard 操作系统的问世,GPU 计算必将成为主流。在这些全新的操作系统中,GPU 将不仅仅是图形处理器,它还将成为所有应用程序均可使用的通用并行处理器。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 4 页