当前位置: 文档之家› ccs33中建立-编译-调试工程及常见错误讲解

ccs33中建立-编译-调试工程及常见错误讲解

ccs33中建立-编译-调试工程及常见错误讲解
ccs33中建立-编译-调试工程及常见错误讲解

Part1:ccs3.3中新建一个DM6437的示例工程

1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子

2、用file-new选择建立一个dsp/bios文件

在打开的对话框中选择你使用的板子的型号,如下图:

3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。保存这个文件到工程目录下先,文件类型为tcf。

4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。此时将tcf文件和这个cmd文件同时添加到工程中,使用

5、然后需要修改一个编译选项,点击下图所示选项进去:

6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成 -mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。

7、file-new-source file建立一个c源文件,保存并加入到工程中。

以下是示例程序:

#include

#include

#include

Int main(Int argc, String argv[])//main函数的类型必须这样写

{

unsigned int i;

unsigned int sum=0;

for(i = 0; i<=100; i++ )

{

sum += i;

}

printf("the sum = %d .\n",sum);

printf("the program run over!\n");

printf("the program run over!\n");}

注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。这里是64+平台所以是在C:\CCStudio_v3.3\C6000\cgtools\lib目录下的rts64plus.lib文件,否则ccs会提示如下警告和错误:

>> warning: entry point symbol _c_int00 undefined

undefined first referenced

symbol in file

--------- ----------------

_printf

E:\\WorkContent\\projectExample\\Test\\Debug\\test.obj

>> error: symbol referencing errors - './Debug/Test.out' not built

2)如果想要printf正确输出信息,cmd文件中必须指定heap的大小,即cmd文件这样

写:

-c

-stack 0x00001000 /* Stack Size */

-heap 0x00001000 /* Heap Size */

//前面这三项必不可少

MEMORY

{

L2RAM: o = 0x10800000 l = 0x00020000

DDR2: o = 0x80000000 l = 0x10000000

}

SECTIONS

{

.bss > L2RAM

.cinit > L2RAM

.cio > L2RAM

.const > L2RAM

.data > L2RAM

.far > L2RAM

.stack > L2RAM

.switch > L2RAM

.sysmem > L2RAM

.text > L2RAM

.ddr2 > DDR2

}

另外,我在使用dsp/bios自动生成的cmd文件进行编译的时候,不会报错误或警告,但是printf就是不能输出任何东西,后来解决了,具体解决方法见后面的:“ccs编译中常见的编译错误及解决方法”的第4部分

8、compile-rebuild all;无错误提示。此时项目就建立并编译好了。下面就要把程序加载到板子上运行了。

9、首先要先连接板子,点击debug->connect

10、如果连接成功,会看到下面的效果:

未连接时:

连接成功后:

连接成功的同时,ccs会打开一二Disassembly窗口,如下图:

11、加载程序吧,程序编译后,会在当前目录的Debug目录下生成一个*.out的文件,此例中的文件是“6467EXAM.out”;通过file->load Program加载这个文件

加载后,Disassembly窗口中会有所变化,如下图:

12、Debug->Run去吧

提示:

1 Ccs的项目不支持创建在中文目录下。

2 项目移动到其他文件夹下面时,需要修改*.pjt中的

[Project Settings]

ProjectDir="E:\WorkContent\projectExample\6467EXAM"到新的目录。

很简单的一个例子。希望能帮助入门的朋友。

Part2:ccs中工程的创建-改变工程目录时注意的细节

以6437为例:

1、在安装目录下,打开如下路径下的示例工程:video_loopback

C:\CCStudio_v3.3\boards\evmdm6437_v2\tests\video_loopback

Ok,如果板子没问题,肯定能编译成功的。

2、有时候我们需要搬移自己的工程到别的目录或别的机器上去,此处,将这个工程拷贝到F盘中去,再重新打开,编译,你会发现此时提示以下错误:"main.c", line 12: fatal error: could not open source file "evmdm6437.h"

"tvp5146.h", line 12: fatal error: could not open source file "evmdm6437_i2c.h"

"video_loopback_test.c", line 12: fatal error: could not open source file "evmdm6437_dip.h"

找不到对应的头文件了??并且你在工程中也打不开这几个文件,打开时会提示:

3、看来ccs在找这些个头文件时,没有从工程中获取正确的路径信息,打开项目文件,此处是:video_loopback.pjt,会发下以下几行:

["Compiler" Settings: "Debug"]

Options=-g -q -fr".\Debug\" -i"..\..\include\" -d"_DEBUG" -mv6400+

["Compiler" Settings: "Release"]

Options=-q -o3 -fr".\Release\" -i"..\..\include\" -mv6400+

看意思是说,包含的头文件的路径是在..\..\include\目录下面;如果这个项目在原来默认的目录下,那么是正确的。因为的确能看到所谓的include文件夹,他们就是在ti默认安装目录下面的。

但是由于我们改变了项目的路径,那么这些个目录肯定是不对的,所以ccs无法找到这些个文件了。。

4、那是不是修改过来就好了。

答案是肯定的也是否定的,如果我们找到这个include目录,并写到pjt文件中,如下所示:

["Compiler" Settings: "Release"]

Options=-q -o3 -fr".\Release\"

-i"C:\CCStudio_v3.3\boards\evmdm6437_v2\include\" -mv6400+

