汇编语言/编译原理
-
现代体系结构的优化编译器(美)Randy Allen,(美)Ken Kennedy著;张兆庆等译;张兆庆译本书介绍对现代体系结构的编译器进行优化的方法,理论基础是基于循环依赖的。分析基于依赖的变换的正确性论述和依赖测试的详细过程。剖析怎样扩展依赖去处理循环嵌套中的控制流以及跨越整个程序的过程。本书还讨论怎样能用依赖来回答现代计算机系统编译中的众多重要问题,包括支持不同类型体系结构(例如,向量、多处理器、超标量)的并行化,存储层次结构的编译器管理,带指令级并行性的机器的指令调度。最后,介绍一些不大为人熟知的应用,如硬件设计、数组语言实现以及消息传递系统的编译。设计具有高性能微处理器的现代计算机体系结构,能够极大地提高计算机在性能方面的潜在优势。然而其高度的复杂性使得产生有效代码和实现其全部优势变得愈加困难。这本出自两位学术权威的具有里程碑意义的教科书,重点阐述了编译器对于解决这个至关重要问题所起到的关键作用。数据依赖是在高性能微处理器和并行体系结构上优化程序的基本编译器分析工具。它能使所编写的编译器自动地将简单的串行程序转换成具有现代体系结构特征的程序。数据依赖支持许多变换策略,也应用于一些重要的优化问题,本书对此做了全面介绍,并对基于数据依赖的编译器优化的重要性和广泛应用性进行了论证,给出了理解和实现它们所需要的基础,同时还为手工转换程序提供了详细说明。书中介绍的方法是基于过去二十多年的研究成果.取材于在美国Rice大学的研究原型和几个有关的商业系统中实现的策略。致力于现代计算机体系结构设计和优化编译器的研究人员、业界专家和研究生都可以从本书中获益。本书特点:●提供一种简单实用的算法和方法的指南,在高性能微处理器和并行系统中是最有效的●用处理过的例子示范每个变换●用实例分析编译器如何实现每一章中描述的理论和实践●介绍存储层次结构问题的最完善的处理方法●全书用依赖图来阐明排序关系●涉及各种语言。包括Fortran77、C、硬件定义语言、Fortran 90和High Performance Fortran
-
80x86 IBM PC及兼容计算机(卷Ⅰ和卷Ⅱ)(美)Muhammad Ali Mazidi,(美)Janice Gillispie Mazidi著;张波等译这本备受瞩目的教材,以其清晰的讲解和丰富的主题赢得专家们的广泛赞誉。本书用一种易于理解、系统化的方法讲解了80x86汇编语言编程和PC体系结构的基本原理。本书提供了大量的示例、复习题和习题,不仅可以加深学生对概念的理解,而且增加了学习的乐趣。本书使用DEBUG工具来显示指令执行的操作,然后用示例程序来说明指令的应用。本书深入探讨了PC的体系结构以及各种相关的主题,包括DOS内存映射、BIOS、微处理器体系结构、支持的芯片、总线、接口技术、系统编程、硬盘的特性,等等。第4版的特色:· 介绍了从8088到Pentium Pro的所有80x86微处理器· 本书融合了汇编语言和C语言的编程,每章的最后都包含有C语言的编程· 通过大量的示例介绍了80x86指令的用法· 可以确保读者对二进制和十六进制有一个基本的了解· 讨论并分析了8086、286、386、486、Pentium和Pentium Pro芯片的硬件差异· 讨论了80x86微处理器的8位、16位和32位接口技术· 使用摘自IBM PC技术手册的程序片断介绍了真正的PC系统编程的方法· 概括介绍了USB总线
-
现代编译器的Java实现(美)Andrew W.Appel等著;陈明等译;陈明译本书是一本编译技术的教程,其特点是注重实现。从学习编译器的结构来掌握理论,并通过编程技术将编译理论融合于实践中。本书主要内容分为两部分,第一部分为编译基础(第1章至第12章),主要包括:词法分析、语法分析、抽象语法、语义分析、活动记录、翻译成中间代码、基本块和轨迹、指令选择、活性分析、寄存器分配、 使之成为整体。第二部分为高级课题(第13章至第21章),主要包括:无用信息收集、面向对象语言、函数式编程语言、多态类型、数据流分析、循环优化、静态单赋值表、流水线和调度、分级存储器体系等。本书可作为高等院校编译技术课程的教材、教师参考书以及编译技术研究人员的参考资料。
-
汇编语言和程序设计武马群,史建华编著暂缺简介...
-
微型计算机汇编语言程序设计龚尚福主编''''本书以Intel80x86/Pentium系列微处理器为背景,系统地阐述了汇编语言程序设计的基础知识、程序设计方法和应用技术。全书共分10章。第l、2章为基础知识部分,包括数制、码制、基本数据类型等基础知识和计算机组成及其基本工作原理;第3、4章介绍编程基础,包括指令系统、寻址方式、伪操作和汇编语言格式;第5~8章介绍编程方法和技术,包括顺序、分支、循环和子程序等基本程序结构,宏汇编技术,中断与输入/输出程序设计方法,BIOS和DOS系统功能调用方法;第9、10章从实际应用出发,详细介绍了多模块程序的连接技术以及汇编语言与高级语言混合编程的方法,图形显示、发声和磁盘文件存取技术。书中提供了大量程序例题,每章末均附有若干习题,便于读者复习及检查学习效果。本书适用于高等院校以及大、中专院校作为“汇编语言程序设计”课程的教材,也适于初学者与专业技术人员使用,只要具有一种高级语言程序设计基础的读者,都可通过本书的学习掌握汇编语言程序设计技术。本书配有电子教案,需要者可与出版社联系,免费索取。''''汇编语言是计算机提供给用户使用的最快、最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的惟一语言。因而,对程序的存储空间和运行时间要求较高的一些实际任务,一般都使用汇编语言进行编程处理;至于很多实时性强、需要直接控制硬件的应用场合,则更是非用汇编语言不可了。汇编语言程序设计是高等院校计算机科学与技术专业的必修课,具有十分重要的专业基础地位。考虑到国内广泛使用的微型计算机都以Intel80x86/Pentium系列微处理器或兼容微处理器为CPU,所以本书以8086为CPU的IBM–PC微机作为基础机型来组织教学,并增加了有关计算机技术发展的新内容,其中包括8086后继机型80x86以及系列微处理器所提供的指令及寻址方式;汇编程序MASM新版本所提供的伪操作及高级汇编语言技术;保护模式的编程基础等等,以便满足广大读者使用高档微机的需要。本书不仅可供高等院校及大、中专院校作为“汇编语言程序设计”课程的教材使用,同时也适合于初学者使用,读者只要掌握一种高级语言程序设计基础,都可以通过本书的学习掌握汇编语言程序设计技术。全书由10章组成。第l、2章为基础知识部分,包括数制、码制、基本数据类型等基础知识和计算机组成及其基本工作原理;第3、4章介绍编程基础,包括指令系统、寻址方式、伪操作和汇编语言格式;第5~8章介绍编程方法和技术,包括顺序、分支、循环、子程序等基本程序结构,宏汇编技术,中断与输入/输出程序设计方法,BIOS和DOS系统功能调用方法;第9、10章从实际应用出发,详细介绍了多模块程序的连接技术以及汇编语言与高级语言混合编程方法,图形显示、发声和磁盘文件?嫒〖际酢J橹刑峁┝舜罅砍绦蚶猓空履┚接腥舾上疤猓阌诙琳吒聪凹凹觳檠靶ЧM保四苁视Ω骼嘧ㄒ档牟煌螅髡轮湎嗷ヅ浜隙肿猿商逑担子谖煌嘈驮盒0雌湟笫实奔右圆眉簦员窘滩牡氖视妹姹冉峡怼?本书作为计算机科学与技术系“汇编语言程序设计”课程的教材,建议课内88学时,其中讲课68学时,上机实践20学时。教学内容为第1~8章,第9、10章则结合实验由学生自学并上机实践。本书第1、3章由俎英和梁荣编写,第2、7章由王文东和王建军编写,第4、5、6、8、9、10章由龚尚福和朱宇编写。赵鹏举和梁荣编写了全部附录,全书由龚尚福统稿。限于编者水平,缺点与不足在所难免,敬请读者批评指正。编者2003年4月
-
编程语言(美)Terrence W.Pratt,(美)Marvin V.Zelkowitz著本书系统地讲述了编程语言,包括C、C++、JAVA和PERL等11种语言,内容包括编程语言简史、编程环境、编程语言语法、语言模型、基本数据类型、封装、继承、程序控制、子程序控制、存储管理、分布式处理和网络编程等。本书的范例以多种编程语言表书,显示了编程技巧的通用性。本书内容丰富,适合专、本科学生和程序员使用。
-
现代编译程序实现(美)Andrew W. Appel,(美)With Jens Palsberg著本书阐述了编译程序的各个方面:词法分析,句法分析,抽象语法,语义行为,中间件表示,通过树匹配实现的指令选择,数据流分析,配色图寄存器分配和运行系统。书中内容较好地涵盖了代码生成和寄存器分配的新技术,还包括功能型程序设计语言与面向对象程序设计语言编译。当前广为接受且成功运用的技术在书中被简要描述,而非罗列所有可能变量的清单。对编译程序模块接口的详细描述以真正Java类的形式说明。本书第一部分“编译基础知识”适用于为时一学期的编译程序初期课程。第二部分“高级论题”包括:面向对象与功能型程序设计语言编译,无用存储单元收集,循环优化,静态单任务形式,指令调度和缓存–内存优先级优化,这部分内容可作为编译程序第二学期或研究生课程讲授。此新版在原版基础上大幅度改写,更多地包含Java和面向对象程序设计概念。独特之处在于提供了以Java语言重新编写的Java本身子集的编译程序项目。此项目包括前端和后端设计阶段,使学生得以在一学期内构建一个完整的可运行编译程序。本书适用于高等院校计算机专业Java程序设计语言、编译程序类课程。作者简介:Adrew W.Appel is Professor of Computer Science at Princeton University.He has done research and published papers on compilers,functional programming languages,runtime systems and garbage collection,type systems,and computersecurity;he is also author of the book Compiling with Continuations.Jens Palsberg is Associate Professor of Computer Science at Pureue University.His research are programming languages,compilers,software engineering,and information security.He has authored more than 50 technical papers in these areas and a book with Michael Schwartzbach,Object-oriented Type Systems.
-
PIC单片机子程序库及运算平台庞〓英,曹海建著《PIC单片机子程序库及运算平台》针对PIC单片机,提供了178个汇编语言实用子程序和一个汇编语言运算程序生成器,包括科学计算、信息处理、查表技术、串行通信、数字滤波、键盘、显示、打印和各种模块应用等方面。这些实用子程序均已通过实际应用的检验,每个子程序都有编制说明和程序框图,以方便读者分析子程序结构和修改子程序;每个子程序都注明出/入口条件和参数,便于读者直接调用。《PIC单片机子程序库及运算平台》附光盘1张,包含书中全部子程序及其运算平台。《PIC单片机子程序库及运算平台》作为一本实用的软件资料,可供大中专院校师生学习和参考,也可作为初学者自学PIC系列单片机编程的一本参考书,同时也是从事PIC系列单片机开发应用工作者所必备的工具书。
-
编译器构造(美)Charles N.Fischer,(美)Richard J.LeBlanc,Jr.著;郑启龙,姚震译本书是一本优秀的编译器构造方面的教材,适合高等院校计算机专业的学生及专业程序员使用,已经被国际上多所大学或学院选作教材。本书提供了创新的编译器构造方法,通过大量的示例和练习,描述如何从头至尾设计一个可用的编译器。书中均衡覆盖了编译器设计中的理论与实现两大部分,详细讨论了标准编译器设计的相关主题 (如自顶向下和自底向上的语法分析、语义分析、中间表示和代码生成)。本书中所有的程序均采用易读的基于C语言的代码来表示。 本书特色: ●均衡讨论了编译器设计的理论与实现两大部分,既很好地介绍了编译器理论,又提供了大量的编译器设计示例和练习。 ●强调使用可以生成语法分析器和词法分析器的编译器工具。 ●彻底讨论LR语法分析和归约技术。 ●介绍了FLex和ScanGen。 ●在每章末尾包含可选的高级主题。
-
高级编译器设计与实现(美)Steven S.Muchnick著;赵克佳,沈志宇译;赵克佳译本书迎接现代语言和体系结构的挑战,帮助读者作好准备,去应对将来要遇到的编译器设计的问题。本书涵盖现代微处理器编译器的设计和实现方面的所有高级主题。本书从编译设计基础领域中的高级问题开始,广泛而深入地阐述各种重要的代码优化技术,分析各种优化之间的相对重要关系,以及实现这些优化的最有效方法。本书特点●为理解高级编译器设计的主要问题奠定了基础●深入阐述优化问题●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相关商业编译器作为案例,说明编译器结构、中间代码设计和各种优化方法●给出大量定义清晰的关于代码生成、优化和其他问题的算法●介绍由作者设计的以清晰、简洁的方式描述算法的语言ICAN(非形式编译算法表示)。本书前言本书讨论单机编译器设计和实现技术领域的前沿问题,重点讨论编译优化技术(超过了本书60%的篇幅)。我们考虑了支持指令级并行的机器,但几乎完全忽略了大规模并行处理和向量处理的有关问题。本书首先讨论编译器的结构、符号表管理(包括那些允许导入和导出作用域的语言)、中间代码结构、运行时支持问题(包括可以在运行时链接的共享对象),以及根据机器描述自动产生代码生成器等。之后,探讨过程内的(通常称为“全局的”)控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化,包括那些作用于程序不同成分(从单个表达式到整个过程)的优化。接下来本书讲述过程间的控制流分析、数据流分析和别名分析,以及过程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4个分别来自DEC、IBM、Intel和Sun微系统公司的商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。如我们将看到的,这些编译系统采用的技术具有广泛的代表性,并用不同的方法获得了类似的效果。