由于时间紧迫及事先准备不足,编译器最后定型时暴露出不少问题及不足之处,主要有以下一些方面: 不支持数组数据类型,这是文法分析器设计时的一个疏漏,由于时间关系,最后只得把扫描器中已做好的相关的数组部分删去。 对于float数据类型的支持,直到语义分析都是正常的,也能生成相应的汇编代码,但由于我们对8086/8088指令系统本身了解不足,这样的汇编代码将只能做到含义上完全忠实于源程序,但不能运行。 对于局部变量的支持,则于时间紧迫,所有的局部变量全被处理成静态变量。使递归函数不能得到正确的结果。 对于函数调用语句,不进行参数匹配检查,如果参数数量不对,也将能通过编译,但运行时将产生非法操作。 对&& !等逻辑操作在最后生成代码时处理比较粗燥,生成的代码在逻辑复杂时将不能保证运行正常。 接下来有一些,不能说是缺陷,但必须说明的问题: 对于main函数,没有参数表,通回类型也必须为void,但如果写上参数表及其他返回类型也能编译通过,生成代码时将简单地忽略,不影响最后的代码的运行。 对于WHILE,for,if语句,其语句体不管是一句还是多句,必须都有{}围起来。这跟C语言中若是一句则可省略{}不同。
标签:
上传时间: 2015-03-14
上传用户:gmh1314
access the database using Flash MX. Please remember that Flash is unable to natively access a database. A programming language (ASP in this case) provides the programming logic, WHILE Flash works at the presentation tier of the application.
标签: access Flash database remember
上传时间: 2014-01-04
上传用户:小码农lz
先序遍历非递归算法 #define maxsize 100 typedef struct { Bitree Elem[maxsize] int top }SqStack void PreOrderUnrec(Bitree t) { SqStack s StackInit(s) p=t WHILE (p!=null !StackEmpty(s
标签: maxsize PreOrderUn SqStack typedef
上传时间: 2014-01-26
上传用户:hewenzhi
这是个编译原理的课程设计,是一个DO-WHILE循环语句的翻译程序设计,包括词法分析,语法分析,生成中间代码四元式。
标签: 编译原理
上传时间: 2015-03-29
上传用户:yuzsu
对c语言的简单语法分析器 文件说明: input.txt内为输入的源程序,包括for,WHILE和if else控制等 output.txt内为输出的二元单词序列 k.txt为关键字表 l.txt为运算符和界符表 i.txt为该输入的源程序的标志符 c.txt为常数表 个别表需要序列号,这时各表的序列号默认为从1开始,每行加1。 使用说明: 在提示符下输入input.txt文件的路径和文件名字, 运行完成后,打开文件output.txt看结果。
上传时间: 2013-12-23
上传用户:pompey
“抓住它”小遊戲,a applet that plays a game called Catch the Crearure. have the crature appear at a ramdom lacation for a random durarion. the goal is to catch the creature by pressing the moouse button WHILE the mouce pointer is on the creature
标签:
上传时间: 2015-04-13
上传用户:王者A
This firmware translates a PS/2 mouse to a USB mouse. The translator firmware is entirely interrupt driven (with the exception of sending the data via USB to the host.) An interrupt is generated when the PS/2 start bit is received, at which time the firmware will begin its receive routine. In addition to this interrupt, every 168ms a timer overflow interrupts the main program and implements one state of the mouse state machine. This state machine handles sending bytes to and translating bytes received from the PS/2 mouse automatically. All of this is done in the background WHILE the main program runs in the foreground. The only operation that the main program implements is sending mouse data to the PC via USB.
标签: firmware mouse translates translator
上传时间: 2015-04-26
上传用户:cuiyashuo
接收pop3 Public Function Retrieve(ByVal rhs As Pop3Message) As Pop3Message Dim message, response As String Dim msg As New Pop3Message msg.bytes = rhs.bytes msg.number = rhs.number message = "RETR " + rhs.number.ToString + vbCrLf write(message) response = Respond() If response.Substring(0, 3) <> "+OK" Then Throw New Pop3Exception(response) End If MsgBox(msg) msg.retrieved = True WHILE (1 = 1) response = Respond() If response = "." + vbCrLf Then Exit WHILE Else msg.message += response End If End WHILE Return msg End Function
标签: Pop3Message Function Retrieve response
上传时间: 2013-12-28
上传用户:fnhhs
1. beep -- PWM测试 为 ADS1.2 下编译的项目, 在sdt2.51的ADW里调试,该程序运行后在57600的超级终端里按PC机键盘的“+”“-” 按键,可以听到BUZZ增大减小的声音。 2. key -- 按键测试 为 SDT2.51 下编译的项目, 在sdt2.51的ADW里调试,该程序运行后按FS44B0X上的按键key1 key2 key3 key4 相应的发光二极管亮 3 keyint -- 按键中断测试 该项目在SDT2.51下编译调试。主程序是WHILE空循环,中断服务程序对应四个按键做相应的处理,key1 按键点亮D1灯,并在串口打印信息,因为没有加按键去抖动程序,所以,一次按键,产生几次中断。
上传时间: 2013-12-25
上传用户:txfyddz
5 ledblink -- 跑马灯程序 该项目在SDT2.51下编译调试。最简单的demo程序,运行后3个发光二极管轮流点亮。 6 timerint -- 定时器中断demo程序 该项目在SDT2.51下编译调试。将子目录timerint拷贝到c:\ 下。 该demo程序的主程序是WHILE空循环,定时器中断服务程序每500ms将3个LED反相。 在57600超级终端里也可以看到中断发生时的信息。 7 uart -- 串口测试程序 该项目在SDT2.51下编译调试。运行后在57600的超级终端里等待PC键盘的输入,当按下 a 或 b 或 c 按键时,超级终端里将显示 You Pressed a ,You Pressed b ,You Pressed c .
上传时间: 2015-05-05
上传用户:aix008