那么肯定是可以的。但是如果我们拷贝到别的机器上,而别的机器上的开发板驱动或ccs的安装路径和我们不一样的话呢?难道重新再找一遍再写一遍??

5、可能你已经想到了,使用相对路径,那么我们先看看ccs都在我们环境里面注册了那些环境变量:

5.1、打开cmd,切换到c盘。然后输入以下命令:

set>a.txt

Set命令是查看系统中注册的环境变量的。>操作符是用来重定向用的,可以将查询到的结构重定向到一个txt文件中。所以上面的命令是那么写的。

5.2打开a.txt.会看到一堆的环境变量。其中有这么几个是ccs相关的:

BIOSDVSDK_INSTALL_DIR=C:\dvsdk_1_01_00_15

BIOSUTILS_INSTALL_DIR=C:\dvsdk_1_01_00_15\biosutils_1_00_02

BIOS_INSTALL_DIR=C:/CCStudio_v3.3/bios_5_31_07

BSL_EVMDM6437_INSTALLDIR=C:\CCStudio_v3.3\boards\evmdm6437_v2

5.3第四个就是我们想要的目录了。那么现在修改pjt文件中的那两行内容

为:

["Compiler" Settings: "Debug"]

Options=-g -q -fr".\Debug\" -i"%BSL_EVMDM6437_INSTALLDIR%/include"

-d"_DEBUG" -mv6400+

["Compiler" Settings: "Release"]

Options=-q -o3 -fr".\Release\"

-i"%BSL_EVMDM6437_INSTALLDIR%/include" -mv6400+

5.4编译,连接成功。并且再也不怕移来移去了。

5.5注意:有时候可能还有一个地方需要该:

[Project Settings]

ProjectDir="E:\WorkContent\projectExample\video_loopback"

指向项目文件的绝对路径。而项目文件中的相对路径都是基于该路径。

Part3:ccs编译中常见的编译错误及解决方法

1 fastcopy 提示找不到ialg.h等头文件,打开cmd文件后看到目录包含命令有:

-i"%XDAIS_INSTALL_DIR%/packages

但是系统中没有XDAIS_INSTALL_DIR这个环境变量,于是找到xdais的安装目录:C:\dvsdk_1_01_00_15\xdais_5_21\

然后添加系统环境变量:

变量名:XDAIS_INSTALL_DIR

变量值:C:\dvsdk_1_01_00_15\xdais_5_21\

注销或重启或者kill掉explorer后在运行即可

2 ccs提示:could not open source file "ti/sdo/fc/acpy3/acpy3.h"。和问题2相似,在cmd文件中找到另一条包含目录命令:

-i"%FC_INSTALL_DIR%/packages"

同样在系统环境变量里面没有这个东西。因为acpy3是属于framework component 的东西,所以找到fc的安装目录

C:\dvsdk_1_01_00_15\framework_components_1_20_03

添加系统环境变量:

变量名:FC_INSTALL_DIR

变量值:C:\dvsdk_1_01_00_15\framework_components_1_20_03

3、在程序中查到其用到了FCPY_IFCPY这个变量:

IFCPY_Fxns * fxns = (IFCPY_Fxns *)&FCPY_IFCPY;

但是只在整个工程的.c 或.h文件中找到如下FCPY_IFCPY的定义:extern far IFCPY_Fxns FCPY_IFCPY; [在当前文件前面这样定义的]

按上面的定义,这个FCPY_IFCPY肯定在其它文件中有定义的,但是并没有找到。最后在命令连接文件.cmd文件中找到如下一行语句:

_FCPY_IFCPY = _FCPY_TI_IFCPY;

而且找到FCPY_TI_IFCPY 定义如下:

IFCPY_Fxns FCPY_TI_IFCPY ={/* module_vendor_interface */

IALGFXNS, /* IALG functions */

FCPY_TI_control, /* Control function */

FCPY_TI_doCopy /* The fcpy fxn */

};

因此推断,cmd文件中的这个命令将FCPY_IFCPY FCPY_TI_IFCPY两个东西等同起来了,前面的下划线应该是格式需要。有熟悉这个的朋友给解释下。

4、使用dsp/bios时,printf函数默认不起作用。

这是因为bios中没有动态分配heap的原因,默认情况下mem对heap的分配如下图所示:

1)很明显看到这里选择的是:no dynamic memory heaps

但是取消选中后,会发现下拉框中并没有任何选项让选择把heap放在哪里。如下图所示:

并且会之前弹出一个对话框:

大概意思是让你去重新配置一块独立的内存块。

2)另外还有一个地方需要注意,就是ddr2的设置。打开ddr属性,会发现:

创建heap选项居然是灰色的.....那我去哪里创建heap呢???

3)下面是正确的步骤:

3.1)首先打开MEM的属性对话框,将no dynamic memory heaps 复选框取消,并按应用按钮后,点击确定按钮。如下图所示:

3.2)这时再去打开ddr2的属性对话框:

你会发现,这个时候“create a heap in this memory”项可以用了,点选此复选框。然后输入适当的大小,并点击应用后再点确定按钮退出。如下图所示:

3.3)此时,我们已经为heap分配了一段数据空间了,但是还得回到mem属性对话框中:

此时就发现,原本只有一项MEM_NULL的下拉列表中多了一项DDR2;选中DDR2,[segment for dsp/bios objects 和 segment for malloc()/free()都选中ddr2].

