




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/11/19,1,页面描述语言,主讲:樊丽萍上海理工大学出版印刷学院,2019/11/19,2,成绩评定方式,2019/11/19,3,第一章概论,1.1页面描述语言的背景,1.页面描述语言PDL(PageDescriptionLanguage),PostScript语言Adobe公司,凡是用于描述电子页面的计算机语言,PCL语言HP(PCL3PCL6)商务办公,Interpress语言Xerox公司JAM语言,DDL语言Image公司,插图文件描述语言,2019/11/19,4,起源:76年Evans数组:;过程:;词典;十六进制:;注释:%;名字对象:/;等,2019/11/19,26,3常规字符:,除了空白字符和特定字符以外的所有可打印字符。,二、二进制编码(level2以上),二进制标记编码把PS语言的对象表示成单个语法项(SyntacticEntities),它强调压缩效果;可以比ASCII编码用更少的字符来表示PS语言中的大部分对象。,1.二进制标记编码(BinaryTokenEncoding),特点:不完全性混合编码,2019/11/19,27,2二进制对象序列编码(BinaryObjectSequenceEncoding),二进制对象序列编码把一个或多个PS对象的序列表示成单个语法项数组,并立即执行这个数组。它能有效地进行解释和生成。,三、注释:,由%和新行符之间的字符序列构成一个注释;,%example1.ps/n4def%定义n的值为4n6add%n+6=10把计算结果输出到标准输出文件中,Abc%comment/%blah123,2019/11/19,28,2.2数据类型与对象,一、对象的概念:,1概念:PS扫描程序可访问的所有的数据;,2表现形式:由PS操作符产生、管理和撤消,并由解释器执行。,类型(唯一,为本身所有),简单对象,3特征(三大要素),复合对象,属性(多种),值(唯一),字面属性,可执行属性,存取属性,2019/11/19,29,二、对象分类,1简单对象(原子型实体):,指对象中再无可见的子结构,当复制该对象时,三要素均复制。,指对象中有可见的内部结构,当复制该对象时,其值不复制。(即新老对象共享一个值),2复合对象:,3区别:复制对象时产生的结果不一样。,2019/11/19,30,三、对象的属性,1字面属性和可执行属性,字面属性,文字性,数据,压入操作数栈,可执行属性,立即执行,推迟执行,整数、实数、字符串、数组、词典等对象具有字面属性;,过程、操作符等具有可执行属性;,以“/”开头的名字对象具有字面属性,否则具有可执行属性。,2019/11/19,31,2存取属性复合对象具有的属性。,无限制属性,只读属性,只执行属性,空属性,四、PS对象,1.简单对象,数值对象:integerandreal,整型:2311231;若超过该值将自动转换为实型,实型:10381038;精确到小数点8位;,属性:字面属性值:数据本身,2019/11/19,32,数值,带符号数:正、负整数和0;标记为整型对象,实数:浮点数(2.35、-2.35)和指数(1E-5、2.3E10);标记为实型对象,不同进制数:base#number标记为整型对象,基数(base):236;base10;,number:是base进制中的数值,由0base-1之间的数值组成,大于9的数值用az或AZ表示。,如:1010=1*23+0*22+1*21+0*20=10,8#1707=1*83+7*82+0*81+7*80=967,16#1FDE=1*163+15*162+13*161+14*160=8158,2019/11/19,33,名字对象(name),任何由常规字符组成且不能解释为数值的字符序列;,如:Abc、13A等。可作为变量名或过程名,特点:唯一性:两个字符序列相同的名字为同一对象;属性:字面属性若名字前面有“/”,否则具有可执行属性;值:没有值;但与词典中的一个值或操作相对应,/inch72def%inch这个变量与72相对应,/y5adddef%y与一个过程5add相对应,字面属性,2019/11/19,34,操作符对象(operator)可执行名字对象,add“是两个数相加”的操作,表示PS语言的内部动作;,名字关键词,值操作符本身,属性:可执行属性;值:内部操作;(内部函数),4060add,可执行属性,100,2019/11/19,35,布尔型对象(Boolean)逻辑值,布尔对象的值,true:逻辑真或条件成立,false:逻辑假或条件不成立,属性:字面属性,标记对象(mark):用于标记操作数栈中的位置,;等操作符来完成,空对象(null)null对象相对应,用来填充复合对象中的空位置,2019/11/19,36,2.复合对象,串(string):容量为65535字面属性,字符串:用常用字符由()组成的字符正文,如:(Thisisabook)show;,由“”反斜杠引导转义字符;,2019/11/19,37,十六进制编码串(左结合),(Thisisasquare.n376)show,Thisisasquare.,用newline或“”在显示时,可忽略一个串被分成几行,用0和AF或af,由组成的十六进制编码数据;,90、3f、d0三对十六进制代码,ASCIIbased85(!u、Z),由组成的基于85的ASCII字符组成的数据,2019/11/19,38,数组对象(array)字面属性,用“”构造的可以通过数值索引进行访问对象的一维对象的集合;,索引号从0n;n65536;数组中的元素可以是任意类型的PS对象;多维数组由一维数组提供;如:1234PS解释器对遇到的所有数组元素都进行作用,数组是执行的结果。,5ab12,5、ab、12,12add,3,2019/11/19,39,过程(process):(视为函数),由标记对象“”构成的数组称为可执行数组(过程);,数组是执行的结果,而过程则是扫描的结果,过程属性,字面属性,可执行属性推迟执行,12add,3,12add,12add,2019/11/19,40,词典对象(dictionary)字面属性,用构造,以一对PS对象为元素的数据类型,PS语言中三个缺省的词典:用户词典(userdict):位于局部虚存中的可写词典全局词典(globaldict):位于全局虚存中的可写词典;系统词典(systemdict):存放所有PS操作符与其值(只读),基本结构为:key1value1key2value2n65535;,例:/D4/pagesize612792/Collatefalse,/D4def%将d=4作为一对存入当前用户词典,2019/11/19,41,文件对象(file):字面属性,是一个由结束符结束的、可读写、有限的字符流构成,用于PS解释器和它环境之间进行的数据通讯。,其他对象save:表示内存状态的某一瞬间;gstate:表示保存一个完整的图形状态;FontID:用于构造字库的特殊对象;,2019/11/19,42,2.3PS的执行环境,一、栈,栈(stack):是一种运算受限的线性表;仅允许在表的一端作插入(进栈和删除(出栈)的运算。,用来存放PS的操作对象和操作符执行的结果,该栈直接受控于当前程序。,1操作数栈:,常用操作数栈管理操作符:,pop:将栈顶元素弹出丢弃;格式:anypop,123pop,12,123poppop,1,2019/11/19,43,exch:交换栈顶的两个元素;,133,21,copy:复制栈顶的n个元素;格式:any1anynncopy,any1anynany1anyn,例:1232copy,例:12323,2019/11/19,44,roll:将n个元素循环向上或向下移动j次,格式:,注意:n为栈中元素的个数;操作数栈中至少有n+2的位置;,其中:若j0则表示向上移动j次;若j0则表示向下移动j次;,2019/11/19,45,例:135742roll,5713,13573-2roll,1735,2019/11/19,46,index:复制操作数栈中的某个元素;,格式:,其中:j表示(索引号)从栈顶元素数(0)起的第j个数;,例:13573index,13571,2019/11/19,47,2词典栈,用于保存词典对象,但栈底的三个词典不能被弹出(该栈直接受控于当前程序),常用词典操作符:,begin:将dict压入词典栈,使之成为当前词典格式:dictbegin,end:从词典栈中弹出当前词典;注意:该操作符没有任何操作数,2019/11/19,48,def:使得key与value在当前词典中相关联,格式:keyvaluedef,若key在当前词典中已经出现,那么def就替换它的值。,/namename1adddef%名字对象name现在的值被定义为2,例:/name1def%在当前词典中名字对象name被定义为1,2019/11/19,49,get:从数组、词典或串的值中获取单个元素,格式:,31,98(ASCII值),例:/mykey(myvalue)def,(myvalue),2019/11/19,50,put:替换数组、词典或串中的单个元素的值,格式:,例:/array57911defarray2(abc)put,57(abc)11,dforall(枚举),例:/d5dictdefd/abc123put,/abc123,newarray,newdict,newstring,2019/11/19,51,例:/string(abcd)defstring065put,(Abcd),aload:,把数组中所有的元素压入操作数栈,最后在把数组压入操作数栈中;,13571357,例:1357aload2get,13575,2019/11/19,52,length:得到复合对象中元素的个数,若名字对象,则返回该名字正文串中的字符数,例:123length,3,mydict/abc(ABC)put,例:/mydict5dictdefmydictlength,mydictlength,例:/toolength,3,0,1,2019/11/19,53,3执行栈(程序的调用栈),保存执行对象(过程和文件);受控于解释器,只能阅读,不能修改。,4图形状态栈,5裁剪路径栈,用于存放图形状态参数,保存当前裁剪路径对象,2019/11/19,54,例2.1写出下列程序结果,%!ps%new201.ps/inch72muldef/colors100010001def/xpos1inchdef/xinc1inchdef5setlinewidth012colorsexchgetaloadpopsetrgbcolorxpos2inch1inch3inch4copyrectfill000setrgbcolorrectstroke/xposxposxincadddefforshowpage,2019/11/19,55,2019/11/19,56,二、存储器(虚存)管理,1虚存(VirtualMemory),用来存储复合对象值的内存区域,123:整数对象;压入操作数栈;,123(Hereisastring),(Hereisastring):字符串对象;压入操作数栈;对象中包含了一个指向其值的指针,其值是存放在VM中,123,(Hereisastring),2019/11/19,57,2VM的分类,局部VM(local):存放与程序结构有关的复合对象的值,特点:当程序某一结构结束时,与此有关的VM被释放对VM中内容的修改受到save、restore控制在缺省状态下,VM为局部VM,全局VM(global):用来存放与程序结构无关的复合对象的值,特点:整个程序执行过程中一直存在的复合对象的值在程序执行期间不受程序结构控制save和restore的操作不影响对全局VM对象的修改,2019/11/19,58,3申请方式,隐式申请:在创建复合对象时由扫描器该对象申请的空间,如:()、,array、dict、string、gstate以及标记对象、等,显式申请:用操作符创建复合对象,并为其申请空间,40array6string8dict,2019/11/19,59,全局VM的申请setglobal,truesetglobal:申请全局VMfalsesetglobal:申请局部VM,例:/lstr(string1)def%申请局部VM/ldict10dictdef%申请局部VMtruesetglobal%切换为全局VM的申请模式/gstr(string2)def%申请全局VM/gdict5dictdef%申请全局VM,gdict/alstrput%非法lstr可能被释放gdict/b5put%合法,2019/11/19,60,注意:全局VM中的对象若包含对局部VM中对象的引用是非法的简单对象可作为全局或局部VM中对象的元素,save:保留局部的VM的状态,返回一个代表这个状态的save对象;Restore:使局部的VM状态恢复到由前一个save保留的VM状态(字符串除外),作用:保持页面描述的独立性封装嵌入程序对页面的影响;显式地回收局部VM的空间,4.save和restore,2019/11/19,61,三、标准输入输出文件,1文件(file),指存储在外部介质上数据的集合,2标准输入文件(%stdin),PS解释器通过文件来接受可执行的PS程序通过文件与外部环境交换数据,PS程序能够读取字符序列的源程序(文件),由PS解释器当前执行的程序序列;(PS解释器默认从标准输入文件中读取数据),(%stdin)(r)file,创建文件对象,2019/11/19,62,3.标准输出文件(%stdout),PS程序能够往上写字符的目的程序(文件),如:%file1.ps%文件开头,文件名/str20stringdef123456addstrcvs%(串(579)print(text)=,或print或=把任意数据传送到标准输出文件中,则该程序将在标准输出文件中输出579和串text,(%stdout)(w)file,生成文件对象,2019/11/19,63,4.命名文件,(命名文件)(存取属性)file,存取属性,生成文件对象,2019/11/19,64,5.文件操作符,fileread,filestringreadstring,readhexstring和writehexstring:读写文件中以十六进制记法表示二进制数据,boolean:ture操作成功,false遇到文件结束符,fileintwrite,将单个字符加入到文件中(0-255),intboolean,从输入文件中读下一个字符,filestringwritestring,substringboolean,filestringreadline,substringboolean,2019/11/19,65,例2.2写出下列程序运行结果%!ps%new202.ps/str100stringdefcurrentfilestrreadlinehereisalineoftextpop/textlineexchdef(e:Fan_LipingPStestnew2020.ps)(w)filetextline(str)writestring,hereisalineoftext,2019/11/19,66,四、PS程序的初始执行环境特点,1.空的操作数栈2.包含三个标准词典的词典栈3.空的执行栈、图形状态栈和裁剪路径栈4.虚存的申请模式为局部虚存5.包含缺省图形状态参数的图形状态数据结构,2019/11/19,67,2.4PS对象的执行方式,1立即执行,对扫描到的PS对象立即执行该对象,并做相应的操作,例2.3写出PS解释器执行下列程序段的过程4060add2div,50,add和div立即执行,40、60、2推迟执行,2019/11/19,68,40、60、average等推迟执行,2.推迟执行,对遇到的PS对象暂缓执行的操作,例2.4写出PS解释器执行下列程序段的过程/averageadd2divdef4060average,50,def和average立即执行,2019/11/19,69,3.PS执行规则:,字面属性的对象,被作为数据压入操作数栈当解释器直接遇到过程时,被作为数据压入到操作数栈;而间接遇到过程时,则作为其他对象的值立即执行,依次执行其中的对象可执行名字对象,在词典栈中查找其对应的值,立即执行;操作符对象,立即执行完成PS的内部操作;把文件对象压入执行栈中,读取其中字符,并解释为PS对象;空对象:不做任何操作。,2019/11/19,70,2.5早期名字联编的概念与具体的实现,/averageadd2divdef当调用average时,add和div都将需要查阅其值,在名字对象执行时查阅该对象值的行为,早期联编(early-binding):,推迟联编(late-binding):,在名字对象执行之前查阅该对象值的行为,实现早期联编的方法:,bind操作符:名字对象的值是操作符,即演名(immediatelyevaluatedname):其他名字对象,2019/11/19,71,1.即演名字:,名字前面加了两个斜杠的名字对象,例2.5%!PSEPSF-3.0/PI3.14159def/resultadd/PIdivdef9045result=,提高程序的运行速度;直接引用固定的对象,则该程序将在标准输出文件中输出42.971871,特点:,已经用相应的值替换了名字对象PI,2019/11/19,72,2.Bind操作符:,操作符替代:用相应的操作符对象替代名字对象。(省略查找过程),例:/averageadd2divbinddef,特点:使名字对应的值不变提高PS程序的运行速度,idiom识辨:用高效率的PS描述替换低效率的PS描述,已经用相应的值替换操作符add和div,2019/11/19,73,例2.6:写出下列程序运行结果%!ps/inch72muldef0.5inch0.5inchtranslate/ins0.1def00.11.000moveto0.7inch0rlineto04inchrlineto-0.7inch0rlinetoclosepathgsave0ins00setcmykcolorfillgrestore0setgraystroke/ins0.1insadddef0.7inch0translateforshowpage,2019/11/19,74,2019/11/19,75,%!ps/inch72muldef0.5inch0.5inchtranslate/ins0.1def00.11.000moveto0.7inch0rlineto04inchrlineto-0.7inch0rlinetoclosepathgsave0ins00setcmykcolorfillgrestore0setgraystroke/ins0.1/insadddef0.7inch0translateforshowpage,2019/11/19,76,2019/11/19,77,%!ps/inch72mulbinddef0.5inch0.5inchtranslate/ins0.1def00.11.000moveto0.7inch0rlineto04inchrlineto-0.7inch0rlinetoclosepathgsave0ins00setcmykcolorfillgrestore0setgraystroke/ins0.1insadddef0.7inch0translateforshowpage,2019/11/19,78,2019/11/19,79,2.6常用的数学操作符,一、双操作数的数学操作符,1Add(+),2.sub(subtract)(-),3.mul(multiply)(*),若num1和num2为整数,则其和、差、乘积为整数,否则为实数,2019/11/19,80,4div(division)(),5idiv(integraldivision)整除,2019/11/19,81,6.mod(modulus)取模(实际意义上的取余运算),remainder的符号与int1的符号相同,且为整数,二、单操作数的数学操作符,1abs(absolute)求绝对值,2019/11/19,82,2.neg(negative)求相反数,3.ceiling求大于或等于num1的最小整数num2,注意:num2的类型与num1的类型相同,2019/11/19,83,4floor求小于或等于num1的最大整数num2,5round求最接近于num1的整数值,注意:num2的类型与num1的类型相同,如果有两个值都接近于num1的值,则取两值中较大的值;num2类型与num1类型相同;,2019/11/19,84,6truncate求某个数的整数部分;,7Sqrt:求某个数的平方根(结果为实数),注意:num2的类型与num1的类型相同;(去除小数部分),三、函数,2019/11/19,85,4.对数:le(自然对数)、log(以10为底对数),5.n次幂函数exp,例2.7编写程序,求多项式2x24x+y当x=2,y=-1时的值,并输出到标准输出文件中。%!PS%case1.ps/x2def/y-1def/zxxmuldef/u4xmuldef2zmulusubyadd=,2019/11/19,86,2.7PS资源、函数和过滤器,一、资源存放于全局虚存,资源(资源类),常规资源,是一组命名对象的集合。即由PS内部定义的,并可由PS程序直接调用的PS对象的集合,隐式资源,资源实例对象,资源类和资源实例都对应着相应的名字来标识,字库(类)/Font,资源实例内部功能,/Times-Roman字体(实例),包含字符的描述信息,2019/11/19,87,常规资源类,2019/11/19,88,隐式资源类,2019/11/19,89,二、过滤器(filter)特殊类型的文件对象,1过滤器:,对文件中读出或写入的字符数据根据过滤器的种类进行解码或编码。,2过滤器的分类,编码过滤器(encoding),输出文件,接受写入数据,并将其转换为该过滤器特有的编码数据写入基文件中(目标文件)(所有编码过滤器的名字都嵌有encode),ASCIIHexEncode,将二进制数据编码为十六进制表示,2019/11/19,90,解码过滤器(d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025春新版本)北师大七年级下册生物全册教案
- 2025部编人教版小学一年级语文上册全册教案
- 重庆火锅基础知识培训课件
- 重庆新高考方案课件
- 新解读《GB-T 18185-2014水文仪器可靠性技术要求》
- 暑假复习:静电场及其应用 -2025人教版新高二物理暑假专项提升
- 重庆天然气安全知识培训课件
- 世界气候与中国气候-2023年中考地理非选择题突破(原卷版)
- 重卡汽修保养知识培训课件
- 《商务英语阅读1》课程简介与教学大纲
- 公司第三方回款管理制度
- 海上风电场集电线路方案的选择
- 县人民医院(三级乙等)“十五五”规划
- 会展经济与管理课件
- 中国民用航空飞行学院《力学(一)》2023-2024学年第二学期期末试卷
- 家庭健康知识课件
- 拍卖保留价协议
- 医疗纠纷的防范与处理课件
- 2025年4月自考00107现代管理学试题及答案含评分标准
- 烟气脱硝工艺培训课件
- 2025建筑工程施工标准合同
评论
0/150
提交评论