




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 华中科技大学硕士学位论文 i 摘摘 要要 随着嵌入式技术的发展前景日益广阔,嵌入式研究领域越来越需要一套外观漂 亮、控件资源丰富、功能强大的集成开发工具。源代码编辑工具是嵌入式开发工具 的重要组成部分。一款简单、高效、多功能的程序编辑界面能够提高程序员的工作 效率,有利于高质量、低错误程序的生成。 在嵌入式图形系统 clearx 上开发了源代码编辑工具 clearsource,它集成到嵌入 式开发工具中,为用户提供了良好的编辑界面,实现了源代码的高亮显示和词法元 素的关联定位。用户应用 clearsource 可以方便,直观地进行源代码的编辑和阅读。 clearsource 应用双向链表作为每个文档的底层数据结构,将文档的每个单词作 为链表的一个节点。通过每个节点的数据可以从词法类型和显示信息方面得到对应 单词的各种信息,通过链表的状态可以分析当前文档的状态。用户在编辑过程中修 改文档后,对应的链表状态也会随之发生改变,更新后的信息直接通过底层到上层 的接口反映到编辑界面上。将链表改动后的信息写入到文件中,可以实现文件的保 存。 clearsource 根据嵌入式开发工具的需要,将源代码各单词按语法属性分类,对 不同类型的词法元素进行高亮显示,并应用数据库的功能是对多个文件建立工程项 目,实现跨文件相关代码的关联。clearsource 在开发过程中以 c 源代码的编辑为例 进行分析,并为其它语言的编辑功能的实现提供框架。 关键词关键词:源代码编辑,词法分析,高亮显示,工程项目 华中科技大学硕士学位论文 华中科技大学硕士学位论文 ii abstract with the foreground of development of embedded technology becomes increasely vastitude, an integrated developed tool that has beautiful interface、plentiful widget resource and powerful function is more needed in embedded research area. an editing tool for source code is a important part of an integrated developing tool. a brief、high- effect、 multi-function program editing interface is very important.it helps programmers to advance work efficiency,and be propitious to create high-quality、lower-error codes. a tool named clearsource that is a visual codes editing tool was developed on the basis of embedded graphic system clearx. it is integrated into embedded developing tools and provides users favourable operate interface and implement the visual display of codes and the orientation of syntax element. users can carry on editing and reading source code conveniently and intuitionisticly. clearsource takes link table as each documents bottom data structure,and makes each word of the document as one node of the link table.the message of each word can be got in the aspect of accidence、syntax、display according to corresponding node.the state of current document can be analyzed according to the link table.if users modify the document,the state of the corresponding link table will be modified in the same time and new message will reflect into the editing interface directly.the saving of files can be implemented when the message of the modified link table is written into the files. clearsource classifies the words of source code by syntax element in the need of embedded development environment.it displays different kind of syntax element visually.it creates a database in order to creates project onto multiple files and implement the association among the correlative syntax element in multiple files.because c language is usually used in embedded development, clearsource analyzes c codes as a example in the course of development,and provides a frame for the implementation of the editing function of other program languages. key words:soource code editting, accidence parse, visual display, project 独创性声明 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“”) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 华中科技大学硕士学位论文 华中科技大学硕士学位论文 1 1 绪论绪论 1.1 课题背景课题背景 嵌入式系统1是以应用为中心,以计算机技术为基础且软硬件均可裁剪,适用于 系统对功能、可靠性、成本、功耗严格要求的专用计算机系统。随着嵌入式系统2 在家电、娱乐、通讯等领域的广泛应用和硬件水平的不断提高,嵌入式研究领域越 来越需要一个外观漂亮、控件资源丰富、功能强大的开发工具3。一般说来,现有的 嵌入式系统开发工具的程序设计界面4具有代价昂贵,资源需求量高的特点,需要进 行优化。 传统的嵌入式开发环境往往仅是简单的文本或数字界面, 几乎看不到普通电脑上 华丽美观的图形用户界面,无法为用户提供良好的视觉支持,用户所进行的嵌入式 产品开发要经历繁琐的流程,这种现象随着嵌入式图形界面技术5,6的发展而发生了 极大的改观,该技术为嵌入式开发工具功能的完善提供了有效的途径。此前,为了 完善的嵌入式开发工具,本课题组开发了嵌入式图形系统服务器 clearx7,以及控 件可视化生成工具 developgui8。clearx 是 x 协议的一个子集实现,完全适用于嵌 入式环境的轻量级图形系统,实现上主要包括窗口的创建和管理、事件和图形绘制 函数,和一个基本的控件集,体系结构采取客户/服务器结构(也支持单进程方式) , 支持 linux、vxworks 等操作系统平台;developgui 实现了基于控件库 clearwidget 的界面可视化设计,具有应用界面可视化设计、图形界面中间表示、代码自动生成 的功能。 为方便用户进行更全面的可视化开发,developgui 需要集成一个源代码编辑界 面9。对于嵌入式程序开发人员来说,一个简单、高效、多功能的源代码编辑界面是 非常重要的,它能够提高程序员的工作效率,有利于高质量、低错误代码的生成10。 个人电脑中的编辑工具虽然已经很成熟,但体积很庞大,不适合嵌入式的特点。针 对嵌入式系统特点,源代码编辑工具必须高效率设计,力争以最小的内存消耗和最 短的代码实现更高的性能。因此,本课题旨在开发一款稳定、高效、适用于嵌入式 系统的的源代码编辑工具。 华中科技大学硕士学位论文 华中科技大学硕士学位论文 2 1.2 国内外概况国内外概况 1.2.1 嵌入式图形系统的概况嵌入式图形系统的概况 现在比较成熟的嵌入式图形系统11,12有国外的x window、microwindows/nanox 和国内的minigui。 1. x window 提起linux上的图形,许多人首先想到的是x window。x window13,14是目前类 unix系统中处于控制地位的桌面图形系统, 其上运行着包括cad建模工具和办公套 件在内的大量应用程序。x window并不是一个单一的软件,而是由一组软件协同工 作的一个系统。 主要是由x server和x clients通过x protocol在网络上通信完成应用任 务。x server15控制了所有的x资源和实体,同时负责一切由client所传来的x事件。 x client就是x中的应用程序。 很多在其它桌面系统中属于系统的功能, 在x中都只是 一个client, 特别是窗口管理器。 这种结构, 使得x下的软件开发非常灵活。 x protocol16 定义了应用和它的显示之间的客户/服务器关系。通过这个协议,应用与它的显示被 分离开来。因此,x的设计理念是:计算分布、设备分离、协议独立。 tiny-x17,18是x server在嵌入式系统的小巧实现,它由xfree86 core team的keith packard开发。它的目标是运行于小内存系统环境。典型的运行于x86 cpu 上的 tiny-x server尺寸接近1mb。 嵌入式系统发展到以嵌入式操作系统为标志的阶段后,能运行于各种不同类型 的处理器上,具有图形窗口和用户界面等功能,并具有丰富的嵌入式应用软件19。 一个成功的图形环境上面运行着大量应用程序。因此,在图形界面上对嵌入式开发 环境进行优化是可行的。 2. microwindows/nanox microwindows20,21是一个开放源码的项目, 目前由美国century software公司主持 开发。microwindows是一个基于典型客户/服务器体系结构的gui系统,基本分为三 层22。最底层是面向图形输出和键盘、鼠标或触摸屏的驱动程序;中间层提供底层 硬件的抽象接口,并进行窗口管理;最高层分别提供兼容于x window和windows ce 的api。该项目的主要特色在于提供了类似 x 的客户/服务器体系结构23,并提供了 相对完善的图形功能,包括一些高级的功能,比如alpha混合,三维支持,truetype 字体支持24等。但需要注意的是,microwindows的图形引擎存25在许多问题,包括: 华中科技大学硕士学位论文 华中科技大学硕士学位论文 3 无任何硬件加速能力;图形引擎中存在许多低效算法,同时未经任何优化;代码质 量较差。 3. minigui minigui26,27是由清华大学魏永明主持,并由许多自由软件开发人员支持的一个 自由软件项目,其目标是为基于linux的实时嵌入式系统提供一个轻量级的图形用户 界面支持系统。该项目自1998年底开始到现在,已历经3年多的开发过程。到目前为 止,已经非常成熟和稳定。目前,minigui已经正式发布了稳定版本1.0.9,并且开始 了新版本系列的开发,即minigui version 1.1.x,该系列的正式版也即将发布。 在 minigui 几年的发展过程中,有许多值得一提的技术创新点28,正是由于这 些技术上的创新,才使得 minigui 更加适合实时嵌入式系统;而且 minigui 的灵 活性非常好,可以应用在包括手持设备、机顶盒、游戏终端等等在内的各种高端或 者低端的嵌入式系统当中。这些技术创新包括:图形抽象层、多字体和多字符集支 持、两个不同架构的版本。 1.2.2 源代码编辑工具的概况源代码编辑工具的概况 1. notepad+ notepad+是在微软视窗环境之下的一个免费的代码编辑工具29,30。这个在 gpl 许可证下的自由软体开发专案采用 win32 api 和 stl 以 c+ 程式语言撰写成,并 且选用功能强大的编辑模组 scintilla31。多亏它的轻巧与执行效率,notepad+ 可 完美地取代微软视窗的记事本。notepad+ 的主要功能包括:语法高亮度显示及语 法摺叠功能、列印所见即所得、用户自定程式语言、字词自动完成功能、支援同时 编辑多重文件、支援多重视窗同步编辑、完全支援拖曳功能、自动侦测开启档案状 态、支援多国语言,等等。 2. gnu emacs gnu emacs 32,33是 gnu 计划下的第一个产品, emacs 为 editor macros 的缩写。gnu emacs 是由 c 与 lisp 语言写成,任何人都可依据需要将个人所 发展的函式(function)加入 gnu emacs 上。当然,新发展的软体是不可以从事 商业买卖, 只能将它无条件的奉献出来。 新发展的函式可以直接在 emacs 中使用, 不需重新编译(complie) 整个 emacs ,而且新增的函式也不会破坏 emacs 原 有的结构。就因为有此特性,emacs 的函式34可以 与日俱增。愿与他人共享成果 华中科技大学硕士学位论文 华中科技大学硕士学位论文 4 的使用者,可以透过电子邮件或电子公布栏,将函式的原始码公诸於世。公布的函 式,最後会经由 fsf 的审查35,以决定是否要加入新版的 emacs 中。fsf 也鼓 励使用者将所发现的错误,透过相同的管道,提供给 fsf 作为改进 之用。gnu emacs 就是在如此的运作下,靠大家共同的努力来提升品质,以达产品的稳定性。 3. ultraedit ultraedit36,37是一套功能强大的文本编辑工具,可以编辑文本、十六进制、ascii 码,可以取代记事本,内建英文单字检查、c+ 及 vb 指令突显,可同时编辑多个 文件,而且即使开启很大的文件速度也不会慢。软件附有 html 标签38颜色显示、 搜寻替换以及无限制的还原功能,一般大家喜欢用其来修改 exe 或 dll 文件。 1.3 课题主要研究工作课题主要研究工作 本课题的主要研究工作是借鉴notepad+、 gnu emacs和ultraedit的实现原理, 仿效 windows 下的 source insight 的编辑效果,在嵌入式图形系统 clearx 上开发出一 款源代码编辑工具 clearsource,具有以下特征:提供良好的代码编辑界面,对代码 进行词法元素的分类和高亮显示,实现词法元素定位功能,实现多文件内语法的关 联。本课题的具体研究工作包含以下几个方面: 1. 源代码编辑工具的整体结构设计,研究如何解析源代码文档并构建该软件的 底层环境。源代码文档将解析为单词集合,然后对其建立数据结构,使定义 在其上的各种编辑功能能以最简短的代码和最小资源消耗实现。 2. 源代码特殊显示效果的研究,源代码将按照单词语法类型的不同对各单词采 用不同的颜色、字体显示,给用户提供良好的视觉效果,使用户能更清晰地 了解源代码中每个单词的语法意义,而且能帮助用户发现程序中的一些错 误。 3. 多文件工程项目的支撑,研究如何建立工程项目中多文件词法元素的关联关 系。用户在主程序窗口中选定一个单词时,关联窗口会显示关联单词附近处 的源代码,并将关联单词进行选定显示,使用户能更方便地进行多文件的源 代码编辑,更清楚掌握多文件源程序的结构。 华中科技大学硕士学位论文 华中科技大学硕士学位论文 5 2 源代码编辑工具的整体结构设计源代码编辑工具的整体结构设计 嵌入式图形系统 clearx 采取客户/服务器体系结构,提供了完备的控件库,其事 件回调机制和绘图机制极大方便了各种可视化应用程序的开发。本章首先介绍源代 码编辑工具 clearsource 的设计思想,然后阐述 clearx 服务器为 clearsource 提供的 底层服务,最后介绍 clearsource 的整体结构设计。 2.1 设计思想设计思想 基于图形系统 clearx 开发了源代码编辑工具 clearsource。 考虑到 clearx 主要采 用 c 语言开发, 并且可以直接运行在 linux 的 x window 界面上, 而且 linux 系统本 身也为 c 语言工具的开发提供了 gcc、gdb 等编译、调试工具,clearsource 选择 c 语言作为开发语言。 clearsource 的功能需求是:运行在 clearx 上,提供所见即所得的编辑界面给用 户,可以对源代码文件进行内容上的修改,同时拥有类似于 windows 下的 source insight 那样的高亮显示词法元素的功能,并可对多个源代码文件建立项目,在项目 间实现词法元素定位的功能。 首先, 需要一个良好的软件外观, 由窗口、 按钮, 滚动条等控件组合而成。 clearx 提供的是一套建立外观风格的机制,利用这套机制,用户可以建立各种不同风格的 控件。同时 clearx 对各控件设置了事件回调机制,对界面上各控件编写事件回调函 数,使用户可以在界面上进行直观、方便的编辑操作。 在打开一个文档后,clearsource 要读取文档内容,对其进行词法解析,构建对 应的数据结构和操作集合。 考虑到编辑工具最常用的操作是插入和删除, clearsource 以单词为单位设置节点,建立双向链表。在节点中,随着分析的深入,依次添加: 单词基本信息,包括字符串指针、字符个数、前驱和后继等信息;语法相关信息, 包括是否是函数名、是否是变量等。以上信息最终为显示服务,在节点中添加显示 类型信息,以整常数的宏来在显示模式的全局数组中找到显示方式。 最后,应用嵌入式数据库 berkrley db,对多个文件生成的链表集合构建数据库, 以较快的速度完成大量数据的处理,实现一些跨文件的词法元素搜索、关联等功能。 考虑到嵌入式开发通常以 c 语言作为开发语言, 本课题所开发的编辑工具目前专 华中科技大学硕士学位论文 华中科技大学硕士学位论文 6 门针对 c 语言的代码编辑进行分析和设计,并力求达到修改少量代码即可适用于其 它语言编辑的效果。 2.2 嵌入式图形系统嵌入式图形系统 clearx 简介简介 clearx 是适用于嵌入式环境的轻量级图形系统,具有体积小、消耗资源少、功 能强大、可移植性强等特点。目前,clearx 已经被成功地应用在武汉精伦电子的 gps 等许多产品中,并且运行稳定。 clearx 采用客户/服务器模式,分为客户程序(clearx client)和服务器程序 (clearx server) 。 客户程序是在 clearx 下执行的应用程序, 它只能发送请求(request) 给服务器程序。服务器程序是控制实际显示器和输入设备的程序,它是 clearx 系统 中惟一与设备有关的程序。 clearx 的整体结构见图 2.1。 应用程序 libclearx 窗口管理器 libclearx 应用程序 libclearx 窗口层 引擎层 驱动层 键盘显示设备鼠标或触摸屏 clearx服务器 控件控件 图 2.1 clearx 的整体结构 2.2.1 clearx 提供的控件集和事件回调机制提供的控件集和事件回调机制 控件是用户可与之交互以输入或操作数据的对象, 它是专门为方便编写图形用户 界面而设计的实现某种特定功能的窗口小部件。控件为应用程序的编写带来了极大 的方便,使其不必处理客户端繁杂的接口。clearx 之上使用的控件集是 tinywidets, 它提供了丰富的控件:窗口、普通按钮、单选按钮、复选按钮、单行编辑框、多行 华中科技大学硕士学位论文 华中科技大学硕士学位论文 7 编辑框、滚动条、多行列表框、树形列表框、组合框、工具条、弹出菜单等等。 整个控件系统分为显示和事件处理两个功能模块。 tinywidget 将显示模块和事件 处理分开,用专门的显示模块来管理和操作与外观显示相关的全部属性,剩余的属 性主要是关于事件处理一些属性和函数。基于 tinywidets 应用程序的基本框架是: 系统初始化;创建控件,注册事件回调函数;进入事件循环处理。 tinywidget 也是采用消息循环和事件处理机制。 图形系统通过消息来描述程序中 鼠标、键盘以及触摸屏等设备的非同步的变化,无论它们中的哪一个发生变化,图 形系统都会通知程序,同时程序可以依此来产生相应的动作。当服务器俘获到事件, 将事件发送给对应的事件处理函数,除了暴露事件直接通知显示模块改变外观以外, 其它事件都会通知具体控件中的事件处理函数,这些函数如果需要改变控件外观则 通知显示模块进行具体操作。显示模块向服务器发送绘图命令来完成外观显示。 2.2.2 clearx 的绘图机制的绘图机制 如同美术绘画的过程,计算机内部图形的绘制分为画布设置和画笔设置,clearx 服务器分别以 framebuffer 和 gc 来实现。 clearx 的图形显示底层采用 framebuffer 的机制,分配一段内存空间充当显示区 域,比如分辨率为 1024x768,颜色位数为 24bit(三个字节) ,分配的空间大小为 1024x768x3 个字节,只要往相应内存位置填入颜色值就相当于在屏幕的相应位置画 了一个点,这样 framebuffer 就像一张画布。 gc 即 graphics context,是存在服务器上的一种资源。gc 是用来存放绘图时所 需要的各项资讯(例如: 线的宽度和长度,前景和背景颜色等等),在大部分的绘图 功能中,都需要使用 gc 做为参数。其实,可以 gc 看做是我们在做画时的画笔,不 同的画笔会产生不同的效果。同样的,也可以使用不同的 gc 内容的变化,来组合 达成我们所需要的画面效果。xlib 提供 xgcvalues 这个结构, 以存放 gc 的相关 资讯。我们将要 设定的值,存於这个结构,同时也经由这个结构传回 gc 的内存值。 clearx 中的各种绘图算法,从最基本的画点、画线操作到复杂的控件显示,都 是基于这种画笔和画布的机制生成。 clearsource 在不同的窗口绘制字符串和光标时, 在同一块 framebuffer 内存空间中使用不同 gc,实现不同显示效果。 华中科技大学硕士学位论文 华中科技大学硕士学位论文 8 2.3 源代码编辑工具的模块结构设计源代码编辑工具的模块结构设计 clearsource 的模块结构图如图 2.2 所示: 图 2.2 clearsource 的模块结构图 clearsource 用链表保存文档信息,在用户进行编辑操作时自动对底层信息做出 修改,使用户的编辑操作所见即所得。拥有美观、友好的软件界面,用户可在软件 界面上直观地编辑、分析、修改多个文件的源代码,极大地方便了用户的编程开发。 软件主要包括以下几个模块: 1. 词法分析模块。将源代码文档解析成单词集合,并以单词为节点建立链表结 构,设置各种表示单词属性的成员为编辑功能服务。 2. 显示模块。在构建底层数据结构的基础上,应用 clearx 服务器的显示和绘图 机制使源代码具有高亮显示效果,提供给进行程序开发的用户较完备的代码 编辑功能。 3. 工程项目管理模块。通过在软件中内置数据库对多个文件建立工程项目,以 各单词节点的语法信息为键值,使用户更方便对分布在多个文件内、相联系 用 户 可视化编辑 单词分类 源代码高亮显示词法元素定位 词法分析模块显示模块工程项目管理模块 华中科技大学硕士学位论文 华中科技大学硕士学位论文 9 的源代码进行编辑。 2.4 源代码编辑工具的软件界面设计源代码编辑工具的软件界面设计 clearsource 的界面由显示代码窗口 code_win、词法元素定位窗口 context_win、 项目功能的窗口 project_win 以及饱含三个按钮的菜单栏的组成。其中,code_win 为 主编辑界面,用来显示源代码;context_win 用来显示源代码关联后的定位区域; project_win 用来显示工程项目所包含的文件信息;菜单栏上从左到右的按钮分别具 有打开文件、保存文件和管理工程项目的功能。clearsource 界面如图 2.3 所示: 图 2.3 clearsource 软件界面 程序在主函数中生成这些控件。首先,在 clearx 的主窗口中创建根窗口,其余 控件都属于根窗口的子控件。code_win、project_win 和 project_win 分别以一定的坐 标和大小在根窗口上创建。此外,为了实现当焦点落在 code_win 上时,context_win 和project_win总 处 在code_win上 方 的 效 果 , 对code_win打 上 tn_window_no_auto_raise 标志。窗口创建完毕后,要设置其背景色,并求 出其 id 号以供后续调用。 2.5 本章小结本章小结 本章首先描述了源代码编辑工具 clearsource 的设计思想、clearx 图形系统的部 分特性,最后介绍了 clearsource 的主体结构模块和外观设计。接下来,将分别详细 介绍三个模块功能的具体实现。 华中科技大学硕士学位论文 华中科技大学硕士学位论文 10 3 源代码词法分析功能的实现 源代码词法分析功能的实现 现有的源代码编辑工具通常最基本的功能是读取一个源代码文档,对其进行修 改,并最终将修改过的文档保存到磁盘上39。这些也是源代码编辑所需要的基本功 能。本章介绍 clearsource 如何打开文件、读取其内容,进行词法解析,进而介绍如 何建立双向链表存放文档的信息,对各单词按语法属性进行分类,为接下来的显示 功能和关联功能建立底层接口。 3.1 c 源代码的词法解析源代码的词法解析 clearsource 和 windows 系统下的记事本,以及 linux 系统下的 gedit 一样,需要 将用户需要编辑的文档正确的显示给用户。clearx 服务器提供了画字符串的基本功 能,对其进行直接调用就能让文档内容显示到 code_win 中。为了实现此功能,首先 要将所要打开的文件进行词法解析,形成对应的单词集。 一个 c 源代码文档在计算机中是一个字符串序列。进行词法解析的第一步是得 到构成文件内容的字符串序列。定义 cs_parse_file 作为字符串序列类型: typedef struct int fd;/解析错误标志,值为-1 表示解析错误 int length;/字符个数 int index;/索引,指向当前所指字符在序列中的位置 char ret1024;/指向首字符 char buf21024;/第 index 个字符的后续 1024 个字符,空字符表示为0 cs_parse_file; 对每一个需要解析的文档分配一个 cs_parse_file 类型的变量, 然后调用 open 和 read 给该变量各成员复制,就可得到该文档的字符串序列信息。默认状态下,初 始赋值后索引指向字符串的首地址。 然后,clearsource 从字符序列中按顺序将字符一个个取出,并按照 c 语言的语 法规则,将字符序列中若干个临近的字符组合在一起形成单词。clearsource 将一个 单词的最大长度定位 1024,足以满足一般用户的需求。根据 c 语言通常的规则,将 华中科技大学硕士学位论文 华中科技大学硕士学位论文 11 c 源代码文档的单词分为 7 种类型: 1. sd_word:所有以英文字母或下划线开头的单词。如果读出的字符是英文 字母或下划线,继续向前读取。在读取过程中读到的字符是字母、数字或下 划线,则继续向前读取,否则结束。将前面读出的字符串序列组合成一个单 词,其类型为 sd_word。 2. sd_num:所有以数字开头单词。如果读出的字符是数字,向前读取到读出 的字符不是以下几种类型则结束:字母、数字、下划线、小数点。 3. sd_denotation:所有由 13 个非空白显示的符号组合在一起,具有特定 意义的单词。如果读到了非空白显示的符号,需要借助一个辅助数组来完成 最佳匹配。辅助数组定义如下: struct special_fuhao int len; char c3; fuhao = 1,“”,1,“、”,1,“!”,1,“”,1,“#”,1,“$”,1,“%”, 1,“”,1,“ james gettys (1996). x window system: core and extension protocols: x version 11, releases 6 and 6.1. digital press. 2003,volume 13 (no.8):9092 14 robert w scheifler. x window system protocols. massachusetts institute of technology, laboratory for computer science, 2002, volume 1(no.3): 58 15 j. e. neilson, c. m. woodside,d.c. petriu, et al. software bottlenecking in 华中科技大学硕士学位论文 华中科技大学硕士学位论文 45 client-server systems rendezvous networks. ieee transactions on software engineering, 1995, volume 21(no.9): 776782 16 胡双红, 邓月明. 基于microwidows的嵌入式linux轻量级图形应用库的设计. 电脑与信息技术, 2006, 14 卷: 1012 17 oscar boykin (2004-04-25). x marks the spot: looking back at x11 developments of past year. osnews. 2004, volume 5(no.6): 2730 18 陈沨, 毛洋林, 潘志浩. 基于嵌入式 linux 的图形界面显示系统的设计. 微计 算机信息, 2004 年, 第 01 期: 7677 19 许信顺, linux 系统的特点. 嵌入式 linux 应用编程, 2007: 6364 20 吴升艳, 岳春生, 胡冰. 嵌入式 linux 系统下 microwindows 的应用. 单片机与 嵌入式系统应用. 2003, (6): 2123 21 谢长生. 基于microwindows的嵌入式gui分析及应用j. 计算机工程与科学, 2005, 27(6): 36-37 22 王同洋, 熊伟. 嵌入式 linux 中图形用户界面的研究与设计. 微计算机信息, 2006, 22(3): 9092 23 王春蕊, 杨寿保. x 窗口系统中应用程序构造技术探讨. 计算机工程,2001 年, 第 10 期: 186188 24 宋健健, 刘曦. linux 图形化程序设计. 2006, 4(2): 78 25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年青岛市白酒代理合同范本
- 2025汽车美容保养合同协议书
- 资料翻译服务合同范本
- 景观标识设计合同范本
- 借软抵押合同范本
- 承包鱼塘水源合同范本
- 软件制图交易合同范本
- 书店桌椅购买合同范本
- 门面毛坯出租合同范本
- 汽车油气销售合同范本
- 多媒体教室使用的课件
- 2025年军队专业技能岗位文职人员招聘考试(工程机械驾驶员)历年参考题库含答案详解(5卷)
- 2025年下半年广西现代物流集团社会招聘校园招聘笔试参考题库附带答案详解(10套)
- 2025年粉笔辅警考试题库
- 水声传感器技术研究与应用
- 2025年小学教研室教学计划
- 2025年上海市建筑工程施工合同模板
- 手术室护理业务学习
- 贩卖人口罪与强迫劳动罪
- 新员工入职职业道德培训
- 婚内债务隔离协议书范本
评论
0/150
提交评论