然后点应用、确定按钮后退出。再去试试程序。Printf函数可以用了。

5、内存分配:MEM_alloc:如何指定分配对象的位置?比如分配到ddr中或sram中

当时的Dm6467内存分配:

然后定义变量:

fcpyInput = (int *)MEM_alloc(1, sizeof(int)*INPUTSIZE, 8);

fcpyOutput = (int *)MEM_alloc(0, sizeof(int)*INPUTSIZE, 8);

调试的时候结果是这样的:

经查资料得知,mem_alloc中第一个参数,指定的是内存分配的位置;其值与系统内存heap 的定义相关,其具体使用如下:

1)如下图所示,在ddr中建立一个heap,并指定heap_identifier_label)为

“_EXTERNALHEAP”,这个名字可以自己随便起。

2)然后在程序中,按照heap label定义一个变量,变量名必须和heaplabel下划线后面的名字一样,并且类型是external的,如:

extern int EXTERNALHEAP;

3)编译的时候,编译器会自动将这个整形变量和heap label联系起来。如果不写

“extern”关键字,不仅编译器不能将其和heap label联系起来,而且连接的时候会提示“EXTERNALHEAP”被双重定义了。因此程序中不能定义和heap label 名字相同的变量。如果有,就必须是extern类型的,编译器会自动将其指向你创建出来的那段heap。

4)最后mem_alloc就可以这样写了:

fcpyInput = (int *)MEM_alloc(EXTERNALHEAP, sizeof(int)*INPUTSIZE, 8);

6、程序编译连接通过,但是在执行的时候提示"CIO BUFFER"类似的错误:

我在这里是因为在bios为iram分配空间地址时由于来回修改,结果导致出现的错误。后来重新按照标准修改bios的tcf文件后,不会再有这个错误了。

7、Heap的作用,内存分配中指定段的作用

Heap相当于程序执行空间,如果ddr有100K,如果划分20k为heap,那么程序只能在这20k 的空间中运行,我们声明的变量、数据均放在所声明的heap中,但是heap的位置可以有多处,例如dm6437中有128k的L2,有256k的DDR(假设),我们分别在L2和DDR中创建50k 的heap,那么我们可以在创建对象时指定创建的位置。这点和计算机运行程序是截然不同的。

段定义的作用:段定义了程序装入的位置,即存放的位置,这个和运行时的位置是不一样的,从连接后的map文件中可以看得出来,程序装入的位置均在heap定义地址的后面。即heap是用来运行程序的,其它地方是用来放程序和数据的,并且是根据我们定义的段的位置存放。一般来说,调试程序的时候,我们将所有的程序和数据均指定存放到DDR中,这

样读写方便,无需掉电时保存;现在加入DDR的起始地址是0x8000 0000 ,结束地址是0x8800 0000;在其上定义的heap的大小是0x0000 8000;并设定所有程序或数据均存放到DDR中,并假定程序中定义了一个变量temp;

编译连接程序后,我们会看到,map文件中出现的程序或数据装入的地址均在0x8000 8000地址的后面,而运行时会发现temp变量的地址在0x8000 0000 和0x8000 7FFF之间,正好位于我们定义的heap的地方。

Heap的英文意思是“堆”,但是这里的“堆”和c++程序中“堆”的概念似乎并不一样,叫它“可执行的内存空间”更合适。

c语言编译常见错误列表

1."c" not an argument in function sum 该标识符不是函数的参数 2.array bounds missing ] in function main 缺少数组界限符"]" 3.Array size too large in function main 数组规模太大 4.bad file name format in include directive 在包含指令中的文件名格式不正确. 5.Call of non-function in function main 调用未经过定义的函数. 6.cannot modify a const object in function main 对常量不能进行修改. 7.character constant too long in function main 字符常量太大 8.constant expression required in funtion main 数组定义的时候,数组大小要求是常数 https://www.doczj.com/doc/4614784043.html,pound statment missing } in function main 复合语句漏掉符号"{" 10.declaration syntax error in function main 宣告语法错误 11.expression syntax in function main 表达式语法错误 12. extra parameter in call to sum in function 调用函数时使用了过多的参数 13.illegal use of floating point in function main 浮点数的不合法使用 14.illegal pionter subtraction in function main 不合法的指针相减 15.invalid pointer addition in function main 无效的指针相加 16.out of memory in function main 内存不足 17.statement missing ; in function main 语句后面漏掉分号. 警告报错

哈尔滨工程大学 优秀个人简历

