




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程简介
总学时:56学时其中课堂教学:48学时;实验:8学时课程设计:一周主讲:林泓课程内容
介绍编译器构造的一般原理和基本实现方法介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法等强调形式化描述技术强调对编译原理和技术的宏观理解,注意力无需分散到枝节算法,无需偏向于某种源语言或目标机器学习的意义
对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中。大多数程序员同时是简单语言的设计者,有助于提高对这些语言的设计水平。在软件逆向工程、软件的设计方法、程序理解和软件安全等方面有着广泛的应用。课程要求讲课进展较快,平时要复习并加深理解。作业较多,要求独立完成。上机实验,每次检查。学期总评=考试成绩占70%,平时成绩占30%
编译系统是现代计算机系统的基本组成之一,编译程序构造的基本原理和技术不仅应用于编译程序的设计,也广泛应用于一般软件的设计和实现。本课程是计算机类专业的一门重要的核心专业课。先修课程:高级程序设计语言、汇编语言、离散数学、数据结构
学习要求:不旷课,上课认真听讲,课上保持安静;课后即时复习,认真完成作业。
学习目标
通过本课程的学习,旨在使同学们掌握程序设计语言的形式化描述和编译的基本理论、原理和技术,并对编译程序有较为具体的认识。使同学们能运用所学过的基本知识、着手开发系统程序,为今后的工作(理论研究和技术开发)打下基础。
具体为:(1)掌握编译程序基本结构及构造的基本原理和技术;(2)掌握文法、形式语言及自动机的基本概念和在编译程序构造中的应用;(3)掌握典型的几种语法分析方法的基本原理和实现方法;(4)掌握语法制导方法在语义分析中的应用和中间代码生成方法;(5)掌握存储分配的基本思想和实现方法;(6)掌握代码优化及代码生成的方法。学习向导
《编译原理》课程是理论性较强的课程。其特点是概念多、内容抽象。尤其是文法、形式语言及自动机的概念是计算机专业的理论学习和研究的基础。掌握这些基本理论、原理和技术,对于培养同学们对事物的抽象能力以及分析问题和解决问题的能力大有帮助。编译原理与方法对于深刻理解程序设计语言、深入了解程序在计算机中的运行机制、掌握程序设计语言的翻译方法起到不可替代的作用。同时《编译原理》课程也是实践性很强的课程,要求同学们在基本掌握了编译理论和技术的基础上,综合应用先修课程及本课程的知识,完成课程的实验和课程设计。参考资料
教材:
[1]《编译原理》
主编:张素琴、吕映芝、蒋维杜
出版社:清华大学出版社
出版时间:2005年2月参考书:
[1]《编译原理》
主编:何炎祥
出版社:华中理工大学出版社
出版时间:2000年10月
[2]《程序设计语言编译原理(第3版)》
主编:陈火旺、刘春林、谭庆平、赵克佳、刘越
出版社:国防工业出版社
出版时间:2001年8月
[3]《编译原理技术与工具(英文版)》Compilers:Principles,Techniques,and
Tools
主编:Alfred
V.Aho,Ravi
Sethi,Jeffrey
D.Ullman
出版社:人民邮电出版社
出版时间:2002年2月
参考资料[4]《编译原理与技术》(第二版)
主编:陈意云
出版社:中国科学技术大学出版社
出版时间:2002年1月
[5]《编译程序构造原理和实现技术》
主编:金成植
出版社:高等教育出版社
出版时间:2002年7月
[6]《编译原理及编译程序构造》
主编:高仲仪、金茂忠
出版社:北京航空航天大学出版社
出版时间:2001年3月
[7]《编译原理(第2版)》
主编:蒋立源,
康慕宁
出版社:西北工业大学出版社
出版时间:1999年4月
[8]《编译原理》
主编:张幸儿
出版社:科学出版社
出版时间:1999年4月
第1章引论
本章主要内容:
什么是编译程序编译过程和编译程序的结构为什么要学习编译程序
本章的重点:
本章没有难以理解的内容,主要是对编译程序的功能和结构做一综合描述§1.1什么叫编译程序
使用过现代计算机的人都知道,多数用户是应用高级语言来实现他们所需要的计算的。现代计算机系统一般都含有不止一个的高级语言编译程序,对有些高级语言甚至配置了几个不同性能的编译程序,供用户按不同需要进行选择。要在计算机上执行用高级语言(或汇编语言)编写的程序,必须通过特定的途径来进行,也就是要通过翻译程序把用高级语言(或汇编语言)编写的程序翻译成为机器语言构成的程序,计算机才能执行。在计算机上执行一个高级语言程序一般要分为两步:
第一步,用一个编译程序把高级语言翻译成机器语言程序;第二步,运行所得的机器语言程序求得计算结果。(1).翻译程序(Translator)
通常所说的翻译程序是指这样的一个程序,它能够把某一种语言程序(称为源语言程序或源程序)转换成另一种语言程序(称为目标语言程序或目标程序),而后者与前者在逻辑上是等价的。源程序(sourceprogram)翻译程序目标程序(targetprogram)输入输出图1.1翻译程序
翻译程序根据所处理的对象和实现的途径不同又分为:汇编程序、编译程序和解释程序。(2).汇编程序(Assembler)
如果源语言是某种汇编语言,而目标语言是某种计算机的机器语言,这样的一个翻译程序就称为汇编程序。源程序(汇编语言)翻译程序(汇编程序)目标程序(机器语言)输入输出图1.2汇编程序(3).编译程序(Compiler)
如果源语言是某种高级语言,而目标语言是某种低级语言(汇编语言或机器语言),这样的一个翻译程序就称为编译程序。源程序(高级语言)翻译程序(编译程序)目标程序(低级语言)图1.3编译程序输入输出(4).解释程序(Interpreter)
这是另外一种类型的翻译程序,在翻译过程它按照高级语言源程序在计算机上执行的动态顺序对源程序的语句逐条翻译(解释),边解释边执行直至结束,它不产生目标程序,它的工作结果就是源程序的执行结果,这样的一个翻译程序就称为解释程序。源程序(高级语言)翻译程序(解释程序)计算结果输入输出图1.4解释程序初始数据根据不同的用途,编译程序可进一步分类:(1)诊断编译程序(DiagnosticCompiler):
专门用于帮助程序开发和调试的编译程序。(2)优化编译程序(OptimizingCompiler):
着重于提高目标代码效率的编译程序。(3)交叉编译程序(CrossCompiler):
如果一个编译程序产生不同于其宿主机的机器代码。(4)可变目标编译程序(RetargetableCompiler):
不需重写编译程序中与机器无关的部分就能改变目标机。
宿主机:运行编译程序的计算机。目标机:运行编译程序所产生目标代码的计算机。§1.2编译过程概述
编译程序的工作,从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的。一段英文翻译为中文时,通常需经下列步骤:(1)识别出句子中的一个个单词;(2)分析句子的语法结构;(3)根据句子的含义进行初步翻译;(4)对译文进行修饰;(5)写出最后的译文。类似地,编译程序的工作过程一般也可以划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。
第一阶段:词法分析(Lexicalanalysis)词法分析的任务:
输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。
保留字(begin、end、if、for、while等)、
标识符(x1、s等变量名)、
常数(3.14、100等)、
算符(+、-、and、or等)、
界符(标点符号、左右括号等)。例如,对于Pascal的循环语句:forI:=1to100do词法分析的结果是识别出如下的单词符号:保留字
for标识符
I赋值号:
:=整常数
1保留字to整常数
100保留字do
单词符号是语言的基本组成成分,是人们理解和编写程序的基本要素。识别和理解这些要素无疑也是翻译的基础。
如同将英文翻译成中文的情形一样,如果你对英语单词不理解,那就谈不上进行正确的翻译。
在词法分析阶段的工作中所依循的是语言的词法规则(或称构词规则)。描述词法规则的有效工具是正规式和有限自动机。第二阶段,语法分析(SyntaxAnalysis)
语法分析的任务是:
在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如“短语”、“子句”、“句子”(“语句”)、“程序段”和“程序”等。通过语法分析,确定整个输入串是否构成语法上正确的“程序”。
语法分析所依循的是语言的语法规则。语法规则通常用上下文无关文法描述。
词法分析是一种线性分析,而语法分析是一种层次结构分析。例如,在很多语言中,符号串
z:=X十0.618*Y代表一个“赋值语句”,而其中的
X+0.618*Y代表一个“算术表达式”。因而,语法分析的任务就是识别
X+0.618*Y为算术表达式,同时,识别上述整个符号串属于赋值语句这个范畴。
第三阶段,语义分析与中间代码产生(SemanticAnalysisandIntermediateGenerator)
此阶段的任务是:
对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。中间代码是一种独立于具体硬件的记号系统。
常用的中间代码:三地址码,四元式,三元式、间接三元式、逆波兰式,树形表示等。
所谓“中间代码”是一种含义明确、便于处理的记号系统,它通常独立于具体的硬件。这种记号系统或者与现代计算机的指令形式有某种程度的接近,或者能够比较容易地把它变换成现代计算机的机器指令。
四元式的形式是:
(算符左操作数右操作数结果)它的意义是:对“左、右操作数”进行某种运算(由“算符”指明),把运算所得的值作为“结果”保留下来。
例如赋值语句Z:=(X+0.418)*Y/W翻译为四元式序列:序号算符左操作数右操作数结果
1十X0.418T12*T1YT23/
T2WZ第四阶段,优化(Optimization)优化的任务:
在于对前段产生的中间代码进行加工变换,以期在最后分段能产生出更为高效(省时间和空间)的目标代码。
优化的主要方面有:公共子表达式构提取、循环优化、删除无用代码等等。有时,为了便于“并行运算”,还可以对代码进行并厅化处理。优化所依循的原则:
程序的等价变换规则。例如,如果我们有程序片断
forK:=1to100dobeginM:=I+10*KN:=J+10*Kend其中间代码为:
序号OPARG1ARG2RESULT注解(1)(2)(3)(4)(5)(6)(7)(8)(9):=j<*+*++j
110010I10JK
KKT1KT21
K(9)T1MT2NK(2)
K:=1若100<K转至第(9)个四元式T1:二10*K;T1为临时变量M:=I+T1T2:=10*k;T2为临时变量N:=J十T2K:=K十1转至第(2)个四元式
转换成如下的等价代码:
序号OPARG1ARG2RESUL注解(1)(2)(3)(4)(5)(6)(7)(8)(9):=:=:=j<+++j
IJ1100MNK
K10101MNK(9)MNK(4)
M:=IN:=JK:=lif(100<k)goto(9)M:=M+10N:=N十10K:=K+lgoto(4)
优化后目标程序的执行效率提高很多。因为,对于前者,在循环中需做300次加法和200乘法;对于后者,在循环中只需做300次加法。第五阶段,目标代码生成(CodeGeneration)这一阶段的任务是:
把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码。
例(*,id3,10.0,t1)(+,id2,,t1,id1)目标代码:(1)MOVid3,R2
(2)MUL#10.0,R2
(3)MOVid2,R1
(4)ADDR1,R2
(5)MOVR1,id1
上述编译过程的五个阶段是一种典型的分法。事实上,并非所有编译程序都分成这五阶段。有些编译程序对优化没有什么要求,优化阶段就可省去。在某些情况下,为了加快编译速度,中间代码产生阶段也可以去掉。有些最简单的编译程序是在语法分析的同时产生目标代码。但是,多数实用编译程序的工作过程大致都像上面所说的那五个阶段。§1.3编译程序的结构1.3.1编译程序总框
上述编译过程的五个阶段是编译程序工作时的动态特征。编译程序的结构可以按照这五阶段的任务分模块进行设计。图1.5给出了编译程序总框。
图1.5编译程序总框词法分析器语法分析器语义分析与中间代码生成器中间代码优化器目标代码生成器表格管理出错处理目标代码程序源程序单词符号串语法单位中间代码串中间代码串
(1)词法分析器(lexicalanalyzer),也称扫描器:
输入源程序,进行词法分析,输出单词符号。
(2)语法分析器(syntaxanalyzer),简称分析器:
对单词符号串进行语法分析(根据语法规则进行推导或归约),识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。(3)语义分析与中间代码产生器(semanticanalyzerandintermediatecodegenerator):按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。
有的编译程序在识别出各类语法单位后,构造并输出一棵表示语法结构的语法树,然后,根据语法树进行语义分析和中间代码产生。
(4)代码优化器(codeoptimizer):
对中间代码进行优化处理,以便得到高质量的目标代码。
(5)代码生成器(codegenerator):
将中间代码翻译成等价的目标程序。
除了上述五个功能模块外,一个完整的编译程序还应包括“表格管理”和“出错处理”两部分。1.3.2表格管理(symbol-tablemanager)
编译程序在工作过程中需要保持一系列的表格,以登记源程序的各类信息和编译各阶段的进展状况。合理地设计和使用表格是编译程序构造的一个重要问题。在编译程序使用的表格中,最重要的是符号表。它用来登记源程序中出现的每个名字以及名字的各种属性。例如,一个名字是常量名、变量名,还是过程名等等;如果是变量名,它的类型是什么、所占内存是多大、地址是什么等等。通常,编译程序在处理到名字的定义性出现时,要把名字的各种属性填入到符号表中;当处理到名字的使用性出现时,要对名字的属性进行查证。当扫描器识别出一个名字(标识符)后,它把该名字填入到符号表中。但这时不能完全确定名字的属性,它的各种属性要在后续的各阶段才能填入。例如,名字的类型等要在语义分析时才能确定,而名字的地址可能要到目标代码生成才能确定。由此可见,编译各阶段都涉及到构造、查找或更新有关的表格。1.3.3出错处理(errorhandler)
一个编译程序不仅应能对书写正确的程序进行翻译,而且应能对出现在源程序中的错误进行处理。如果源程序有错误,编译程序应设法发现错误,把有关错误信息报告给用户。这部分工作是由专门的一组程序(叫做出错处理程序)完成的。一个好的编译程序应能最大限度地发现源程序中的各种错误,准确地指出错误的性质和发生错误的地点,并且能将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,以便进一步发现其它可能的错误。如果不仅能够发现错误,而且还能自动校正错误,那当然就更好了。但是,自动校正错误的代价是非常高的。
编译过程的每一阶段都可能检测出错误,其中,绝大多数错误可以在编译的前三阶段检测出来。
源程序中的错误通常分为语法错误和语义错误两大类。
语法错误是指源程序中不符合语法(或词法)规则的错误,它们可在词法分析或语法分析时检测出来。例如,词法分析阶段能够检测出“非法字符”之类的错误;语法分析阶段能够检测出诸如“括号不匹配”、“缺少;”之类的错误。
语义错误是指源程序中不符合语义规则的错误,这些错误一般在语义分析时检测出来,有的语义错误要在运行时才能检测出来。语义错误通常包括:说明错误、作用域错误、类型不一致等等。关于错误检测和处理方法,我们将穿插在有关章节介绍。1.3.4遍(Pass)
前面介绍的编译过程的五个阶段仅仅是逻辑功能上的一种划分。具体实现时,受不同源语言、设计要求、使用对象和计算机条件(如主存容量)的限制,往往将编译程序组织为若干遍(Pass)。所谓“遍”就是对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序。通常,每遍的工作由从外存上获得的前一遍的中间结果开始(对于第一遍而言,从外存上获得源程序),完成它所含的有关工作之后,再把结果记录于外存。
当一遍中包含若干阶段时,各阶段的工作是穿插进行的。例如,我们可以把词法分析、语法分析及语义分析与中间代码产生这三阶段安排成一遍。这时,语法分析器处于核心位置,当它在识别语法结构而需要下一单词符号时,它就调用词法分析器,一旦识别出一个语法单位时,它就调用中间代码产生器,完成相应的语义分析并产生相应的中间代码。
一个编译程序究竟应分成几遍,如何划分,是与源语言、设计要求。硬件设备等诸因素有关的,因此难于统一划定。遍数多一点有个好处,即整个编译程序的逻辑结构可能清晰一点。但遍数多势必增加输入/输出所消耗的时间。因此,在主存可能的前提下,一般还是遍数尽可能少一点为好。应当注意的是,并不是每种语言都可以用单遍编译程序实现。
1.3.5编译前端与后端
前端主要由与源语言有关但与目标机无关的那些部分组成。这些部分通常包括词法分析、语法分析、语义分析与中间代码产生,有的代码优化工作也可包括在前端。
后端包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成等。通常,后端不依赖于源语言而仅仅依赖于中间语言。
可以取编译程序的前端,改写其后端以生成不同目标机上的相同语言的编译程序。如果后端的设计是经过精心考虑的,那么后端的改写将用不了太大工作量,这样就可实现编译程序的目标机改变。也可以设想将几种源语言编译成相同的中间语言,然后为不同的前端配上相同的后端,这样就可为同一台机器生成不同语言的编译程序。然而,由于不同语言存在某些微妙的区别,因此在这方面所取得的成果还非常有限。
为了实现编译程序可改变目标机,通常需要有一种定义良好的中间语言支持。例如,在著名的Ada程序设计环境APSE中,使用的是一种称为Diana的树形结构的中间语言。一个Ada源程序通过前端编译转换为Diana中间代码,由编译后端把Diana中间代码转换为目标代码。编译前端与不同的编译后端以Diana为界面,实现编译程序的目标机改变。在Java语言环境中,为了使编译后的程序从一个平台移到另一个平台执行,Java定义一种虚拟机代码——Bytecode。
只要实际使用的操作平台上实现了执行Bytecode的Java解释器,这个操作平台就可以执行各种Java程序。这就是所谓Java语言的操作平台无关性。§1.4编译程序与程序设计环境
编译程序无疑是实现高级语言的一个最重要的工具。但支持程序设计人员进行程序开发通常还需要一些其它的工具如编辑程序L连接程序;调试工具等等。编译程序与这些程序设计工具一起构成所谓的程序设计环境。在高级语言发展的早期,这些程序设计工具往往是独立的,缺乏整体性,而且也缺乏对软件开发全生命周期的支持。随着软件技术的不断发展,现在人们越来越倾向于构造集成化的程序设计环境。一个集成化的程序设计环境的特点是,它将相互独立的程序设计工具集成起来,以便为程序员提供完整的、一体化的支持,从而进一步提高程序开发效率,改善程序质量。在一个好的集成化程序设计环境中,不仅包含丰富的程序设计工具,而且还支持程序设计方法学,支持程序开发的全生命周期。有代表性的集成化程序设计环境有Ada语言程序设计环境APSE、LISP语言程序设计环境INTERLISP等。广大读者所熟悉的TurboPascal、TurboC、VisualC++等语言环境也都可认为是集成化的程序设计环境。下面以Ada语言的程序设计环境APSE为例,介绍程序设计环境的基本构成和主要工具。
APSE是一个分层的程序设计环境,如图1.6所示。
图1.6Ada程序设计环境
最内层(第0层)是宿主计算机系统,它包括硬件、宿主操作系统和其它支持软件。第一层是核心APSE(KAPSE)。它包括环境数据库、通信及运行时支撑功能等。第二层,最小APSE(MAPSE)。它包括了Ada程序开发及维护的基本工具,这些工具包括编译程序、编辑程序、连接程序、调试程序、命令解释程序、配置管理程序、美化打印程序、静态分析工具,动态分析工具等等。第三层,APSE。在MAPSE外面再加上更广泛的工具就构成了完整的APSE。对这一层没有精确规定工具的类型,它通常可以包括面向应用的工具和支持特定程序设计方法的工具等。可以是支持需求分析、设计、实现、维护等软件开发全生命周期的工具。在一个程序设计环境中,编译程序起着中心的作用。连接程序、调试程序、程序分析等工具的工作直接依赖于编译程序所产生的结果,而其它工具的构造也常常要用到编译的原理、方法和技术。§1.5编译程序的生成
以前人们构造编译程序大多是用机器语言或汇编语言作工具的。为了充分发挥各种不同硬件系统的效率,为了满足各种不同的具体要求,现在许多人仍然采用这种工具来构造编译程序(或编译程序的“核心”部分)。但是,越来越多的人已经使用高级语言作工具来编译程序。因为,这样可以大大节省程序设计时间,而且所构造出来的编译程序易于阅读、维护和移植。为了便于说明,我们用一种T形图来表示源语言S、目标语言T和编译程序实现语言I之间的关系,如图1.7所示。
STI图1.7T型图
如果A机器上已有一个用A机器代码实现的某高级语言L1的编译程序,则我们可以用L1语言编写另一种高级L2的编译程序,把写好的L2编译程序经过L1;编译程序编译后就可得到A机器代码实现的L2编译程序,如图1.8所示。
图1.8用L1语言编写编译程序STISTISTI
采用一种所谓的“移植”方法,我们可以利用A机器上已有的高级语言L编写一个能够在B机器上运行的高级语言L的编译程序。做法是,先用L语言编写出在A机器上运行的产生B机器代码的L编译程序源程序,然后把该源程序经过A机器上的L编译程序编译后得到能在A机器上运行的产生B机器代码的编译程序,用这个编译程序再一次编译上述编译程序源程序就得到了能在B机器上运行的产生B机器代码的编译程序。用T形图表示为图1.9所示。
图1-9编译程序“移植”LBLLAALBALBLLBB
我们还可以采用“自编译方式”产生编译程序。方法是,先对语言的核心部分构造一个小小的编译程序(可用低级语言实现),再以它为工具构造一个能够编译更多语言成分的较大编译程序。如此扩展下去,就像滚雪球一样,越滚越大,最后形成人们所期望的整个编译程序。这种通过一系列自展途径而形成编译程序的过程叫做自编译过程。现在人们已建立了多种编制部分编译程序或整个编译程序的有效工具。有些能用于自动产生扫描器(如
LEX),有些可用于自动产生语法分析器(如
YACC),有些甚至可用来自动产生整个的编译程序。这些构造编译程序的工具称为编译程序一编译程序、编译程序产生器或翻译程序书写系统,它们是按对源程序和目标语言(或机器)的形式描述(作为输入数据)而自动产生编译程序的。
要在某一台机器上为某种语言构造一个编译程序,必须掌握下述三方面的内容:
(1)源语言,对被编译的源语言(如
FORTRAN、Pascal或
C),要深刻理解其结构(语法)和含义(语义);(2)目标语言,假定目标语言是机器语言,那么,就必须搞清楚硬件的系统结构和操作系统的功能;(3)编译方法,把一种语言程序翻译为另一种语言程序方法很多,但必须准确地掌握一二。本课程主要是讨论FORTRAN、Pascal、C之类强制式语言的编译技术。在本门课中,我们并不假定以某种特定机器作为目标机器。当需要涉及目标指令时,将采用一些人所共知的假想指令。因此,在学习这门课之前,读者必须具有计算机基础程序设计的知识。
由于编译程序是一个极其复杂的系统,故在讨论中,只好把它肢解开来,一部分一部分地进行研究。因此,在学习过程中应注意前后联系,切忌用静止的、孤立的观点看待问题。作为一门技术课程,学习时务必注意理论联系实际,多做练习,多多实践。要加强实践教学环节,学完这门课后,同学们应能实现一个小编译程序(如Pascal语言子集的编译程序)。本教程中所使用的具体算法有些是用文字描述的,有些是用类似Pascal的语言表示的。所有这些算法都是原理性和解释性的,而且大多是不完备的(忽略某些次要因素或尚未学到的成分)。因此,并不意味着这些算法可以直接照抄使用。在着手构造一个编译程序时,需要预先考虑种种具体因素[诸如,系统功能要求(这种要求常常是多方面的)、硬件设备、软件工具等等],特别是必须估量所有这些因素对编译程序构造的影响。虽然这些都是工程实现时应予考虑的细节,但因篇幅所限,不可能涉及太多。
习题:(1)什么是汇编程序?(2)什么是编译程序?(3)什么是解释程序?(4)什么是翻译程序?(5)编译的逻辑过程是什么?(6)编译程序由那些逻辑部分组成?(7)什么是编译遍?(8)什么是编译前端?(9)什么是编译后端?(10)编译方式与解释方式的根本区别是什么?MagneticResonanceImaging磁共振成像发生事件作者或公司磁共振发展史1946发现磁共振现象BlochPurcell1971发现肿瘤的T1、T2时间长Damadian1973做出两个充水试管MR图像Lauterbur1974活鼠的MR图像Lauterbur等1976人体胸部的MR图像Damadian1977初期的全身MR图像
Mallard1980磁共振装置商品化1989
0.15T永磁商用磁共振设备中国安科
2003诺贝尔奖金LauterburMansfierd时间MR成像基本原理实现人体磁共振成像的条件:人体内氢原子核是人体内最多的物质。最易受外加磁场的影响而发生磁共振现象(没有核辐射)有一个稳定的静磁场(磁体)梯度场和射频场:前者用于空间编码和选层,后者施加特定频率的射频脉冲,使之形成磁共振现象信号接收装置:各种线圈计算机系统:完成信号采集、传输、图像重建、后处理等
人体内的H核子可看作是自旋状态下的小星球。自然状态下,H核进动杂乱无章,磁性相互抵消zMyx进入静磁场后,H核磁矩发生规律性排列(正负方向),正负方向的磁矢量相互抵消后,少数正向排列(低能态)的H核合成总磁化矢量M,即为MR信号基础ZZYYXB0XMZMXYA:施加90度RF脉冲前的磁化矢量MzB:施加90度RF脉冲后的磁化矢量Mxy.并以Larmor频率横向施进C:90度脉冲对磁化矢量的作用。即M以螺旋运动的形式倾倒到横向平面ABC在这一过程中,产生能量
三、弛豫(Relaxation)回复“自由”的过程
1.
纵向弛豫(T1弛豫):
M0(MZ)的恢复,“量变”高能态1H→低能态1H自旋—晶格弛豫、热弛豫
吸收RF光子能量(共振)低能态1H高能态1H
放出能量(光子,MRS)T1弛豫时间:
MZ恢复到M0的2/3所需的时间
T1愈小、M0恢复愈快T2弛豫时间:MXY丧失2/3所需的时间;T2愈大、同相位时间长MXY持续时间愈长MXY与ST1加权成像、T2加权成像
所谓的加权就是“突出”的意思
T1加权成像(T1WI)----突出组织T1弛豫(纵向弛豫)差别
T2加权成像(T2WI)----突出组织T2弛豫(横向弛豫)差别。
磁共振诊断基于此两种标准图像磁共振常规h检查必扫这两种标准图像.T1的长度在数百至数千毫秒(ms)范围T2值的长度在数十至数千毫秒(ms)范围
在同一个驰豫过程中,T2比T1短得多
如何观看MR图像:首先我们要分清图像上的各种标示。分清扫描序列、扫描部位、扫描层面。正常或异常的所在部位---即在同一层面观察、分析T1、T2加权像上信号改变。绝大部分病变T1WI是低信号、T2WI是高信号改变。只要熟悉扫描部位正常组织结构的信号表现,通常病变与正常组织不会混淆。一般的规律是T1WI看解剖,T2WI看病变。磁共振成像技术--图像空间分辨力,对比分辨力一、如何确定MRI的来源(一)层面的选择1.MXY产生(1H共振)条件
RF=ω=γB02.梯度磁场Z(GZ)
GZ→B0→ω
不同频率的RF
特定层面1H激励、共振
3.层厚的影响因素
RF的带宽↓
GZ的强度↑层厚↓〈二〉体素信号的确定1、频率编码2、相位编码
M0↑--GZ、RF→相应层面MXY----------GY→沿Y方向1H有不同ω
各1H同相位MXY旋进速度不同同频率一定时间后→→GX→沿X方向1H有不同ω沿Y方向不同1H的MXYMXY旋进频率不同位置不同(相位不同)〈三〉空间定位及傅立叶转换
GZ----某一层面产生MXYGX----MXY旋进频率不同
GY----MXY旋进相位不同(不影响MXY大小)
↓某一层面不同的体素,有不同频率、相位
MRS(FID)第三节、磁共振检查技术检查技术产生图像的序列名产生图像的脉冲序列技术名TRA、COR、SAGT1WT2WSETR、TE…….梯度回波FFE快速自旋回波FSE压脂压水MRA短TR短TE--T1W长TR长TE--T2W增强MR最常用的技术是:多层、多回波的SE(spinecho,自旋回波)技术磁共振扫描时间参数:TR、TE磁共振扫描还有许多其他参数:层厚、层距、层数、矩阵等序列常规序列自旋回波(SE),快速自旋回波(FSE)梯度回波(FE)反转恢复(IR),脂肪抑制(STIR)、水抑制(FLAIR)高级序列水成像(MRCP,MRU,MRM)血管造影(MRA,TOF2D/3D)三维成像(SPGR)弥散成像(DWI)关节运动分析是一种成像技术而非扫描序列自旋回波(SE)必扫序列图像清晰显示解剖结构目前只用于T1加权像快速自旋回波(FSE)必扫序列成像速度快多用于T2加权像梯度回波(GE)成像速度快对出血敏感T2加权像水抑制反转恢复(IR)水抑制(FLAIR)抑制自由水梗塞灶显示清晰判断病灶成份脂肪抑制反转恢复(IR)脂肪抑制(STIR)抑制脂肪信号判断病灶成分其它组织显示更清晰血管造影(MRA)无需造影剂TOF法PC法MIP投影动静脉分开显示水成像(MRCP,MRU,MRM)含水管道系统成像胆道MRCP泌尿路MRU椎管MRM主要用于诊断梗阻扩张超高空间分辨率扫描任意方位重建窄间距重建技术大大提高对小器官、小病灶的诊断能力三维梯度回波(SPGR) 早期诊断脑梗塞
弥散成像MRI的设备一、信号的产生、探测接受1.磁体(Magnet):静磁场B0(Tesla,T)→组织净磁矩M0
永磁型(permanentmagnet)常导型(resistivemagnet)超导型(superconductingmagnet)磁体屏蔽(magnetshielding)2.梯度线圈(gradientcoil):
形成X、Y、Z轴的磁场梯度功率、切换率3.射频系统(radio-frequencesystem,RF)
MR信号接收二、信号的处理和图象显示数模转换、计算机,等等;MRI技术的优势1、软组织分辨力强(判断组织特性)2、多方位成像3、流空效应(显示血管)4、无骨骼伪影5、无电离辐射,无碘过敏6、不断有新的成像技术MRI技术的禁忌证和限度1.禁忌证
体内弹片、金属异物各种金属置入:固定假牙、起搏器、血管夹、人造关节、支架等危重病人的生命监护系统、维持系统不能合作病人,早期妊娠,高热及散热障碍2.其他钙化显示相对较差空间分辨较差(体部,较同等CT)费用昂贵多数MR机检查时间较长1.病人必须去除一切金属物品,最好更衣,以免金属物被吸入磁体而影响磁场均匀度,甚或伤及病人。2.扫描过程中病人身体(皮肤)不要直接触碰磁体内壁及各种导线,防止病人灼伤。3.纹身(纹眉)、化妆品、染发等应事先去掉,因其可能会引起灼伤。4.病人应带耳塞,以防听力损伤。扫描注意事项颅脑MRI适应症颅内良恶性占位病变脑血管性疾病梗死、出血、动脉瘤、动静脉畸形(AVM)等颅脑外伤性疾病脑挫裂伤、外伤性颅内血肿等感染性疾病脑脓肿、化脓性脑膜炎、病毒性脑炎、结核等脱髓鞘性或变性类疾病多发性硬化(MS)等先天性畸形胼胝体发育不良、小脑扁桃体下疝畸形等脊柱和脊髓MRI适应证1.肿瘤性病变椎管类肿瘤(髓内、髓外硬膜内、硬膜外),椎骨肿瘤(转移性、原发性)2.炎症性疾病脊椎结核、骨髓炎、椎间盘感染、硬膜外脓肿、蛛网膜炎、脊髓炎等3.外伤骨折、脱位、椎间盘突出、椎管内血肿、脊髓损伤等4.脊柱退行性变和椎管狭窄症椎间盘变性、膨隆、突出、游离,各种原因椎管狭窄,术后改变,5.脊髓血管畸形和血管瘤6.脊髓脱髓鞘疾病(如MS),脊髓萎缩7.先天性畸形胸部MRI适应证呼吸系统对纵隔及肺门区病变显示良好,对肺部结构显示不如CT。胸廓入口病变及其上下比邻关系纵隔肿瘤和囊肿及其与大血管的关系其他较CT无明显优越性心脏及大血管大血管病变各类动脉瘤、腔静脉血栓等心脏及心包肿瘤,心包其他病变其他(如先心、各种心肌病等)较超声心动图无优势,应用不广腹部MRI适应证主要用于部分实质性器官的肿瘤性病变肝肿瘤性病变,提供鉴别信息胰腺肿瘤,有利小胰癌、胰岛细胞癌显示宫颈、宫体良恶性肿瘤及分期等,先天畸形肿瘤的定位(脏器上下缘附近)、分期胆道、尿路梗阻和肿瘤,MRCP,MRU直肠肿瘤骨与关节MRI适应证X线及CT的后续检查手段--钙质显示差和空间分辨力部分情况可作首选:1.累及骨髓改变的骨病(早期骨缺血性坏死,早期骨髓炎、骨髓肿瘤或侵犯骨髓的肿瘤)2.结构复杂关节的损伤(膝、髋关节)3.形状复杂部位的检查(脊柱、骨盆等)软件登录界面软件扫描界面图像浏览界面胶片打印界面报告界面报告界面2合理应用抗菌药物预防手术部位感染概述外科手术部位感染的2/3发生在切口医疗费用的增加病人满意度下降导致感染、止血和疼痛一直是外科的三大挑战,止血和疼痛目前已较好解决感染仍是外科医生面临的重大问题,处理不当,将产生严重后果外科手术部位感染占院内感染的14%~16%,仅次于呼吸道感染和泌尿道感染,居院内感染第3位严重手术部位的感染——病人的灾难,医生的梦魇
预防手术部位感染(surgicalsiteinfection,SSI)
手术部位感染的40%–60%可以预防围手术期使用抗菌药物的目的外科医生的困惑★围手术期应用抗生素是预防什么感染?★哪些情况需要抗生素预防?★怎样选择抗生素?★什么时候开始用药?★抗生素要用多长时间?定义:指发生在切口或手术深部器官或腔隙的感染分类:切口浅部感染切口深部感染器官/腔隙感染一、SSI定义和分类二、SSI诊断标准——切口浅部感染
指术后30天内发生、仅累及皮肤及皮下组织的感染,并至少具备下述情况之一者:
1.切口浅层有脓性分泌物
2.切口浅层分泌物培养出细菌
3.具有下列症状体征之一:红热,肿胀,疼痛或压痛,因而医师将切口开放者(如培养阴性则不算感染)
4.由外科医师诊断为切口浅部SSI
注意:缝线脓点及戳孔周围感染不列为手术部位感染二、SSI诊断标准——切口深部感染
指术后30天内(如有人工植入物则为术后1年内)发生、累及切口深部筋膜及肌层的感染,并至少具备下述情况之一者:
1.切口深部流出脓液
2.切口深部自行裂开或由医师主动打开,且具备下列症状体征之一:①体温>38℃;②局部疼痛或压痛
3.临床或经手术或病理组织学或影像学诊断,发现切口深部有脓肿
4.外科医师诊断为切口深部感染
注意:感染同时累及切口浅部及深部者,应列为深部感染
二、SSI诊断标准—器官/腔隙感染
指术后30天内(如有人工植入物★则术后1年内)、发生在手术曾涉及部位的器官或腔隙的感染,通过手术打开或其他手术处理,并至少具备以下情况之一者:
1.放置于器官/腔隙的引流管有脓性引流物
2.器官/腔隙的液体或组织培养有致病菌
3.经手术或病理组织学或影像学诊断器官/腔隙有脓肿
4.外科医师诊断为器官/腔隙感染
★人工植入物:指人工心脏瓣膜、人工血管、人工关节等二、SSI诊断标准—器官/腔隙感染
不同种类手术部位的器官/腔隙感染有:
腹部:腹腔内感染(腹膜炎,腹腔脓肿)生殖道:子宫内膜炎、盆腔炎、盆腔脓肿血管:静脉或动脉感染三、SSI的发生率美国1986年~1996年593344例手术中,发生SSI15523次,占2.62%英国1997年~2001年152所医院报告在74734例手术中,发生SSI3151例,占4.22%中国?SSI占院内感染的14~16%,仅次于呼吸道感染和泌尿道感染三、SSI的发生率SSI与部位:非腹部手术为2%~5%腹部手术可高达20%SSI与病人:入住ICU的机会增加60%再次入院的机会是未感染者的5倍SSI与切口类型:清洁伤口 1%~2%清洁有植入物 <5%可染伤口<10%手术类别手术数SSI数感染率(%)小肠手术6466610.2大肠手术7116919.7子宫切除术71271722.4肝、胆管、胰手术1201512.5胆囊切除术8222.4不同种类手术的SSI发生率:三、SSI的发生率手术类别SSI数SSI类别(%)切口浅部切口深部器官/腔隙小肠手术6652.335.412.3大肠手术69158.426.315.3子宫切除术17278.813.57.6骨折开放复位12379.712.28.1不同种类手术的SSI类别:三、SSI的发生率延迟愈合疝内脏膨出脓肿,瘘形成。需要进一步处理这里感染将导致:延迟愈合疝内脏膨出脓肿、瘘形成需进一步处理四、SSI的后果四、SSI的后果在一些重大手术,器官/腔隙感染可占到1/3。SSI病人死亡的77%与感染有关,其中90%是器官/腔隙严重感染
——InfectControlandHospEpidemiol,1999,20(40:247-280SSI的死亡率是未感染者的2倍五、导致SSI的危险因素(1)病人因素:高龄、营养不良、糖尿病、肥胖、吸烟、其他部位有感染灶、已有细菌定植、免疫低下、低氧血症五、导致SSI的危险因素(2)术前因素:术前住院时间过长用剃刀剃毛、剃毛过早手术野卫生状况差(术前未很好沐浴)对有指征者未用抗生素预防五、导致SSI的危险因素(3)手术因素:手术时间长、术中发生明显污染置入人工材料、组织创伤大止血不彻底、局部积血积液存在死腔和/或失活组织留置引流术中低血压、大量输血刷手不彻底、消毒液使用不当器械敷料灭菌不彻底等手术特定时间是指在大量同种手术中处于第75百分位的手术持续时间其因手术种类不同而存在差异超过T越多,SSI机会越大五、导致SSI的危险因素(4)SSI危险指数(美国国家医院感染监测系统制定):病人术前已有≥3种危险因素污染或污秽的手术切口手术持续时间超过该类手术的特定时间(T)
(或一般手术>2h)六、预防SSI干预方法根据指南使用预防性抗菌药物正确脱毛方法缩短术前住院时间维持手术患者的正常体温血糖控制氧疗抗菌素的预防/治疗预防
在污染细菌接触宿主手术部位前给药治疗
在污染细菌接触宿主手术部位后给药
防患于未然六、预防SSI干预方法
——抗菌药物的应用118预防和治疗性抗菌素使用目的:清洁手术:防止可能的外源污染可染手术:减少粘膜定植细菌的数量污染手术:清除已经污染宿主的细菌六、预防SSI干预方法
——抗菌药物的应用119需植入假体,心脏手术、神外手术、血管外科手术等六、预防SSI干预方法
——抗菌药物的应用预防性抗菌素使用指征:可染伤口(Clean-contaminatedwound)污染伤口(Contaminatedwound)清洁伤口(Cleanwound)但存在感染风险六、预防SSI干预方法
——抗菌药物的应用外科预防性抗生素的应用:预防性抗生素对哪些病人有用?什么时候开始用药?抗生素种类选择?使用单次还是多次?采用怎样的给药途径?六、预防SSI干预方法
——抗菌药物的应用预防性抗菌素显示有效的手术有:妇产科手术胃肠道手术(包括阑尾炎)口咽部手术腹部和肢体血管手术心脏手术骨科假体植入术开颅手术某些“清洁”手术六、预防SSI干预方法
——抗菌药物的应用外科预防性抗生素的应用:预防性抗生素对哪些病人有用?什么时候开始用药?抗生素种类选择?使用单次还是多次?采用怎样的给药途径?六、预防SSI干预方法
——抗菌药物的应用
理想的给药时间?目前还没有明确的证据表明最佳的给药时机研究显示:切皮前45~75min给药,SSI发生率最低,且不建议在切皮前30min内给药影响给药时间的因素:所选药物的代谢动力学特性手术中污染发生的可能时间病人的循环动力学状态止血带的使用剖宫产细菌在手术伤口接种后的生长动力学
手术过程
012345671hr2hrs6hrs1day3-5days细菌数logCFU/ml六、预防SSI干预方法
——抗菌药物的应用125术后给药,细菌在手术伤口接种的生长动力学无改变
手术过程抗生素血肿血浆六、预防SSI干预方法
——抗菌药物的应用Antibioticsinclot
手术过程
血浆中抗生素予以抗生素血块中抗生素血浆术前给药,可以有效抑制细菌在手术伤口的生长六、预防SSI干预方法
——抗菌药物的应用127ClassenDC,etal..NEnglJMed1992;326:281切开前时间切开后时间予以抗生素切开六、预防SSI干预方法
——抗菌药物的应用不同给药时间,手术伤口的感染率不同NEJM1992;326:281-6投药时间感染数(%)相对危险度(95%CI)早期(切皮前2-24h)36914(3.8%)6.7(2.9-14.7)4.3手术前(切皮前45-75min)170810(0.9%)1.0围手术期(切皮后3h内)2824(1.4%)2.4(0.9-7.9) 2.1手术后(切皮3h以上)48816(3.3%)5.8(2.6-12.3)
5.8全部284744(1.5%)似然比病人数六、预防SSI干预方法
——抗菌药物的应用结论:抗生素在切皮前45-75min或麻醉诱导开始时给药,预防SSI效果好129六、预防SSI干预方法
——抗菌药物的应用切口切开后,局部抗生素分布将受阻必须在切口切开前给药!!!抗菌素应在切皮前45~75min给药六、预防SSI干预方法
——抗菌药物的应用外科预防性抗生素的应用:预防性抗生素对哪些病人有用?什么时候开始用药?抗生素种类选择?使用单次还是多次?采用怎样的给药途径?有效安全杀菌剂半衰期长相对窄谱廉价六、预防SSI干预方法
——抗菌药物的应用抗生素的选择原则:各类手术最易引起SSI的病原菌及预防用药选择六、预防SSI干预方法
——抗菌药物的应用
手术最可能的病原菌预防用药选择胆道手术革兰阴性杆菌,厌氧菌头孢呋辛或头孢哌酮或
(如脆弱类杆菌)头孢曲松阑尾手术革兰阴性杆菌,厌氧菌头孢呋辛或头孢噻肟;
(如脆弱类杆菌)+甲硝唑结、直肠手术革兰阴性杆菌,厌氧菌头孢呋辛或头孢曲松或
(如脆弱类杆菌)头孢噻肟;+甲硝唑泌尿外科手术革兰阴性杆菌头孢呋辛;环丙沙星妇产科手术革兰阴性杆菌,肠球菌头孢呋辛或头孢曲松或
B族链球菌,厌氧菌头孢噻肟;+甲硝唑莫西沙星(可单药应用)注:各种手术切口感染都可能由葡萄球菌引起六、预防SSI干预方法
——抗菌药物的应用外科预防性抗生素的应用:预防性抗生素对哪些病人有用?什么时候开始用药?抗生素种类选择?使用单次还是多次?采用怎样的给药途径?六、预防SSI干预方法
——抗菌药物的应用单次给药还是多次给药?没有证据显示多次给药比单次给药好伤口关闭后给药没有益处多数指南建议24小时内停药没有必要维持抗菌素治疗直到撤除尿管和引流管手术时间延长或术中出血量较大时可重复给药细菌污染定植感染一次性用药用药24h用药4872h数小时从十数小时到数十小时六、预防SSI干预方法
——抗菌药物的应用用药时机不同,用药期限也应不同短时间预防性应用抗生素的优点:六、预防SSI干预方法
——抗菌药物的应用减少毒副作用不易产生耐药菌株不易引起微生态紊乱减轻病人负担可以选用单价较高但效果较好的抗生素减少护理工作量药品消耗增加抗菌素相关并发症增加耐药抗菌素种类增加易引起脆弱芽孢杆菌肠炎MRSA(耐甲氧西林金黄色葡萄球菌)定植六、预防SSI干预方法
——抗菌药物的应用延长抗菌素使用的缺点:六、预防SSI干预方法
——抗菌药物的应用外科预防性抗生素的应用:预防性抗生素对哪些病人有用?什么时候开始用药?抗生素种类选择?使用单次还是多次?采用怎样的给药途径?正确的给药方法:六、预防SSI干预方法
——抗菌药物的应用应静脉给药,2030min滴完肌注、口服存在吸收上的个体差异,不能保证血液和组织的药物浓度,不宜采用常用的-内酰胺类抗生素半衰期为12h,若手术超过34h,应给第2个剂量,必要时还可用第3次可能有损伤肠管的手术,术前用抗菌药物准备肠道局部抗生素冲洗创腔或伤口无确切预防效果,不予提倡不应将日常全身性应用的抗生素应用于伤口局部(诱发高耐药)必要时可用新霉素、杆菌肽等抗生素缓释系统(PMMA—青大霉素骨水泥或胶原海绵)局部应用可能有一定益处六、预防SSI干预方法
——抗菌药物的应用不提倡局部预防应用抗生素:时机不当时间太长选药不当,缺乏针对性六、预防SSI干预方法
——抗菌药物的应用预防用药易犯的错误:在开刀前45-75min之内投药按最新临床指南选药术后24小时内停药择期手术后一般无须继续使用抗生素大量对比研究证明,手术后继续用药数次或数天并不能降低手术后感染率若病人有明显感染高危因素或使用人工植入物,可再用1次或数次小结预防SSI干预方法
——正确的脱毛方法用脱毛剂、术前即刻备皮可有效减少SSI的发生手术部位脱毛方法与切口感染率的关系:备皮方法 剃毛备皮 5.6%
脱毛0.6%备皮时间 术前24小时前 >20%
术前24小时内 7.1%
术前即刻 3.1%方法/时间 术前即刻剪毛 1.8%
前1晚剪/剃毛 4.0%THANKYOUMagneticResonanceImagingPART01磁共振成像发生事件作者或公司磁共振发展史1946发现磁共振现象BlochPurcell1971发现肿瘤的T1、T2时间长Damadian1973做出两个充水试管MR图像Lauterbur1974活鼠的MR图像Lauterbur等1976人体胸部的MR图像Damadian1977初期的全身MR图像
Mallard1980磁共振装置商品化1989
0.15T永磁商用磁共振设备中国安科
2003诺贝尔奖金LauterburMansfierd时间PART02MR成像基本原理实现人体磁共振成像的条件:人体内氢原子核是人体内最多的物质。最易受外加磁场的影响而发生磁共振现象(没有核辐射)有一个稳定的静磁场(磁体)梯度场和射频场:前者用于空间编码和选层,后者施加特定频率的射频脉冲,使之形成磁共振现象信号接收装置:各种线圈计算机系统:完成信号采集、传输、图像重建、后处理等
人体内的H核子可看作是自旋状态下的小星球。自然状态下,H核进动杂乱无章,磁性相互抵消zMyx进入静磁场后,H核磁矩发生规律性排列(正负方向),正负方向的磁矢量相互抵消后,少数正向排列(低能态)的H核合成总磁化矢量M,即为MR信号基础ZZYYXB0XMZMXYA:施加90度RF脉冲前的磁化矢量MzB:施加90度RF脉冲后的磁化矢量Mxy.并以Larmor频率横向施进C:90度脉冲对磁化矢量的作用。即M以螺旋运动的形式倾倒到横向平面ABC在这一过程中,产生能量
三、弛豫(Relaxation)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康办公设备销售及安装合同协议
- 涉外贸易合作协议条款及条件
- 2025年食品安全追溯体系在食品销售渠道中的应用与优化报告
- 2025年多式联运信息平台大数据分析与物流企业协同发展前景研究
- 2025年中医药现代化国际市场拓展的中医药养生服务市场趋势研究报告
- 2025年房地产市场库存压力释放策略与营销策略创新应用报告
- 小学中秋节活动策划方案模板
- 2025年中国跑车行业市场调查研究及投资前景预测报告
- 2025标准低压供用电合同范本
- 春季运动会策划方案
- 中医体质分类判定表
- 认知障碍患者护理查房
- 急性毒蕈中毒护理查房
- 大地之舞:学习土壤种植技巧
- 生物等效性临床试验方案医学设计模板
- 2021绍兴一中创新班试卷
- 党组织关系介绍信(标准版)
- 化州市教师招聘考试真题2022
- 南江县甘树坝花岗岩矿矿山地质环境保护与土地复垦方案
- 《安徽省工伤职工停工留薪期分类目录》
- 护士延续注册体检表通用
评论
0/150
提交评论