两年以上工作经验 30岁 上海 139********(手机) wangrui@https://www.doczj.com/doc/4614784043.html, 王瑞景观工程师 最近工作 公司:X X房地产开发行业:房地产开发职位:景观工程师 最高学历 学校:哈尔滨工程大学 学历:本科专业:通信工程 工作经验 公司:X X房地产开发2010/1--2017/5 职位:景观工程师 行业:房地产开发 部门:设计部 工作内容: 1、负责配合优化参数的修改; 2、负责****模块相应功能的调试和增强 3、负责产品需求分析、可行性分析,单板的硬件框架设计; 4、负责项目管理、进度控制、系统设计以及模块的分发、管理工作; 5、负责为投标项目撰写投标技术方案; 6、负责****局域网的组建及维护。 公司:X X房地产开发有 限公司 2009/1--2010/1 职位:景观设计师 行业:房地产开发 部门:设计部 工作内容: 1、负责协助上级领导完成设计供方的筛选、委托工自我评价 具有丰富的无线通信经验,参加过数 十个国内外大中型项目,例如: ***、***。熟悉短波、VHF、UHF、 微波等无线频段的传播特性,具备很 强的解决突发问题的能力。对工作具 有热情和投入的精神、具有团队合作 意识和很强的事业心。沟通能力强, 编程习惯好,可以承受在较大压力下 工作。 求职意向 到岗时间:一周以内 工作性质:全职 希望行业:房地产开发 目标地点:上海 期望月薪:面议/月 目标职能:景观工程师 语言能力 英语:熟练 听说:熟练 读写:熟练 证书 大学英语六级2007/6大学英语四级2006/12

作;2、负责参与项目前期的调研工作,归纳和整理规划设计条件;3、负责景观设计书的编制;4、负责监督工程的质量,控制工程进度5、负责参与景观工程的初步验收和竣工验收,审核工程质量验收并做好相关记录。 教育经历 学校:哈尔滨工程大学2005/9--2009/6 专业:通信工程本科

编译原理期末考试习题及答案

一、填空题|(每题4分,共20分) 1. 乔母斯基定义的3型文法(线性文法)产生式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。 2.语法分析程序的输入是单词符号,其输出是语法单位。 3 型为 B → .aB 的LR(0)项目被称为移进项目,型为 B → a.B 的LR(0) 项目被称为待约项目, 4.在属性文法中文法符号的两种属性分别为继承属性和综合属性。 5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。 二.已知文法 G(S) (1) E → T | E+T (2) T → F | F*F (3) F →(E)| i (1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分) 答:(1)最右推到(2分) E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i) (2) 语法树(2分) (3)(4分) 短语:(T*F+i),T*F+i ,T*F , i 直接短语:T*F , i 句柄:T*F 三. 证明文法G(S) :S → SaS |ε是二义的。(6分) 答:句子aaa对应的两颗语法树为:

因此,文法是二义文法 四.给定正规文法G(S): (1) S → Sa | Ab |b (2) A → Sa 请构造与之等价的DFA。(6分) 答:对应的NFA为:(6分) 状态转换表: a b {F} Φ{S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分) a b {0} {1,3} {0} {1,3} Φ{2,3} {2,3} {1,3} {2,3} (5分) 六. 已知文法G(S) : (1) S → ^ | a | (T) (2) T → T,S | S 试:(1)消除文法的左递归;(4分) (2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为: (1) S → ^ | a | (T)

C语言调试常见错误及修改方法(附习题)

1.调试 C 程序时常见的错误类型分析 一般情况下,错误主要分为两大类:一、语法错误。对于这种错误,用编译器很容易解决。所以,改错题的第一步是先编译,解决这类语法错误。下面总结了二级C 语言上机改错题中常见的语法错误: (1) 丢失分号,或分号误写成逗号。 (2) 关键字拼写错误,如本来小写变成大写。 (3) 语句格式错误,例如for 语句中多写或者少写分号。 (4) 表达式声明错误,例如:少了() (5) 函数类型说明错误。与main ()函数中不一致。 (6) 函数形参类型声明错误。例如:少* 等。 (7) 运算符书写错误,例如:/ 写成了。二、逻辑错误,或者叫语义错误,这和实现程序功能紧密相关,一般不能用编译器发现。对于逻辑错误可以按这样的步骤进行查找。 (1) 先读试题,看清题目的功能要求。 (2) 通读程序,看懂程序中算法的实现方法。 (3) 细看程序,发现常见错误点。 2.改错题的改错方式总结,当然这些总结只能对大部分改错行有效 1、若错误行是函数首部,可分为以下几种情况: A、该行最后若有分号则删除,中间若有分号则改成逗号 B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m 个元素的指针变量,则第二维的长度必须与main 中对应数组的第二维长度相同 C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return语句则函数的类型必须与return 后变量的类型一致。 2、若错误行是if 或while 语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。 3、若错误行中有if、while 、for 则要特别注意条件表达式的错误问题: A、指针变量的应用,若表达式中有指针变量且没有指针运算符,则加上指针运算符 B、若条件表达式中只有一个等于号,则改成两个等于号,若为其它比较运算符则一般是进行逆转或加一个等于号 C、f or 中要用分号分隔表达式,而不是用逗号 4、语法错误 A、语句缺少分号,若错误行中有语句没有用分号结束,则加上分号。 B、大小写不对,若错误行中有大写字母则一般都改成小写字母。 5、指针变量的运用,若错误行中有指针变量,并且该变量名前没有指针运算符则一般都是加上指针运算符 6、若错误行为return 语句,则首先看是否是缺少分号若是则加上分号即可;否则就是return 后的变量或表达式错误(此时可通过看题意,来分析该返回哪一变量或表达式)

《编译原理》模拟期末试题汇总 6套,含答案

《编译原理》模拟试题一 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.计算机高级语言翻译成低级语言只有解释一种方式。(×) 2.在编译中进行语法检查的目的是为了发现程序中所有错误。(×) 3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 (√ ) 4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 (×) 5.每个文法都能改写为 LL(1) 文法。 (√) 6.递归下降法允许任一非终极符是直接左递归的。 (√) 7.算符优先关系表不一定存在对应的优先函数。 (×) 8.自底而上语法分析方法的主要问题是候选式的选择。 (×) 9.LR 法是自顶向下语法分析方法。 (×) 10.简单优先文法允许任意两个产生式具有相同右部。 (×) 二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.一个编译程序中,不仅包含词法分析,_____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析B.( )文法分析C.( )语言分析D.( )解释分析 2.词法分析器用于识别_____。 A.( ) 字符串B.( )语句 C.( )单词 D.( )标识符 3.语法分析器则可以发现源程序中的_____。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正D.( ) 语法错误 4.下面关于解释程序的描述正确的是_____。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1)C.( ) (1)(2)(3) D.( ) (2)(3) 5.解释程序处理语言时 , 大多数采用的是_____方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 6.编译过程中 , 语法分析器的任务就是_____。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4) C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 7.编译程序是一种_____。 A. ( ) 汇编程序B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 8.文法 G 所描述的语言是_____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 9.文法分为四种类型,即0型、1型、2型、3型。其中3型文法是_____。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法 10.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 _____。 A.( ) 句子B.( ) 句型 C.( ) 单词 D.( ) 产生式 三、填空题(每空1分,共10分)

C语言编译中的常见错误

C语言编译中的常见错误 1、警告类错误 ?‘XXX’declare but never used变量XXX已定义但从未用过。 ?‘XXX’is assigned a value which is never used变量XXX已赋值但从未用过。?Code has no effect 程序中含有没有实际作用的代码。 ? Non-portable pointer conversion不适当的指针转换,可能是在应该使用指针的 地方用了一个非0的数值。 ?Possib le use of ‘XXX’before definition表达式中使用了未赋值的变量 ?Possibly incorrect assignment这样的赋值可能不正确 ?Redeclaration of ‘main’一个程序文件中主函数main不止一个。 ?Suspicious pointer conversion可疑的指针转换。通常是使用了基本类型不匹配的指针。 ?Unreachable code程序含有不能执行到的代码。 2、错误或致命错误 ?Compound statement missing } in function main程序结尾缺少括号}。 ?“}”expected;“(”expected等复合语句或数组初始化的结尾缺少“)”;“(”。 ? Case outside of switch case不属于Switch结构,多由于switch结构中的花括 号不配对所致。 ?Case statement missing ‘:’ switch结构中的某个case之后缺少冒号。 ? Constant expression required定义数组时指定的数组长度不是常量表达式。 ? Declaration syntax error 结构体或联合类型的定义后缺少分号。 ? Declaration was expected 缺少说明,通常是因为缺少分界符如逗号、分号、右圆 括号等所引起的。 ?Default outside switch Default部分放到了switch结构之外,一般是因为花括号 不匹配而引起的。 ?do statement must have while do语句中缺少相应的while部分。 ? Expression syntax 表达式语法错。如表达式中含有两个连续的运算符

最新编译原理试题汇总+编译原理期末试题(8套含答案+大题集)

编译原理考试题及答案汇总一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式

编译原理测试及答案

编译原理期中测试答案 三、单项选择题(每题3分,共15分) 1.设有文法G[S]: S→(AS)|(b) A→(SaA)|(a) 该文法的句型(((b)a(a))(b))有 C 个直接短语。 A.1 B. 2 C. 3 D. 4 2.如果一个文法满足 D ,则称该文法是二义性文法。 (1) 文法的某一个句子存在两个(包括两个)以上的语法树 (2) 文法的某一个句子存在两个(包括两个)以上的最左推导 (3) 文法的某一个句子存在两个(包括两个)以上的最右推导 (4) 在进行归约时,文法的某些规范句型的句柄不唯一 上述描述中的所有正确描述有: A. (1) B. (1)(2) C. (1)(2)(3) D. (1)(2)(3)(4) 3.构造一个不带回溯的自顶向下语法分析器,要求文法满足 E 。 A.对每个形如A→x1|x2|…|xn的产生式,要求FIRST(xi)与FIRST(xj)的交集为空集(i≠j) B.对每个形如A→x1|x2|…|xn的产生式,若xi* ε,则要求FIRST(xj)与FOLLOW(A)的交集为空集(i≠j) C. 不含左递归 D. A和B同时满足 E. A、B和C同时满足

4、给定文法A→bA|cc,下列符号串中,是该文法的句子的是 C 。 ① cc ② bcbc ③ bcbcc ④ bccbcc ⑤ bbbcc A① B. ①③④⑤ C. ①⑤ D. ①④⑤ 5、若一个句型中出现了某一产生式的右部,则此右部 B 是该句型的句柄。 A.一定 B. 不一定 C. 一定不 D. 无法判断 四、简述题(每题5分,共20分) 1、写一上下文无关文法,它能产生语言}0 n。 n a L m b , =m | {>= # S→A#B A→Aa|ε B→Bb|ε 2、将文法G[S] 改写为等价的G′[S],使G′[S]不含左递归和左公共因子。G[S]:S→bSAe | bA A→Ab | d 答:文法G[S] 改写为等价的不含左递归和左公共因子的 G'[S]S→bB B→SAe | A A→d A' A' →bA' | ε 3、什么是文法的二义性?下面的文法是二义的吗?为什么?

Keil C 编译器常见警告与错误信息

https://www.doczj.com/doc/4614784043.html,/support/man/docs/c51/c51_c277.htm错误信息查询 Keil C 编译器常见警告与错误信息 error C132 :“****”not in formal parameter list 花了偶将近半个小时来查找错误,最终发现原来是在头文件里的一个函数声明时露了一个分号造成紧挨着在它下面声明的参数not in formal parameter list。 记在在这里,免得以后忘记了,同时也供大家分享。 下面是另外一些常见的错误提示: 1.第一种错误信息 ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_WRITE_GMVLX1_REG?D_GMVLX1 CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_SPI_SEND_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP - 该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函数)同时调用,

编译原理试题(卷)汇总-编译原理期末试题(卷)(8套含答案解析-大题集)

编译原理考试题及答案汇总 一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 16.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。

(精选)编译原理期末考试题目及答案

一、填空题(每空2分,共20分) 1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。 2.编译器常用的语法分析方法有自底向上和自顶向下两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。 5.对编译程序而言,输入数据是源程序,输出结果是目标程序。 1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。 4.一个LL(1)分析程序需要用到一张分析表和符号栈。 5.后缀式abc-/所代表的表达式是a/(b-c)。 二、单项选择题(每小题2分,共20分) 1.词法分析器的输出结果是__C。 A.单词的种别编码B.单词在符号表中的位置 C.单词的种别编码和自身值D.单词自身值 2.正规式 M 1 和 M 2 等价是指__C_。 A. M1和M2的状态数相等B. M1和M2的有向边条数相等 C. M1和M2所识别的语言集相等 D. M1和M2状态数和有向边条数相等 3.文法G:S→xSx|y所识别的语言是_C____。 A. xyx B. (xyx)* C.xnyxn(n≥0) D. x*yx* 4.如果文法G是无二义的,则它的任何句子α_A____。 A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。 A.源程序B.目标语言 C.编译方法 D.以上三项都是 6.四元式之间的联系是通过__B___实现的。 A.指示器B.临时变量C.符号表 D.程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。 A.┐AB∨∧CD∨B.A┐B∨CD∨∧C. AB∨┐CD∨∧ D.A┐B∨∧CD∨8. 优化可生成__D___的目标代码。 A.运行时间较短B.占用存储空间较小 C.运行时间短但占用内存空间大 D.运行时间短且占用存储空间小 9.下列___C___优化方法不是针对循环优化进行的。 A. 强度削弱 B.删除归纳变量C.删除多余运算 D.代码外提 10.编译程序使用_B_区别标识符的作用域。 A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D. 标识符的行号 三、判断题(对的打√,错的打×,每小题1分,共10分) 2.一个有限状态自动机中,有且仅有一个唯一的终态。x

编译出错种类

VC++编译的常见错误 1、fatal error C1010: unexpected end of file while looking for precompiled header directive。 寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") 2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory 不能打开包含文件“R…….h”:没有这样的文件或目录。 3、error C2011: 'C……': 'class' type redefinition 类“C……”重定义。 4、error C2018: unknown character '0xa3' 不认识的字符'0xa3'。(一般是汉字或中文标点符号) 5、error C2057: expected constant expression 希望是常量表达式。(一般出现在switch语句的case分支中) 6、error C2065: 'IDD_MYDIALOG' : undeclared identifier “IDD_MYDIALOG”:未声明过的标识符。 7、error C2082: redefinition of formal parameter 'bReset' 函数参数“bReset”在函数体中重定义。 8、error C2143: syntax error: missing ':' before '{' 句法错误:“{”前缺少“;”。 9、error C2146: syntax error : missing ';' before identifier 'dc' 句法错误:在“dc”前丢了“;”。 10、error C2196: case value '69' already used 值69已经用过。(一般出现在switch语句的case分支中) 11、error C2509: 'OnTimer' : member function not declared in 'CHelloView' 成员函数“OnTimer”没有在“CHelloView”中声明。 12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B' 重载的函数“void reset(int)”在类“B”中找不到。 13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention 类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。 14、error C2660: 'SetTimer' : function does not take 2 parameters “SetTimer”函数不传递2个参数。 15、warning C4035: 'f……': no return value “f……”的return语句没有返回值。 16、warning C4553: '= =' : operator has no effect; did you intend '='? 没有效果的运算符“= =”;是否改为“=”? 17、warning C4700: local variable 'bReset' used without having been initialized 局部变量“bReset”没有初始化就使用。

哈工程各个专业的详细介绍

各个专业的详细介绍: 1.船舶与海洋工程专业——专业简介 本专业始于中国人民解放军军事工程学院(简称“哈军工”)的海军工程系舰船设计专业。始终保持军工特色,设有船舶性能、船舶结构、船舶设计、潜器设计、海洋工程5个专业方向。本专业涉及面广,除数学、力学外,主要还有船舶与海洋工程水动力学、船舶与海洋工程结构力学、计算机科学、材料科学、机械制造学、焊接技术及管理工程等学科。 开设的主要课程:理论力学、材料力学、船舶与海洋工程流体力学、船舶与海洋工程结构力学、船舶与海洋工程静力学、船舶与海洋工程结构物阻力与推进、船体制造工艺、船舶设计与海洋工程结构物设计原理、船舶与海洋工程结构物强度与结构设计、计算机原理及应用、机械设计、电工电子技术等。 迄今为止,本专业已为我国船舶工业培养本科生5100余人。本专业具有世界先进水平的实验设备和测试手段,拥有大型实验室,其中“风、浪、流海洋环境模拟水池(50米×50米×30米)”拥有国内唯一的X—Y航车系统,“船模实验水池”长110米,配备有三维多板造波机、大型四自由度适航仪等先进设备,是ITTC成员单位;“工程结构实验室”为世界银行贷款建设;船舶CAD/CAM实验室拥有各类主流大型造船工程应用软件和结构分析软件,为广船国际等大型造船企业设立tribon软件培训中心。本专业是国内高校首家通过英国皇家造船师协会(RINA)的评估和认证的本科专业,每年提供20名免费学生会员名额,标志着本专业的教学和实验水平得到国际认同。挪威DNV船级社、法国BV船级社、日本NK船级社等国际主要的船级社和英国皇家造船师协会(RINA)在该专业设立奖学金。近年来,本专业与美国休斯敦“能源谷”紧密联系,共同创建了“深海工程技术研究中心”,目前该中心已入围我国“111工程”计划。2006年《科技时报》评选本专业全国综合排名第一。 本专业一些分支学科的研究水平和人才培养已达到国际先进水平。历年毕业生就业统计数据表明,本专业毕业生主要到与船舶和海洋工程有关的公司及国家各部委机关,以及沿海沿江各船舶设计院、研究所和造船骨干企业工作,部分取得留学资格,被选送到美国、加拿大、英国、挪威、德国、日本、希腊等国留学深造。本专业将为有志于我国船舶事业、海洋开发事业的青年提供一流的学习环境,完备的科学研究设施。 2.港口航道与海岸工程(暂无详细介绍) 3.土木工程专业介绍 培养掌握工程力学、流体力学、岩土力学和结构设计的基本理论和基本知识,具备从事土木工程项目的规划、设计、研究开发、施工及管理的能力,能在房屋建筑工程、公路与城市道路工程、桥梁工程、隧道与地下工程、机场工程等方面从事设计、研究、施工、教育、管理、投资和技术开发的高级工程技术人才。 开设的主要课程:理论力学、材料力学、结构力学、岩土力学、流体力学、混凝土结构、砌体结构、钢结构、房屋建筑学、土木工程施工技术、土木工程施工预算、工程

期末考试编译原理试卷及答案

一. 填空题(每空2分,共20分) 1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静 态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。 2. 规范规约是最(3)规约。 3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。 4.表达式x+y*z/(a+b)的后缀式为 (7) 。 5.文法符号的属性有综合属性和 (8)。 6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址 计算公式为(9)。 7.局部优化是局限于一个(10)范围内的一种优化。 二. 选择题(1-6为单选题,7-8为多选题,每问2分,共20分) 1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组 ( )。 A . 字符串 B . 产生式 C . 开始符号 D . 文法 2.程序的基本块是指( )。 A . 一个子程序 B . 一个仅有一个入口和一个出口的语句 C . 一个没有嵌套的程序段 D . 一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。 A . 自左向右 B . 自顶向下 C . 自底向上 D . 自右向左 4.在通常的语法分析方法中,( )特别适用于表达式的分析。 A . 算符优先分析法 B . LR 分析法 C . 递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是( )。 A . 四元式序列 B . 间接三元式序列 C . 二元式序列 D . 机器语言程序或汇编语言程序 6. 一个文法所描述的语言是( );描述一个语言的文法是( )。 A . 唯一的 B . 不唯一的 C . 可能唯一,也可能不唯一 7. 如果在文法G 中存在一个句子,当其满足下列条件( )之一时,则称该文法是二义文法。 A . 其最左推导和最右推导相同 B . 该句子有两个不同的最左推导 C . 该句子有两个不同的最右推导 D . 该句子有两棵不同的语法树

编译原理试题B及答案

编译原理试题B 一、单项选择题(每题1分,共20分) 1、对编译系统有关概念描述正确的是( B) A.目标程序只能是机器语言 B. 编译程序处理的对象是源语言 C.解释程序属于编译程序 D. 词法分析无法自动进行 2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么 (B) A.词法分析 B. 语法分析 C.语义分析 D. 代码生成 3. 下面不能用于对文法进行描述的是(A ) A.源语言 B. EBNF C.BNF D. 语法图 4. 设有文法G[S]: S→0S|1A|0,A→1|1S|0B,B→1A|0B,下列符号串中是该文法的句子的是 ()?A.1010001001101 B.0101001110010010 C.1101010011110111 D.1010011101101010 (可画出DFA验证) 5. 文法G[S]: S→aA|bC|a A→aS|bB B→aC|bA|b C→aB|bS ,则不是L(G)句子的是( B ) A.a100b50ab100 B. a1000b500aba C.a500b60aab2a D. a100b40ab10aa (画出DFA) 6. 哪个不是DFA的构成成分(B) A.有穷字母表 B. 初始状态集合 C.终止状态集合 D. 有限状态集合 7.词法分析器的输入是( B ) A.单词符号串 B.源程序 C.语法单位 D.目标程序 8.在词法分析阶段不能识别的是(C ) A.标识符 B. 运算符 C.四元式 D. 常数 9.设有一段C语言程序 while(i&&++j)

{ c=2.19; j+=k; i++; } ,经过词法分析后可以识别的单词个数是(B ) A.19 B.20 C.21 D.23 10.自上而下语法分析的主要动作是( B ) A.移进 B. 推导 C.规约 D. 匹配 11.下面不属于LL(1)分析器的自称部分是( D ) A.LL(1)总控程序 B. LL(1)分析表 C.分析栈 D.源程序串 12.设有文法G[S]为 S→AB|bC, A→ε|b,B→ε|aD,C→AD|b,D→aS|c 则FOLLOW(A)为(A ) A.{a,c,#} B.{c,#} C.{a,#} D.{#} 13.设有文法G[S]: S→Ap|Bq,A→a|cA,B→b|dB ,则FIRST(Ap)为( C )A.{p,q} B. {b,d} C.{a,c} D. 其他 14.自下而上语法分析的主要分析动作是(D ) A.推导 B. 规约 C.匹配 D. 移进-规约 15.算法优先分析中,可规约串是( C ) A.句柄 B.活前缀 C.最左素短语 D.素短语 16. 设有文法G={{S},{a},{S→SaS|ε},S},该文法是( B ) A.LL(1)文法 B.二义性文法 C.SLR(1)文法 D.算法优先文法 17、中间代码生成时所以据的是(C ) A.语法规则 B.词法规则 C.语义规则D.等价变换规则 18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E) 则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为( C ) A.iii*i++ B.ii+iii**+ C.ii+ii*i*+ D.其他

Android系统编译过程中常见问题汇总(2)

android源码编译常见问题 分类:android中级2013-03-09 16:20 397人阅读评论(2) 收藏举报编译过程: (在Ubuntu 11.04 64位机器上编译) 1. source build/envsetup.sh //初始化与环境envsetup.sh脚本 初始化完成,显示如下 including device/samsung/maguro/vendorsetup.sh including device/samsung/tuna/vendorsetup.sh including device/ti/panda/vendorsetup.sh including sdk/bash_completion/adb.bash 2. lunch full-eng //选择的目标 ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.0.1 TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=ITL41D ============================================ //建立与一切使。GNU的make -JN参数可以并行处理任务,它是共同使用的任务数, //N的1倍和2倍之间是被用于建立计算机硬件线程数量。例如在E5520双机(2个CPU, //每个CPU 4核,每核心2线程),最快的构建与命令之间的J16和 -J32。 3. make -j4 编译完成

编译原理习题及答案(整理后)

第一章 1、将编译程序分成若干个“遍”是为了。 b.使程序的结构更加清晰 2、构造编译程序应掌握。 a.源程序b.目标语言 c.编译方法 3、变量应当。 c.既持有左值又持有右值 4、编译程序绝大多数时间花在上。 d.管理表格 5、不可能是目标代码。 d.中间代码 6、使用可以定义一个程序的意义。 a.语义规则 7、词法分析器的输入是。 b.源程序 8、中间代码生成时所遵循的是- 。 c.语义规则 9、编译程序是对。 d.高级语言的翻译 10、语法分析应遵循。 c.构词规则 二、多项选择题 1、编译程序各阶段的工作都涉及到。 b.表格管理c.出错处理 2、编译程序工作时,通常有阶段。 a.词法分析b.语法分析c.中间代码生成e.目标代码生成 三、填空题 1、解释程序和编译程序的区别在于是否生成目标程序。 2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码生成、代码优化和目标代码生成。 3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为标代码生成程序。 4、编译程序是指将源程序程序翻译成目标语言程序的程序。

一、单项选择题 1、文法G:S→xSx|y所识别的语言是。 a. xyx b. (xyx)* c. x n yx n(n≥0) d. x*yx* 2、文法G描述的语言L(G)是指。 a. L(G)={α|S+?α , α∈V T*} b. L(G)={α|S*?α, α∈V T*} c. L(G)={α|S*?α,α∈(V T∪V N*)} d. L(G)={α|S+?α, α∈(V T∪V N*)} 3、有限状态自动机能识别。 a. 上下文无关文法 b. 上下文有关文法 c.正规文法 d. 短语文法 4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立。 a. 若f(a)>g(b),则a>b b.若f(a)

相关主题
  • 编译与调试
  • 编译原理测试及答案
  • 编译时的常见错误
  • 编译原理期末测试题a
  • 哈尔滨工程大学
  • 编译原理期末试题
文本预览
相关文档 最新文档

深圳SEO优化公司泉州百度关键词包年推广株洲百姓网标王哪家好淄博网站优化软件张家口网站优化推广价格醴陵百度关键词包年推广多少钱大庆建网站报价西乡网站优化按天扣费推荐朝阳网站设计推荐镇江网站优化价格南澳优化临夏网站推广系统报价长春百度竞价包年推广大同seo优化推荐南山设计网站丽江关键词按天收费哪家好木棉湾百度爱采购哪家好威海建设网站报价鞍山百搜标王布吉百度爱采购绍兴网站优化推广哪家好包头推广网站多少钱毕节营销型网站建设盘锦网站推广工具价格大丰网站搜索优化价格迁安网站改版报价眉山外贸网站制作价格邯郸百度爱采购公司梧州网站搜索优化推荐南宁营销网站哪家好合肥网络营销价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化